Use case
Mainly, there's three use cases for each development
- new feature
- bugfix
- hotfix
Info
Case 1 only make it to develop branch. Case 2 and 3 make it to production
Role Developer¶
Case 1¶
There's a developer will be developing a login feature. Things to do is:
- Create a new branch login feature with naming convention
git branch feature-login
- Checkout to the feature-login branch
git checkout feature-login
- Do the development of the feature (coding)
- Pull first from the develop branch of upstream
git pull upstream develop
- If there's conflict, resolve it first
- After that, do a commit with the new feature
git add -A
git commit -m “add feature login #SDTGF-001”
- After commit, merge to develop branch
- Checkout to develop branch
git checkout develop
- Merge feature-login branch
git merge feature-login --no-ff
- Push develop branch to origin
git push origin develop
- Request merge from develop branch in origin to develop branch in upstream
- After merged, delete feature-login branch
git branch -d feature-login
Case 2 : Bugfix Development (There’s a Bug in Development)¶
Terdapat 2 kasus yaitu :
- Bugs terdeteksi setelah dilakukan Merge oleh Maintainer di repo Upstream
- Bugs terdeteksi setelah dilakukan commit di repo Local
Case 2.1¶
Developer men- develop fitur login dan terdapat bugs setelah dilakukan merge di repo Upstream. Hal yang dilakukan adalah :
- Pastikan posisi pada branch develop dengan cara :
git checkout develop
- Pull terlebih dahulu dari develop upstream untuk update code terbaru
git pull upstream develop
- Buat branch bugfix dari fitur yang terdapat bug contoh :
git branch bugfix-login
- Checkout ke branch bugfix
git checkout bugfix-login
- Lakukan pengerjaan bugfix (coding)
- Setelah itu jangan lupa untuk pull dahulu dari develop upstream dengan cara
git pull upstream develop
- Setelah selesai lakukan commit pada hasil development bug tersebut
git add -A
git commit -m “bugfix login #SDTGF-001”
- Setelah commit, barulah kita akan merge ke branch develop dengan cara
- Checkout ke branch develop
git checkout develop
- Merge branch feature login
git merge bugfix-login --no-ff
- Push ke branch develop
git push origin develop
- Checkout ke branch develop
- Setelah itu lakukan Merge Request dari Develop Origin ke Develop Upstream
- Jangan lupa setelah itu branch feature dihapus dengan cara :
git branch -d bugfix-login
Case 2.2¶
Developer men- develop fitur register dan terdapat bugs setelah dilakukan commit di repo Local. Hal yang dilakukan adalah :
- Pastikan posisi pada branch develop dengan cara :
git checkout develop
- Pull terlebih dahulu dari develop upstream untuk update code terbaru
git pull upstream develop
- Misal developer buat branch feature register contoh :
git branch feature-register
- Checkout ke branch feature-register
git checkout feature-register
- Lakukan pengerjaan fitur register (coding)
- Pull terlebih dahulu dari develop upstream
git pull upstream develop
- Lakukan commit hasil pengerjaan fitur register
git add -A
git commit -m “add feature register #STDGF-002”
- Setelah commit nampaknya terdapat bugs, nah yang harus dilakukan adalah tetap lanjutkan merge ke develop terlebih dahulu dengan cara
git checkout develop
git merge feature-register --no-ff
- Lalu setelah dilakukan merge, buatlah branch baru bernama bugfix dengan nama bugfix-register
git branch bugfix-register
- Checkout ke branch bugfix
git checkout bugfix-register
- Lakukan pengerjaan bugfix (coding)
- Setelah itu jangan lupa untuk pull terlebih dahulu dari develop upstream
git pull upstream develop
- Setelah selesai lakukan commit pada hasil development bug tersebut
git add -A
git commit -m “bugfix register #STDGF-002”
- Setelah commit, barulah kita akan merge ke branch develop dengan cara
- Checkout ke branch develop
git checkout develop
- Merge branch feature login
git merge bugfix-register --no-ff
- Push ke branch develop
git push origin develop
- Checkout ke branch develop
- Setelah itu lakukan Merge Request dari Develop Origin ke Develop Upstream
- Jangan lupa setelah itu branch feature dihapus dengan cara :
git branch -d feature-register
git branch -d bugfix-register
Case 3 : Hotfix Development (There’s a Bug in Production)¶
Bagaimana kasus ini bisa terjadi? kasus ini terjadi apabila terjadi bugs setelah code naik ke production. Cara mengatasinya adalah kita melakukan yang namanya Hotfix. Contoh adalah terdapat bugs register di production.
- Pastikan posisi ada di branch Master
git checkout master
- Lakukan Pull All Branch dari master (untuk dapatkan semua branch upstream)
git pull upstream
- Lakukan Pull terlebih dahulu dari Upstream Master
git pull upstream master
- Buat Branch Hotfix dengan nama fiturnya
git branch hotfix-register
- Checkout ke branch Hotfix
git checkout hotfix-register
- Lakukan pengerjaan aktivitas hotfix (coding)
- Pull terlebih dahulu dari upstream master
git pull upstream master
- Commit hasil pengerjaan
git add -A
git commit -m “hotfix register #STDGF-002”
- Checkout ke Branch release (Hasil tarik all branch dari repo Upstream, tidak dibuat sendiri)
git checkout release
- Lakukan Merge ke branch release
git merge hotfix-register --no-ff
- Push ke branch release
git push origin release
- Lakukan Merge Request dari RELEASE Origin ke RELEASE upstream
- Jangan lupa untuk delete branch hotfix
git branch -d hotfix-register
Role Maintainer¶
Case 1 : Masih di develop (belum naik ke production)¶
Tugas maintener melakukan Code review and merge MR
Case 2 (Dinaikkan ke production)¶
- Clone Repo
git clone <SSH_REPO>
- Pindah ke direktori project
cd <Direktori>
- Checkout ke branch release
git checkout release
- Merge release dengan branch develop
git merge develop
- Berikan tag
git tag v1.0.0
- Create Changelog file
auto-changelog
- Commit Changelog file
git add .
git commit -m “<message>”
- Checkout ke branch master
git checkout master
- Merge branch dengan tag tersebut
git merge v1.0.0
- Push tag
git push origin v1.0.0
- Push ke branch master
git push origin master
- Checkout ke release
git checkout release
- Push ke release
git push origin release
Case 3 : Terjadi Hotfix dan dinaikkan ke Production¶
- Checkout to release branch
git checkout release
- Pull from origin release
git pull origin release
- Create a tag
git tag v1.0.1
- Create Changelog file
auto-changelog
- Commit Changelog file
git add .
git commit -m “<message>”
- Checkout to master
git checkout master
- Merge tag with branch master
git merge v1.0.1
- Push tag
git push origin v1.0.1
- Push to master branch
git push origin master
- Checkout to release branch
git checkout release
- Push to release branch
git push origin release