Orijinal başlık: git - değiştirilmemiş tüm dosyaları güncelle
Şu anda değiştirilmemiş bir git deposundaki tüm dosyaları güncellemeye çalışıyorum. Mesela sana sahip olduğumu söyleyelim:
Her iki dosya uzaktan değiştirilirken test1.py yerel olarak değiştirildi. Şimdi denedim:
git stash
git pull
git stash pop
Değişikliklerimi geri yükleyen, birleştirmem gereken bir uyarı verdi
test1.py. Çok uzak çok iyi. Sorun aynı işlemi tekrar yapmaya çalıştığımda ortaya çıkar (her iki dosya da tekrar tekrar değiştirildikten sonra). Git şimdi diyor
unmerged (6b126638f7c63aa648609afa60ab972a2403502b)
fatal: git-write-tree: error building trees
Cannot save the current index state
Bu beni üzüyor. Sadece basit bir şey istiyorum: Değiştirmediğim tüm dosyaları güncelle. Daha sonra bir araya geleceğim.
Dosyanızdaki çatışmayı çözdünüz (belki? Dipnota bakınız), ancak Git, işinizin bitip bitmediğini bilmiyor. Bu anlaşmazlığı çözmeyi tamamladığınızı belirtmek zorundasınız. (Aksi takdirde, devam etmene izin verdiysen ve gerçekten çözmediysen, kendini ayağa vurmak için her türlü yolu bulabilirsin.)
Bildiğim kadarıyla, bunu yapmanın yolu:
git add <file> # stage the resolved version, which marks it as resolved
git reset HEAD <file> # unstage the changes, leaving the resolution just in the work tree
Her ikisini de aynı anda yapmanın bir yolu olmalı.
update-index ama benim için hızlı bir bakıştan belli değil. (Ama sonra tekrar, gerçek birleşme çatışmaları için, sen asla içeriği hazırlamadan çözülen bir anlaşmazlığı işaretlemek istiyorum; Bu sadece ortaya çıkan sakatlar içindir.)
Ve VonC'nin cevabında söylediği gibi, bu tekrar olsaydı, stash kullanırken ne gibi şeylerin çatışmaları birleştirdiğini kolayca görebilirsiniz.
git status. Kırmızı renkte listelenecekler (eğer renkleriniz varsa) ve
unmerged (ya da belki
deleted by us/them bir silme / değiştirme anlaşması olsaydı).
Dipnot: Sorunuza bir bakınca, anlaşmazlıkları çözüp çözmediğinizi gerçekten söyleyemem. - siz "şimdiye kadar çok iyi" dediniz. Gördüğünüz "uyarı", çatışmaların derhal çözülmesi için bir öneri olarak ifade edildi. Çektiğiniz değişikliklerle çektiğiniz değişiklikleri birleştirmeye çalışırken çatışmalar ortaya çıktı. Bu çatışmayı çözmek ve herhangi bir şekilde ilerlemeden önce iş ağacınızı tutarlı bir duruma getirmeniz gerekir. Bir anlaşmazlığı çözdüğünüz gibi ele alın - dosyaya bakın, çakışma işaretleyicilerini bulun, hangi içeriğin saklanacağını öğrenin! (Ve sonra nasıl bitirileceğine bakın.)
Bu, ikinci isteklerinizin hala çözülmemiş birleşme nedeniyle işe yaramadığı anlamına geliyor.
Bunu gör So soru aynı hata mesajını bir stada gösterir.
Bu iş parçacığı onaylar bir ağacın birleştirilmiş olmayan dosyaları içeremeyeceği.
Birleştirilmemiş girişleri olan bir ağacınız var.
Neden konuya bakıp çözmüyorsun?
Basit "
git status"size unperged ne olduğunu göstermeli
girdileri. Bu dosyalara basit bir bakış, çakışma belirteçleri göstermelidir.
Sorunu çöz, taahhüt et, devam et.