Bu soruya şimdi geldim ve ekleyecek bir şeyimiz var
En son işleme gitmek için:
git checkout $(git log --branches -1 --pretty=format:"%H")
Açıklama:
git log --branches
tüm yerel şubelerden gelen taahhütlerin günlüğünü
-1
tek bir işlemle sınırlandırır →
--pretty=format:"%H"
yalnızca son karma işleminin
git checkout $(...)
çıkış karması çıktısını çıkış argümanı olarak göstermek için gösterir
Not:
Bu, kopuk bir kafaya neden olacaktır (çünkü doğrudan taahhütte ödeme yaparız). Bu, sed
aşağıda açıklanan şube adını çıkararak önlenebilir .
En son taahhüdün şubesine gitmek için:
git checkout $(git log --branches -1 --pretty=format:'%D' | sed 's/.*, //g')
Açıklama:
git log --branches
gösterileri tüm yerel şubeleri gelen kaydedilmesini ait log
-1
biri En son işlemek → işlemeye sınırlamak
--pretty=format:"%D"
sadece formatında ref adlarını gösterir
| sed 's/.*, //g'
tüm görmezden ancak birden hakemlerimizle son (*)
git checkout $(...)
ödeme için argüman olarak alt kabuğa kullanılması çıkışı
*) Önce HEAD ve uzak dallar listelenir, yerel dallar en son alfabetik olarak azalan sırayla listelenir, böylece geri kalan dallar alfabetik olarak ilk dal adı olur
Not:
Bu her zaman (alfabetik olarak) ilk dal adını yalnızca söz konusu taahhüt için birden fazla varsa kullanır.
Her neyse, bence en iyi çözüm, nerede ödeme yapacağınızı bilmek için en son taahhüt için ref adlarını görüntülemek olacaktır:
git log --branches -1 --pretty=format:'%D'
Örneğin git top
, bu komut için diğer ad oluşturun .
git log
Sorunuzun cümle, her zaman çalıştırabilirsinizgit log --all
(daha anlamlı yagit log --oneline --graph --all
).