Birleştirme hataları veya yeniden tabanlama hataları gibi. Benzersiz bir hata kodu var mı?
Yanıtlar:
Başarısız olmak için bir test ayarladım. Elimde olan bu:
$ git merge newbranch
Auto-merging test.txt
CONFLICT (content): Merge conflict in test.txt
Automatic merge failed; fix conflicts and then commit the result.
$ echo $?
1
Git 0, beklendiği gibi doğru şekilde birleştiğinde geri döner .
&&; testleri böyle uygulanıyor.
git rebaseaynı davranış?
Kısacası hayır. Hatalar için çıkış kodu 1 ve başarı için 0 göreceksiniz.
Kaynağın hızlı bir şekilde anlaşılmasından, belirli amaçları için beklenen 127 ve 128'den bazıları (komut bulunamadı, hatalar zaten bildirildi) ve birkaç yerde birkaç alışılmadık kod var, ancak değirmen hatalarının çalıştırılması için tümü exit(1).
mansayfalarına bakın.
git statusGit olmayan bir depoda çalıştırmak 1 değil 128 döndürür; bu, bir git deposunun var olup olmadığını hızlı bir şekilde belirlemede yardımcı olur.
git push --delete origin a_remote_tag_name
Git sürümü kullanan etiket yoksa bu 256 döndürür 1.8.3.1
Her komut tarafından döndürülen belirli dönüş kodlarının ve bunların neyi gösterdiklerinin birleştirilmiş bir listesine sahip olmak güzel olurdu. Bu ayrıca, dönüş kodu anlamlarının (otomasyon komut dosyalarının güvenebileceği) değiştirilmesini önlemeye yardımcı olabilir.
Git'ten herhangi bir hata mesajı gelmeyen 128 hatası, "beklenmeyen sorun" için bir bütün olabilir.
Bunu, git checkout -- myfilefarklı bir kullanıcı tarafından .git altındaki dosyaları değiştirmek için gereken işlemlerde (örneğin , değiştirilmiş bir dosyayı geri döndürmek için " ") alıyordum . (Benim durumumda " chmod -R og+w .git" düzeltti; doğal olarak, durumunuz için güvenlik sonuçlarını anlamadığınız sürece bunu yapma!)
Git 2.24 (Q4 2019), gitkomutların nasıl kod döndürdüğünü gösteriyor.
Bkz 50094ca commit , c1a6f21 işlemek , 854b5cb işlemek , dd2b6b6 işlemek , 6bd26f5 taahhüt , c6ec6da işlemek , f2e2fa8 işlemek , 460609c işlemek , 92014b6 taahhüt , 0ab74e9 taahhüt , cb46c40 işlemek , b562a54 taahhüt (2019 27 Eyl) ve fe49814 taahhüt (2019 20 Eyl) tarafından Denton Liu ( Denton-L) .
(Göre Birleştirilmiş - Junio Cı Hamano gitster- içinde 1c6fc94 tamamlama 2019 30 Eki)
t4014: git komutlarının dönüş kodlarını kaybetmeyi durdur
Şu anda, Git komutlarının dönüş kodlarının kaybolmasının iki yolu vardır.
İlk yol, bir komutun bir borunun yukarı akışında olduğu zamandır. Bir boruda, yalnızca son komutun dönüş kodu kullanılır. Böylece, diğer tüm komutların dönüş kodları maskelenmiş olacaktır.
Yukarı akışta Git komutları olmayacak şekilde boruları yeniden yazın.Diğer yol, bir komutun atamasız bir alt kabuğa girmesidir .
Dönüş kodu, çevreleyen komutların lehine kaybolacaktır.
Bunun örneklerini, Git komutlarının çıktısını bir dosyaya ve çevreleyen komutları yalnızca Git olmayan komutlara sahip alt kabukları çağıracak şekilde yeniden yazın.
Yani yazmak yerine:
git cat-file commit rebuild-1 | grep "^Side .* with .* backslash-n"
Tür:
git cat-file commit rebuild-1 >actual &&
grep "^Side .* with .* backslash-n" actual
git merge(1.7.4 - kernel.org/pub/software/scm/git/docs/v1.7.4/git-merge.html adresindeki) dokümanların dönüş durumundan yalnızca bir yerde bahsedilmesi ("- -f-sadece "ve hızlı ileri alma işlemi yapamaz, sıfırdan farklı bir değer döndürür - tümünün işe yaraması veya bir birleştirme çatışması olması durumunda neyin döndürüleceğini açıkça söylemez.