Kalau kamu pernah punya branch di GitHub yang susah di-merge karena ada status check belum lewat, atau PR-nya nge-stuck lama, kamu bisa memanfaatkan GitHub CLI untuk memaksa merge dengan cara yang aman dan terkendali. π§
Kita akan bahas langkah-langkahnya mulai dari merge normal, auto merge, sampai mode admin override alias βpaksa mergeβ.
π§ 1. Pastikan GitHub CLI Sudah Terhubung
gh auth statusPastikan akun kamu sudah login ke GitHub CLI dan memiliki akses ke repository tersebut. Kalau belum, login dulu:
gh auth loginπ¦ 2. Pastikan Branch Sudah Ada di Remote
git push -u origin nama_branchPerintah ini memastikan branch kamu sudah di-push ke GitHub sehingga bisa diakses oleh CLI.
π 3. Buat atau Cek Pull Request
Kalau belum ada PR, buat dulu dari branch kamu ke main:
gh pr create --base main --head nama_branch --title "Merge ${nama_branch}" --body "Merge otomatis via GitHub CLI"Kalau sudah ada PR, lihat statusnya:
gh pr view --webπ§© 4. Lakukan Merge Biasa Terlebih Dahulu
Coba merge lewat GitHub CLI:
gh pr merge nama_branch --mergeKalau tidak bisa karena konflik, GitHub akan memberi pesan seperti:
"This branch cannot be automatically merged due to conflicts."
πͺ 5. Memaksa Merge dengan Hak Admin
Kalau kamu punya hak admin di repository, kamu bisa memaksa merge meski ada check yang belum selesai atau gagal:
gh pr merge nama_branch --admin --mergePerintah ini akan menggabungkan PR meski status check belum semua hijau. Gunakan hanya kalau kamu yakin hasilnya benar ya π
π§± 6. Gunakan Squash Merge untuk Bersih-Bersih
gh pr merge nama_branch --admin --squashDengan --squash, semua commit di branch akan digabung jadi satu commit bersih di branch utama. Cocok kalau branch kamu penuh commit kecil-kecil.
βοΈ 7. Merge Manual Tanpa PR (Benar-Benar Paksa)
git checkout main
git pull origin main
git merge nama_branch --no-ff
git push origin mainKalau masih gagal dan kamu yakin mau override semua isi dari branch lama, gunakan opsi strategi:
git merge nama_branch --strategy-option theirsAtau sebaliknya, kalau mau semua isi main menimpa branch lama:
git checkout nama_branch
git merge main --strategy-option theirs
git push origin nama_branchπ§ 8. Opsi Lengkap gh pr merge
gh pr merge <PR> [flags]
--auto : Aktifkan auto merge
--delete-branch : Hapus branch setelah merge
--merge : Merge biasa
--rebase : Rebase merge
--squash : Squash merge
--admin : Override semua checks (admin only)π‘ Tips Aman Sebelum Paksa Merge
- Gunakan
--autountuk merge otomatis saat semua status check sudah lulus. - Pastikan PR sudah direview minimal oleh satu anggota tim sebelum merge manual.
- Gunakan
--adminhanya di situasi darurat (misalnya CI error atau stuck lama).