Bir Git deposundaki tüm dalların bir listesini "en taze" dallar en üstte olacak şekilde almak istiyorum, burada "en taze" dal en son işlenen daldır (ve bu nedenle dikkat etmek istediğim dal olma olasılığı daha yüksektir).
Git'i kullanarak (a) şubelerin listesini en son yapılan işleme göre sıralamanın ya da (b) şubelerin listesini her birinin son yapılış tarihiyle birlikte makine tarafından okunabilir bir biçimde almanın bir yolu var mı?
En kötü durumda, tüm dalların bir listesini almak için her zaman git branch
çalıştırabilir, çıktısını ayrıştırabilir ve ardından her dal için git log -n 1 branchname --format=format:%ci
çalıştırarak her dalın işlenme tarihini alabilirim. Ancak bu, yeni bir işlem başlatmanın nispeten pahalı olduğu bir Windows kutusunda çalışacaktır, bu nedenle Git çalıştırılabilir dosyasını şube başına bir kez başlatmak, çok sayıda şube varsa yavaşlayabilir. Tüm bunları tek bir komutla yapmanın bir yolu var mı?
git-for-each-ref] [git for-each-ref
]'in --sort=-committerdate
seçeneğini kullanın;
Ayrıca Git 2.7.0'dan beri git branch
için de kullanılabilir:
git for-each-ref --sort=-committerdate refs/heads/
# Or using git branch (since version 2.7.0)
git branch --sort=-committerdate # DESC
git branch --sort=committerdate # ASC
git for-each-ref --sort=committerdate refs/heads/ --format='%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - %(color:red)%(objectname:short)%(color:reset) - %(contents:subject) - %(authorname) (%(color:green)%(committerdate:relative)%(color:reset))'
Jakub'un cevabı]1 ve Joe'nun ipucunu genişleterek, aşağıdakiler "refs/heads/" öğesini çıkarır, böylece çıktı yalnızca dal adlarını görüntüler:
git for-each-ref --count=30 --sort=-committerdate refs/heads/ --format='%(refname:short)'