Yanıtlar:
Bir git bisectoturum sırasında şu anda çalışma kopyasına teslim aldığınız taahhüdü görüntülemek için en az 5 farklı yolunuz vardır ( ikiye ayırmadığınızda 1-4 seçeneklerinin de işe yarayacağını unutmayın ):
git show.git log -1.git status.git bisect visualize.Her seçeneği aşağıda ayrıntılı olarak açıklayacağım.
Açıklandığı gibi bu cevap şu anda kontrol aşımı var (sadece sırasında taahhüt nasıl belirleneceği genel soruya git bisect), kullanabilirsiniz git showile -sbastırmak yama çıkışına seçeneği:
$ git show --oneline -s
a9874fd Merge branch 'epic-feature'
Şu git log -1anda hangi taahhüdün bulunduğunu bulmak için de yapabilirsin .
$ git log -1 --oneline
c1abcde Add feature-003
Git 1.8.3 ve sonraki sürümlerinde (veya daha önceki bir sürüm mü?) iki bölümlü oturum sırasında veya "müstakil HEAD" durumundayken. Aşağıdaki örnekte, şu anda kullanıma aldım c1abcde:
# Prompt during a bisect
user ~ (c1abcde...)|BISECTING $
# Prompt at detached HEAD state
user ~ (c1abcde...) $
Ayrıca Git 1.8.3+ sürümünden (ve muhtemelen daha önce, yine emin değilim), koşu git statussize bir bisect sırasında ve HEAD durumundayken hangi taahhüdü kontrol ettiğinizi gösterir:
$ git status
# HEAD detached at c1abcde <== RIGHT HERE
Son olarak, bir işlem yaparken git bisect, başlatmak için basitçe git bisect visualizeveya yerleşik takma adını da git bisect viewkullanabilirsiniz gitk, böylece hangi taahhüdün bulunduğunuzu ve şimdiye kadar hangi taahhütleri kötü ve iyi olarak işaretlediğinizi grafik olarak görebilirsiniz. Bunun 1.8.3 sürümünden önce var olduğundan eminim, hangi sürümde tanıtıldığından emin değilim:
git bisect visualize
git bisect view # shorter, means same thing

git statusmüstakil durumda değilseniz taahhüt numarasını göstermez. aksi halde "Ne olursa olsun dalda" yazıyor . git showolsa çalışır
Sadece şunları yapabilirsiniz:
git rev-parse HEAD
Biraz daha açıklamak için: git rev-parsegit'in bir taahhüdün adını belirtebileceğiniz egzotik yollardan herhangi birini yorumlamak için temel komutudur ve HEADmevcut taahhüdünüze veya dalınıza bir referanstır. (Bir git bisectoturumda, bir dal yerine doğrudan bir taahhüdü ("ayrılmış HEAD") gösterir.)
Alternatif olarak (ve hatırlanması daha kolay) sadece şunları yapmak olacaktır:
git show
... bu da varsayılan olarak gösterilen taahhüdü göstermektir HEAD. Daha kısa bir versiyon için şunları yapabilirsiniz:
$ git show --oneline -s
c0235b7 Autorotate uploaded images based on EXIF orientation
git rev-parse HEADtüm çöp alternatifleri vs işleme gerektirmez.
$ git rev-parse HEAD 273cf91b4057366a560b9ddcee8fe58d4c21e6cb
Güncelleme:
Alternatif olarak (etiketleriniz varsa):
(Bir sürümü adlandırmak için iyi, git'e geri dönmek için çok iyi değil.)
$ git tanımla v0.1.49-localhost-ag-1-g273cf91
Veya (Mark'ın önerdiği gibi, tamlık için burada listelenir):
$ git show --oneline -s c0235b7 Yüklenen görüntüleri EXIF yönüne göre otomatik döndür
Eğer bilginin sadece basit bir parça çıkarmak istiyorsanız, kullandığınız olduğunu alabilirsiniz git showile --format=<string>seçeneği ... ve sana olan diff vermemeye sormak --no-patch. Bu, genellikle tek bir alan olabilen her şeyin printf tarzı çıktısını alabileceğiniz anlamına gelir.
Örneğin, sadece kısaltılmış karmayı ( %h) almak için şunu söyleyebilirsiniz:
$ git show --format="%h" --no-patch
4b703eb
Bunu bash'de bir ortam değişkenine (insanların yapmak isteyebileceği bir şey) kaydetmek istiyorsanız $()sözdizimini kullanabilirsiniz :
$ GIT_COMMIT="$(git show --format="%h" --no-patch)"
$ echo $GIT_COMMIT
4b703eb
Yapabileceklerinizingit show --help tam listesi burada . Ancak, yararlı olabilecek özelliklerin kısaltılmış bir listesi:
%H karma yapmak%h kısaltılmış sağlama karması%T ağaç hash%t kısaltılmış ağaç karması%P ebeveyn karmaları%p kısaltılmış ana karmalar%an yazar adı%ae yazar e-postası%at yazar tarihi, UNIX zaman damgası%aI yazar tarihi, katı ISO 8601 formatı%cn komünist adı%ce committer email%ct başlangıç tarihi, UNIX zaman damgası%cI değiştirme tarihi, katı ISO 8601 formatı%s konu%f sterilize edilmiş konu satırı, dosya adına uygun%gD reflog seçici, ör. refs / stash @ {1}%gd kısaltılmış reflog seçici, ör. stash @ {1}show için hiçbir şey yok .
git log -p -S <search>iş yapıyor.