2013-09-30 22 views

cevap

9

prepare-commit-msg kancasını kullanmayı deneyebilirsiniz. İkinci argüman merge olacaktır "eğer birleştirme birleştirme veya .git/MERGE_MSG dosyası varsa". Sıfır olmayan bir çıkış durumu işlemi iptal edecektir.

Bunun bir hızlı iletme ile çalışacağını düşünmüyorum, çünkü bir taahhüt iletisi olmayacak.

kanca üzerinde

diğer bilgiler: https://www.kernel.org/pub/software/scm/git/docs/githooks.html#_prepare_commit_msg

+1

Git birleştirme yaptığınızda bu tetiklenmez gibi görünüyor. Bunu görmek için : Hazır -çalışma-msg üstüne çıkış 1 'koymak ve birleştirme işlemini gerçekleştirin. –

+0

Hızlı ileri birleştirme mi? Birleştirme bir taahhüt mesajını tetiklemezse, yardımcı olmaz. – Kousha

+2

Bir taahhüt (mesaj) ile gerçek birleştirme için bile, bu tetiklenmez. Yukarıda açıklanan test ile denedim ... Bir örnekle yanlış olduğunun kanıtlanması için çok mutluyum, ama lütfen bunu bir test yap. –

0

başka güzel bir geçici çözüm, bir shell script eklemek istediğiniz gibi diyoruz sonra komut dosyasına şu satırları eklemek olacaktır:

git() { 
    if [ "$1" == "merge" ]; then 
     echo "seems to work like a charme" 
    fi 
    command git "[email protected]" 
} 

git "[email protected]" 

Sonra bir hale

alias git="./my-pre-merge-script.sh" 

Öyleyse gitmeniz iyi. Sadece kendi birleştirme kancasını ekledin. Biliyorum, hangi argümanlara gitmenizin gerçek bir birleştirme öncesi kancasına geçeceğini bilmiyorum, ama dosyaları hazırlayabilirsin ya da şimdi birleştirme için hazırlanmak istediğin her şeyi yapabilirsin; Ben şahsen ben bu yaklaşım ile çok mutluyum: Önceden bir şey bulmak için 2 veya 3 gün geçirdim, sonra ihtiyaçlarım için yeterince doğru bulmadığım ön-taahhüt-msg ile gitmek zorunda kaldı. Bu tüm sorunlarımı çözer. Umarım bu gelecekte kimseye yardım eder.

İlgili konular