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 status
Pastikan 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_branch
Perintah 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 --merge
Kalau 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 --merge
Perintah 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 --squash
Dengan --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 main
Kalau masih gagal dan kamu yakin mau override semua isi dari branch lama, gunakan opsi strategi:
git merge nama_branch --strategy-option theirs
Atau 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
--auto
untuk merge otomatis saat semua status check sudah lulus. - Pastikan PR sudah direview minimal oleh satu anggota tim sebelum merge manual.
- Gunakan
--admin
hanya di situasi darurat (misalnya CI error atau stuck lama).