2015-12-04 15 views
7

Bu kabuk komut dosyasını çalıştırdığımda, bir php dosyasına taahhüt günlüğünü yazan bir git commit -m "msg" yapıyorum. Şu anki taahhüt mesajını da dahil etmek istiyorum. Bir commit günlüğü oluşturmak ve bir varoluş günlüğüne eklemek için bir Git kancası kullanma

Benim kabuk komut dosyası:

#!/bin/sh 
path="path/to/gitlog.php" 
echo "<?php $git_log = array(" > $path 
git log --date=iso --pretty=format:'array("%h","%an","%ad","%s"),' >> $path 
echo ");" >> $path 

gitlog.php, benim deposuna kurtulur hangi Sonra git push olacak.

Şu anda 'pre-commit' kancasına sahibim, bu mesajın içinde işlem mesajını almanın bir yolu var mı?

Benim kullanım durumu ben projede sadece geliştiriciyim. Zaman kısa! ilerlemeyi görmek için projede yer alan diğer kişiler için ve bocalama yapmak zorunda kalmadan betimsel taahhüt kayıtlarını okudum. Günlük, herkesin erişebileceği bir gösterge tablosuna gönderilir.

Git pano sunucuda çalışmıyor ve dosyalar bir depo barındırma şirketi (Beanstalk) dağıtıldığı

+0

Önceden hazırlanmış bir kanca işlemden önce çalışır, bu nedenle bu işlemin kendisini de içeremez. İşlemi gerçekleştirdikten sonra yeni bir ek taahhütte bulunabilirsiniz * sonra, bu yeni taahhüdün, en son taahhütten farklı bir ana varlığa sahip olmasını sağlayabilirsiniz (bu, 'git commit - amend'in çalışmasıdır); mevcut işlemi değiştiremezsiniz. Sürüm bilgilerini dahil etmeye çalışıyorsanız, git ile olağan yöntem, özellikle dosyanın tamamının bir taahhütten (bu olması gerektiği gibi) üretilmesi durumunda, dosyanın dışına gitmesini sağlamaktır. Eski bir işlemi görüntülemek için kontrol edin, ardından "sürüm oluştur" u çalıştırın. – torek

+0

@torek, thks - fiili tahakkuk gerçekleştirilmeden önce çağrılan bir çengel yoktur ve mesaj verilerini iletir, ben de taahhüt mesajını ve günlüğüne manuel olarak ekleyebilirim, tekrar git 'i tekrar ekleyin. ' ve sonunda taahhütle devam ediyor? – digout

+0

Aha, evet, 'attach-msg' kancası var. İletiyi değiştirmenize (standartları biçimlendirmek için) veya iletinin hatalı olması durumunda işlemi reddetmenize izin verilir. Bu kancayı kendim hiç kullanmamıştım, ancak taahhüt sürecinde doğru noktada çalışıyor. Git eklemeyi önermiyorum (bilerek modifiye-ama-değil-aşamalı olarak bıraktığınız dosyaları ekleyebilirsiniz) ama 'git $ yol ekle 'de burada işe yarayabilir. (Ben de belirli dosyaların taahhütleri ile test etmeyi öneririm, ve/veya 'git taahhüt -a ', orada çalışıp çalışmadığını görmek için.) – torek

cevap

0

Kullanım durumunuz göz önüne alındığında, öneririm:
için yerel makinede pre-commit kanca hareket pano sunucuda post-checkout kanca (Ben orada hayal olduğunu pano sitenin arkasında repo bir klonu mi?)

+0

Hayır, dosyalar bir repo hoster (Beanstalk) 'dashboard sunucusuna' dağıtılır. – digout

1

Başka bir seçenek daha sonra sizin repo dışındaki bir dosyaya için changelog yazıyor uygun bir kanca oluşturmak ve bağlı olabilir dosyayı harici kullanıcılar tarafından erişilebilecek bir yere iter . O zaman değişime neden olmaya gerek yok, bu da sorunların sebebi.

İlgili konular