Branching
Membuat branch, merge, rebase, dan menangani konflik sederhana
Branching
Branch adalah jalur kerja terpisah agar kamu bisa eksperimen tanpa mengganggu branch utama.
Membuat dan Pindah Branch
Purpose: Membuat branch kerja dan berpindah ke branch tersebut. Inputs: nama branch. Outputs: branch baru dengan HEAD berpindah. Steps:
- Buat branch dengan nama yang jelas.
- Pindah ke branch itu.
Pitfalls: lupa pindah branch membuat commit masuk ke
main. Validation:git statusmenampilkan branch baru.
git checkout -b feature/ball-tracking
# atau
git switch -c feature/ball-trackingMerge Branch
Purpose: Menggabungkan perubahan dari branch lain ke branch aktif. Inputs: branch sumber. Outputs: commit merge atau fast-forward. Steps:
- Pastikan kamu berada di branch tujuan.
- Jalankan
git merge. - Selesaikan konflik jika ada.
Pitfalls: merge ke branch yang salah.
Validation:
git log --oneline --graphmenunjukkan dua branch sudah menyatu.
git checkout main
git merge feature/ball-trackingJika tidak ada commit baru di main, merge bisa menjadi fast-forward dan tidak membuat commit merge.
Rebase (Ringkas)
Purpose: Menaruh commit branch kamu di atas commit terbaru dari main.
Inputs: branch aktif dan target branch.
Outputs: history yang lebih linear.
Steps:
- Checkout branch kerja.
- Jalankan
git rebase main. - Jika konflik, resolve lalu
git rebase --continue. Pitfalls: jangan rebase commit yang sudah di-push dan dipakai tim. Validation:git log --oneline --graphterlihat lebih rapi.
git checkout feature/ball-tracking
git rebase mainMenangani Konflik
Purpose: Menyelesaikan perubahan yang bentrok saat merge atau rebase. Inputs: file konflik. Outputs: file terselesaikan dan proses merge lanjut. Steps:
- Buka file konflik dan pilih perubahan yang benar.
- Hapus marker konflik.
git addfile yang sudah selesai.- Lanjutkan merge atau rebase.
Pitfalls: lupa remove marker konflik membuat build gagal.
Validation:
git statusmenunjukkan konflik selesai.
# Setelah edit file konflik
git add path/to/file
# Jika rebase
git rebase --continue
# Jika merge
# git commit (jika diperlukan)Next Steps
- Lanjut ke Remote Collaboration.