Saya telah menyiapkan repo "main" non-telanjang jarak jauh dan mengkloningnya ke komputer saya. Saya membuat beberapa perubahan lokal, memperbarui repositori lokal saya, dan mendorong perubahan kembali ke repo jarak jauh saya. Semuanya baik-baik saja hingga saat itu.
Sekarang, saya harus mengubah sesuatu di repo jarak jauh. Kemudian saya mengubah sesuatu di repo lokal saya. Saya menyadari bahwa perubahan repo jarak jauh tidak diperlukan. Jadi saya mencoba git push
dari repo lokal saya ke repo jarak jauh saya, tetapi saya mendapat kesalahan seperti:
Untuk mencegah Anda kehilangan riwayat, pembaruan non-maju ditolak. Gabungkan perubahan jarak jauh sebelum mendorong lagi. Lihat bagian 'Catatan tentang maju cepat'
git push --help
untuk detailnya.
Saya pikir mungkin a
git push --force
akan memaksa salinan lokal saya untuk mendorong perubahan ke yang jauh dan membuatnya sama. Memang memaksa pembaruan , tetapi ketika saya kembali ke repo jarak jauh dan membuat komit, saya melihat bahwa file berisi perubahan yang sudah ketinggalan zaman (yang repo jarak jauh utama sebelumnya).
Seperti yang saya sebutkan di komentar untuk salah satu jawaban :
[Saya] mencoba memaksa, tetapi ketika kembali ke server master untuk menyimpan perubahan, saya mendapatkan pementasan yang ketinggalan zaman. Jadi, ketika saya melakukan repositori tidak sama. Dan ketika saya mencoba menggunakan git push lagi, saya mendapatkan kesalahan yang sama.
Bagaimana saya bisa memperbaiki masalah ini?
git push --force
memang merupakan cara lain yang valid untuk memaksa push, dan akan mendorong cabang sama seperti halnya git push origin master --force
dengan standar Git push.default config settings
, meskipun cabang mana yang secara khusus terdorong berbeda antara versi Git sebelum 2.0 versus setelah 2.0.
git push --force
hari ini berfungsi dengan baik, FWIW ...
git push --force-with-lease
bekerja lebih baik :), ia akan menolak untuk memperbarui cabang kecuali jika itu adalah keadaan yang Anda harapkan. (lihat developer.atlassian.com/blog/2015/04/force-with-lease )
git push -force
lebih hati-hati .