Tek bir Git komutu geçerli etiket, şube ve taahhüt var mı?
Şu anda üç komut bir koleksiyon mevcut etiket, şube ve Tarih ve SHA1 en son commit almak için kullanıyorum.
git describe --always --tag
git log -1 --format="%H%n"
git rev-parse --abbrev-ref HEAD
Gibi bir şey çıktı sağlayacak
1.2.3-5-gdeadbeef
deadbeef3b8d90071c24f51ac8f26ce97a72727b
Wed, 19 May 2010 09:12:34 0200
master
Dürüst olmak gerekirse, bu benim için sorun değil. Ama Maven Bu komutları daha önce Maven kullanılan şeyler harici komutları nasıl bilir POM bloat olur kim kullanıyorum. Ben sadece benim pom.xml ince ve yürütme süresini biraz azaltır belki.
CEVAP
git log
son derece esnek, çok ve birçok seçenek ile. Üç komutları tam çıkış yukarıda çoğaltmak mümkün olmayabilir, ama ihtiyacınız olan etkiyi elde etmek için yeterince yakın gelebilir.Örneğin:
git log --pretty=format:' %h %d' --abbrev-commit --date=short -1
üretir tarihinden (HEAD) SHA-1 ve sembolik bağlantılar (etiketler de dahil) tamamlama:
2010-05-20 45bd5e7 (KAFA, origin/master)
Sonra, muhtemelen,
sed
ve/veyaawk
ya da belki Maven-yerel yöntemlere ince ayar/parlatma yapabilir. Belirli bir etiket tamamlama, Eğer üç olsa örneğin etiketli,, "v1.o KAFA önce tamamlar bu yüzden belirli bir ile ilişkili olduğunu unutmayın 0.", "V1.göreceğiz 0 0.0" yukarıda gösterilen.Daha basit, tek bir komut bir taahhüt olduğunu succint bir açıklama sağlamak için:
git describe
en son yürürlükteki etiketi, etiketli beri taahhüt numarası taahhüt ve SHA1 yazar:
v3.3.0-46-g71a77dc
Benim hiç aşina Maven, ve hiçbir fikrim yok ne kadar kolay/zor çalıştırmak için harici işler, ben de emin olup olmadığını aşağıdaki yardım herhangi bir şekilde, ama kapatacağım söz. her ihtimale karşı.
Yani etiketleme oluşturur, bir autoconf/automake çerçevesi açıklayan kesin bir amaç için, aslında gibi bir şey kullanın:
BUILDTAG="`git symbolic-ref HEAD 2> /dev/null | cut -b 12-`-`git log --pretty=format:\"%h\" -1`"
bir program bir yolun sonuna teyel için uygun üretir
usta-c5282ff
Daha fazla açıklama, yorum veya yazılı bir tanımlayıcı olarak dahil uygun genişletilmiş:
BUILDDESC="$(git symbolic-ref HEAD 2> /dev/null | cut -b 12-)-$(git log --pretty=format:'%h, ' -1)"
üretir gibi bir şey:
usta-c5282ff, 12 22:19:51 2010 -0600 Cum Mar
Ne istediğinizi etrafında git log
, muhtemelen/yöntemleri alacaksınız metin işleme araçları ile birlikte oynamayı düşünüyorum.
Nasıl içeren bir taahhüt verilen şube ...
Nasıl bir etiket bir şube farklıdır? B...
Etiket yaşlı Gıt taahhüt...
Git - geçerli değişiklikleri ile bir ş...
Git kullanmak, bir ÅŸube olduÄŸunu taahh...