2011-08-01 20 views
35

Bazen, esp. Uzak bir depoda çalışan tek kişi olduğumda, geçmişi git rebase -i ve git push origin master -f ile yeniden yazmayı seviyorum.git git push -f'nin benzerine/karşısına gider mi?

Birleştirme olmadan zorla git pull origin master nasıl yapabilirim? -f seçeneği ile denedim, ama işe yaramadı. Sadece yerel git repo'mın geçmişini uzaktan (orijin) ile eşleştirmek için yeniden yazmak istiyorum.

birkaç yaşındadır ilgili olarak
+0

@Matt Yaş Yinelenenlerde karar vermek için (her zaman) ilgili değildir ve bağlantılı soru daha upvotes sahiptir ve aynı daha detaylı cevaplar iyi bir adaydır. –

+0

@MarkRotteveel Bilmiyorum, bir şeyleri retrospektif olarak kapatmak mantıklı değil. – Matt

+0

@Matt Bu kılavuzdur: http://meta.stackexchange.com/questions/147643/should-i-vote-to-close-a-duplicate-question-even-though-its-much-newer-and- ha/147651 # 147651 –

cevap

47
git fetch 
git reset --hard origin/master 
+4

nolu olarak işaretlendi. – whitequark

+0

@whitequark teşekkürler! cevap vermek için eklendi. – ma11hew28

+4

Not, bu sadece temiz bir dal için çalışır. Yerel çalışma kopyasındaki tüm değişiklikler veya yeni taahhütler kaybolacak. Ben rebase' kullanarak bir cevap ekledim. –

16

, answer by MattDiPasquale tüm yerel değişiklikler yok etmek veya taahhüt edecektir. Eğer yerel değişiklikleri veya taahhüt, ancak tarihi yeniden gerekiyorsa

, çalıştırın:

git fetch origin 
git rebase origin/master 
+7

Korunmanız gereken tek şey, şu andaki tali işleminiz değil (yerel taahhütler değil) sadece 'git stash && git getirme kaynağı && git sıfırlama --hard origin/master && git stash pop' yazın – novalore