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.
Sintaks
| Perintah | Fungsinya |
|---|---|
git push --force | Menimpa branch remote, tanpa pemeriksaan keamanan |
git push -f | Bentuk singkat dari --force |
git push --force-with-lease | Force hanya kalau tidak ada orang lain yang push sementara itu |
git push --force-with-lease origin feature | Force push yang lebih aman ke branch tertentu |
--force vs --force-with-lease
| Perilaku | --force | --force-with-lease |
|---|---|---|
| Menimpa remote | Selalu | Hanya kalau tidak berubah sejak fetch terakhirmu |
| Bisa menghapus commit orang lain | Ya | Menolak, kecuali sebuah fetch sudah memperbarui lease |
| Disarankan untuk tim | Tidak | Ya |
Pertanyaan seputar git force push
Kapan force push dibutuhkan?
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?
--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?
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.