2012-02-04 10 views

cevap

87

Tamam, sonunda bu cevabı buldum: git commit -m "Test" bunu açıkça düzeltti. Sonuç, hiçbir değişiklik olmadan boş bir taahhüt oldu. Github bile boş bir taahhüt gösteriyor, ama işe yarıyor.

+1

thaaaaank youuuuuuuuu! – koenmetsu

+1

Benim için bu, birleştirme noktasını işaretlemenin bir sonucu olarak ortaya çıktı, bu nedenle "Devreye devrenin birleştirilmesi" gibi bir mesaj "Test" den daha uygun olurdu. –

+1

Vay. Şimdi herkes bunun neden çalıştığını açıklayabilir ama 'git commit' değil mi? – user1205577

46

Boş bir birleştirme taahhüdü (iki ebeveyn) veya sadece boş bir işlemle sonuçlandınız mı? Son durumda, .git/MERGE_HEAD'u silebilirdiniz.

Güncelleme: elle MERGE_HEAD silmek yerine, ayrıca kullanabilirsiniz git merge --abort (as of git 1.7.4) ya da git reset --merge (as of git 1.6.2).

Ayrıca, en azından git 1.8.3'den (belki daha önce?) Olduğu gibi, gerçek bir birleştirme işleminin devam etmesi ve işlenmesinin gerekmesi durumunda (örneğin, --no-commit belirtilirse) bu gibi bir mesajı görmeniz gerekir.):

# On branch master 
# All conflicts fixed but you are still merging. 
# (use "git commit" to conclude merge) 
# 
nothing to commit, working directory clean 

Bunu görmek ve hala MERGE_HEAD uyarı, bir şey berbat almak ve muhtemelen sadece --abort temiz bir duruma geri almak için gereken yoksa. Yorumlar Birleştirme sırasında

den

Ek Detay, git de birleştirme ile ilgili bilgileri izlemek için (sonraki BAŞ, ORIG_HEAD, muhtemelen FETCH_HEAD, vb) .git klasörün kökünde bir MERGE_HEAD dosyası oluşturur ilerleme (özellikle, mevcut HEAD'a birleştirilen taahhütlerin SHA'ları). Bunu silerseniz, Git artık birleştirme işleminin devam ettiğini düşünmez. Açıkçası, gerçekten birleşme gerçekten devam ediyorsa, bu dosyayı silmek istemezsiniz.

+2

Bu çözüm benim için boş olanları birleştirmekten daha uygun görünüyor çünkü bu sık sık git ile oluyor. –

+0

Bunun için teşekkürler. Keşke gerçekten anladım. Zamanım olduğunda, doktorları incelerim. – Taylor

+3

Birleştirme sırasında, gitme işlemi sırasında birleştirme hakkındaki bilgileri izlemek için '.git' klasörünün kökünde bir' MERGE_HEAD' dosyası oluşturur ('HEAD',' ORIG_HEAD', muhtemelen 'FETCH_HEAD' gibi) , taahhüt (ler) in SHA (lar) geçerli "HEAD" ile birleştirilir. Bunu silerseniz, Git artık birleştirme işleminin devam ettiğini düşünmez. Açıkçası, eğer 'birleştirme' gerçekten _is_ devam ederse, bu dosyayı silmek istemezsiniz. – dahlbyk

7

Hayat kurtarıcım git reset komutu oldu.

İlgili konular