Git Hatası Nasıl Onarılır: Önce mevcut dizininizi çözmeniz gerekir

Git'te " Önce mevcut dizininizi çözmeniz gerekiyor " hatası ortaya çıkıyor ve bir birleştirme çakışması olduğu ve çakışmayı çözmediğiniz sürece başka bir şubeye ödeme yapmanıza izin verilmeyeceği anlamına geliyor. Bu hata mesajı ayrıca, bir birleştirmenin başarısız olduğunu veya dosyalarla ilgili çakışma olduğunu gösterir.

Hata: Geçerli dizininizi önce Git kaynak denetiminde çözmeniz gerekiyor

Tüm bu dosyalar, birleşmeler ve çatışmalar nedir? Git'i kullanmaya yeni başlıyorsanız, bu terimler sizin için bilinmeyecektir. Git, birkaç kişinin aynı anda dosyalar üzerinde çalışmasına ve kodun yerel kopyasını bulutta depolanan kopyaya göndermesine olanak tanıyan bir sürüm kontrol platformudur. Bu şekilde, indirilen (veya zaten itilmiş) bir kodu değiştirirseniz ve onu tekrar buluta aktarırsanız, yerel kopyanız değişikliklerin üzerine bulutta yazılacaktır.

Git'in bir dallar kavramı vardır. Bir ana dal vardır ve ondan birkaç başka dal vardır. Bu hata, özellikle bir şubeden diğerine geçiyorsanız (teslim almayı kullanarak) ve geçerli dalın dosyalarında çakışmalar varsa oluşur. Çözümlenmedikleri takdirde şubeleri değiştiremezsiniz.

Git Hatasına ne sebep olur: Önce mevcut dizininizi çözmeniz mi gerekiyor?

Daha önce de belirtildiği gibi, bu hatanın nedenleri oldukça sınırlıdır. Bu hatayı yaşayacaksınız çünkü:

  • Bir birleştirme başarısız oldu ve diğer görevlere geçmeden önce birleştirme çakışmasını gidermeniz gerekiyor.
  • Mevcut (veya hedeflenen şubenizdeki) dosyalarda çakışmalar var ve bu çakışmalar nedeniyle, bir şubeden veya push kodundan ödünç alamazsınız.

Çözüme devam etmeden önce, uygun sürüm kontrolüne sahip olduğunuzdan emin olun ve çakışmayı çözmeden önce diğer ekip üyelerinin kodu değiştirmesini durdurmak akıllıca olacaktır.

1.Çözüm: Birleştirme Çakışmasını Çözme

Birleştirmeniz Git tarafından otomatik olarak çözülmezse, endeksi ve çalışma ağacını özel bir durumda bırakır ve bu, birleştirmeyi çözmek için ihtiyacınız olan tüm bilgileri size sağlamaya yardımcı olur. Çakışan dosyalar dizinde özel olarak işaretlenecek ve siz sorunu çözüp dizini güncelleyene kadar bu hata mesajını almaya devam edeceksiniz.

  1. Tüm çatışmaları çözün . Dizin tarafından işaretleneceklerinden çakışması olan dosyaları kontrol edin ve bunlarda buna göre değişiklikler yapın.
  2. Eğer tüm mevcut çatışmaları çözüme sonra eklemek dosyayı ve sonra işlemek .

Bir örnek:

$ git dosya.txt ekle $ git commit

Taahhüt ederken kişisel yorumunuzu ekleyebilirsiniz. Bir örnek:

$ git commit –m "Bu Appuals Git deposu"
  1. Çakışmayı çözdükten sonra, mevcut şubenizi kontrol etmeyi deneyin ve sorunun çözülüp çözülmediğine bakın.

2.Çözüm: Birleştirmenizi Geri Döndürme

Dalları birleştirdiğiniz ve karıştırdığınız çok sayıda durum var. Tüm çatışmalar ve karışıklık nedeniyle, proje artık bir karmaşa ve ekip üyeleriniz bunun için sizi suçluyor. Bu durumda, önceki taahhüdü geri almanız gerekir (birleştirme taahhüdü) . Bu, birleştirmeyi tamamen geri alır ve tüm projeyi, herhangi bir birleştirme yapmadığınız bir duruma geri getirir. Onarımın ötesinde işleri berbat ettiyseniz, bu bir cankurtaran olabilir.

İçin birleştirme dönmek şunları yazın:

$ git reset -–merge

Yukarıdaki komut dizini sıfırlayacak ve çalışma ağacındaki 'commit' ile 'head' arasında farklı olan dosyaları güncelleyecektir. Ancak, indeks ve çalışma ağacı arasında farklı olan dosyaları tutacaktır.

Aşağıdaki komutu kullanarak HEAD'i geri almayı da deneyebilirsiniz :

$ git HEAD'i geri döndür

Geri döndürmek istediğiniz tam birleştirme işlemini belirtmek istiyorsanız, aynı geri alma komutunu kullanabilir ancak ek parametreler belirtebilirsiniz. Birleştirme işleminin SHA1 karması kullanılacak. -M ve ardından gelen 1, birleştirmenin üst tarafını (birleştiğimiz dal) korumak istediğimizi gösterir. Bu geri dönüşün sonucu, Git'in değişiklikleri birleştirmeden geri alan yeni bir kesinleştirme oluşturmasıdır.

$ git geri döndür -m 1 dd8d6f587fa24327d5f5afd6fa8c3e604189c8d4>