GIT birleştirme hatası “birleştirilmemiş dosyalarınız olduğu için taahhüt mümkün değil”


173

Bu yüzden düzenlemeden önce kodumu çekmeyi unuttum ve sonra yeni kodu taahhüt ettiğimde ve itmeye çalıştığımda, hata itme mümkün değil, bu noktada çakışan bazı dosyaları vurgulayan bir "git çekme" yaptım. Çatışmaları kaldırdım ama buradan ne yapacağımı bilmiyorum ..

Tekrar denedim git commitama "birleştirilmesi mümkün değil çünkü birleştirilmemiş dosyalarınız var" yazıyor

Yanıtlar:


246

Dosyaları sahneye eklemeniz gereken çakışmaları git add [filename]giderdiyseniz, normal şekilde işlem yapın.


2
Ya bunlar üzerinde çalışmadığım dosyalarsa? Yine de onları eklemeli miyim? Bununla başa çıkmanın en iyi yolu nedir?
R11G

1
Bunu geçerli dalda birleştirdiğim bir dalda silinen bir dosya için yapmak zorunda kaldım. Git bunu bir çakışma olarak işaretledi, bu nedenle git add the_filebirleştirme işlemini tamamlamak için dosyayı yerel olarak silmem gerekti.
Brendon Muir

çatışma listesi nasıl bulunur?
polina-c

7
git statusçakışma olan dosyaları gösterecek
jonnystoten

@jonnystoten Yorumunuz için teşekkürler! Bunu git statussöyleyen bir dosya kullandım ve buldum both deleted. WebStorm UI sorunu göstermedi, sadece birleştirme yapamayacağını söyledi. Çözülmüş!
Yuri Predborski

52

İki şey yapmalısın. Önce değişiklikleri

git add .
git stash  

git checkout <some branch>

Sorununuzu bana çözdüğü gibi çözmeli.


Sadece git add gerekli değildir. yeterli
Rais Iqbal

3
Ayrıca, git addtüm çalışma dosyalarınızı istemiyorsanız bu ağır bir
vurucudur

11

Yapmak git stashistediğiniz taahhüdü gerçekleştirmeden önce (yukarı akış deposundaki değişiklikleri bir araya getirdikten sonra) mevcut havuzu kaydetmek için kullanabilirsiniz git stash pop. Bunu dün aynı sorunu yaşadığım zaman yapmak zorunda kaldım.


2

Bu hata çakışmaları giderdiğinizde, ancak dosyanın yine de sahne alanına eklenmesi gerektiğinde oluşur. git ekleyin. çözecekti. Ardından, taahhütte bulunmaya ve birleştirmeye çalışın.


0

Ben "birleştirilmemiş yollar" altında dosyaları kaldırmak için kaynamış benzer bir sorun yaşadım

Bu dosyalar kullanılarak kaldırılmalıdır git rm


0

Yani yukarıdaki hatadan. Bu sorunu gidermek için tek yapmanız gereken kodunuzu geri döndürmektir. ( git revert HEAD) daha git pullsonra değişikliklerinizi yeniden yapın, ardından git pulltekrar ve hatasız işlem yapabilir veya birleştirebilirsiniz.


0

Git 2.23 (2019 Ağustos) itibaren Bunu şimdi yapmak için bir kısayol vardır: git restore --staged [filepath]. Bu komutla, eklemeniz ve kaldırmanız gerekmeden çakışan bir dosyayı yok sayabilirsiniz.

Misal:

> git status

  ...
  Unmerged paths:
    (use "git add <file>..." to mark resolution)
      both modified:   file.ex

> git restore --staged file.ex

> git status

  ...
  Changes not staged for commit:
    (use "git add <file>..." to update what will be committed)
    (use "git restore <file>..." to discard changes in working directory)
      modified:   file.ex

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.