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 push
yerel 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 --help
bakı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 --force
da 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 --force
bugünlerde iyi çalışıyor, FWIW ...
git push --force-with-lease
daha 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 .