πŸ’ͺ Cara Memaksa Merge Branch di GitHub Menggunakan GitHub CLI

Langkah aman untuk merge cepat branch yang belum di-merge via gh

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

Bagikan artikel ini:

Facebook Twitter LinkedIn
×