Menu
CoddyTech

Git Force Push

Terakhir diperbarui

git push biasa ditolak kalau branch lokalmu sudah menyimpang dari remote, karena Git tidak mau menimpa commit yang mungkin belum kamu lihat. Force push mengabaikan pemeriksaan itu dan membuat branch remote sama dengan branch lokalmu. Kamu membutuhkannya setelah menulis ulang riwayat (rebase atau amend), tapi force push bisa menghapus commit orang lain, jadi pakailah --force-with-lease yang lebih aman.

Coba perintah-perintah ini di playground terminal: shell sungguhan di browsermu, tanpa perlu instalasi.

Force push membuat branch remote sama persis dengan riwayat lokalmu yang ditulis ulang. Commit remote yang berbeda akan dibuang.

Sintaks

PerintahFungsinya
git push --forceMenimpa branch remote, tanpa pemeriksaan keamanan
git push -fBentuk singkat dari --force
git push --force-with-leaseForce hanya kalau tidak ada orang lain yang push sementara itu
git push --force-with-lease origin featureForce push yang lebih aman ke branch tertentu

--force vs --force-with-lease

Perilaku--force--force-with-lease
Menimpa remoteSelaluHanya kalau tidak berubah sejak fetch terakhirmu
Bisa menghapus commit orang lainYaMenolak, kecuali sebuah fetch sudah memperbarui lease
Disarankan untuk timTidakYa

Pertanyaan seputar git force push

Kapan force push dibutuhkan?
Saat kamu menulis ulang riwayat yang sudah ada di remote: setelah git rebase, git commit --amend, atau rebase interaktif yang melakukan squash pada commit. Branch lokalmu tidak lagi cocok dengan riwayat di remote, jadi push biasa ditolak dan hanya force push yang bisa memperbaruinya.
Apa bedanya --force dan --force-with-lease?
--force menimpa branch remote tanpa syarat, sehingga bisa diam-diam menghapus commit yang di-push rekan timmu setelah fetch terakhirmu. --force-with-lease hanya menimpa kalau remote masih berada di commit yang terakhir kamu lihat; kalau ada orang lain yang push sementara itu, perintah ini menolak dan melindungi pekerjaan mereka. Satu catatan: fetch apa pun (termasuk auto-fetch di latar belakang oleh IDE) memperbarui lease, jadi push segera setelah kamu memeriksa remote. Tetap pilih opsi ini daripada --force di branch bersama mana pun.
Apakah force push berbahaya?
Bisa. Di branch bersama, --force biasa bisa menimpa commit yang sudah di-push orang lain, yang pada dasarnya menghapus pekerjaan mereka dari remote. Force push aman di branch yang hanya kamu pakai sendiri. Kalau ragu, pakai --force-with-lease, yang gagal dengan aman alih-alih menimpa perubahan yang belum kamu lihat.
Bagaimana cara membatalkan force push?
Kalau commit lamanya masih ada di lokal atau di git reflog, kamu bisa melakukan reset pada branch-mu kembali ke commit itu dan force push lagi untuk memulihkan keadaan sebelumnya. Ini satu alasan lagi untuk memakai --force-with-lease: sejak awal, opsi ini membuat penimpaan yang tidak disengaja jauh lebih jarang terjadi.
Bisakah saya berlatih ini secara online?

Bisa. Buka playground terminal untuk menjalankan perintah Git push di shell sungguhan di browsermu, tanpa perlu instalasi. Kursus Git interaktif gratis dari Coddy juga membahas cara bekerja dengan remote langkah demi langkah.

Ilustrasi bahasa pemrograman di Coddy

Belajar Git bersama Coddy

Mulai