Ben çıplak olmayan bir "ana" repo kurduk ve bilgisayarıma klonladım. Bazı yerel değişiklikler yaptım, yerel veri havuzumu güncelledim ve değişiklikleri uzaktan repoma geri gönderdim. İşler o ana kadar iyiydi.
Şimdi, uzak depodaki bir şeyi değiştirmek zorunda kaldım. Sonra yerel repoda bir şey değiştirdim. Uzak depodaki değişikliğin gerekli olmadığını fark ettim. Bu yüzden git pushyerel repodan uzak repoma denedim , ama şöyle bir hata aldım:
Geçmişinizi kaybetmenizi önlemek için, ileri sarma olmayan güncellemeler reddedildi. Tekrar basmadan önce uzaktan değişiklikleri birleştirin. Ayrıntılar için 'Hızlı ileri sarma hakkında not' bölümüne
git push --helpbakın.
Muhtemelen bir
git push --force
yerel kopyamı uzaktaki değişikliklere zorlamaya ve aynı hale getirmeye zorlardı. Güncellemeyi zorlar , ancak uzak repoya geri döndüğümde ve bir taahhütte bulunduğumda, dosyaların eski değişiklikler (daha önce ana uzak repo'nun sahip olduğu) içerdiğini fark ettim.
Yanıtlardan birine yapılan yorumlarda belirttiğim gibi :
[Ben] zorlamayı denedim, ama değişiklikleri kaydetmek için ana sunucuya geri döndüğümde, eski aşamaları alıyorum. Böylece, i taahhüt ettiğinde depolar aynı değildir. Git tuşuna tekrar basmaya çalıştığımda da aynı hatayı alıyorum.
Bu sorunu nasıl düzeltebilirim?
git push --force, gerçekten de zorlamayı zorlamanın başka bir geçerli yoludur ve dalları git push origin master --forceda Git'in varsayılanı ile itecektir push.default config settings, ancak hangi dalların özel olarak itildiği Git sürümleri arasında 2.0 sürümünden sonra 2.0 sürümüne göre farklılık gösterir.
git push --forcebugünlerde iyi çalışıyor, FWIW ...
git push --force-with-leasedaha da iyi çalışır :), beklediğiniz durum olmadığı sürece bir dalı güncellemeyi reddedecektir. (bkz. developer.atlassian.com/blog/2015/04/force-with-lease )
git push -forceşekilde yapabileceksiniz .