Soru, her şeyi açıklıyor. Birleştirme öncesi bir eylem gerçekleştirmenin bir yolu var mı? Tahminimce pre-commit
kancasını kullanmanın bir yolu var, ama emin değilim.Git'te bir birleştirme kancası nasıl yazabilirim?
cevap
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 üzerindediğer bilgiler: https://www.kernel.org/pub/software/scm/git/docs/githooks.html#_prepare_commit_msg
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.
- 1. Java'da nasıl bir GEOTIFF yazabilirim?
- 2. Matlab'da bir çift nasıl yazabilirim?
- 3. Eclipse eklentisinde Eylem Kaydetme Kancası
- 4. Joomla'da nasıl kod yazabilirim?
- 5. WriteableBitmap'te dize nasıl yazabilirim?
- 6. XSLT'de nasıl kod yazabilirim?
- 7. SASS'de dizeleri nasıl yazabilirim?
- 8. Özellikler dosyasında nasıl yazabilirim?
- 9. Mercurial ön işlem kancası
- 10. Google'da giriş kancası Appengine
- 11. * .Php'yi yakalamak için nasıl bir yol yazabilirim?
- 12. YAML formatında bir dosyaya nasıl veri yazabilirim?
- 13. Genel bir anonim yöntem nasıl yazabilirim?
- 14. "]]>" bir CDATA bölümünün içine "nasıl yazabilirim?
- 15. gdb'de belleğe nasıl bir dize yazabilirim?
- 16. Phabricator kancası ve Bitbucket
- 17. Git kancası çalıştırılamıyor
- 18. RichTextBox'ta yarı alan nasıl yazabilirim?
- 19. SVN İstemci gönderimi kancası
- 20. git sonrası itme kancası?
- 21. C#: Klavye Kancası
- 22. Dosya uzantısı kancası Emacs
- 23. Bir BitBucket git taahhüt kancası oluşturulsun mu?
- 24. Clojure'da nasıl "defn" makro yazabilirim?
- 25. Strongloop: İşlem Kancası başarısız olursa bir hatayı nasıl döndürürsünüz?
- 26. Java işlemi nasıl durdurulur ve bir kapatma kancası çalıştırılır
- 27. Bir linq sonucundan tüm sütunları nasıl birleştirme ile birleştirme
- 28. iphone'daki bir dosyaya nasıl basit bir dize yazabilirim?
- 29. Bir Android hata raporunu ADB aracılığıyla bir dosyaya nasıl yazabilirim?
- 30. Bir int veya float gerektiren bir C işlevi nasıl yazabilirim?
Git birleştirme yaptığınızda bu tetiklenmez gibi görünüyor. Bunu görmek için a0>: Hazır a1> -çalışma-msg üstüne çıkış 1 'koymak ve birleştirme işlemini gerçekleştirin. –
Hızlı ileri birleştirme mi? Birleştirme bir taahhüt mesajını tetiklemezse, yardımcı olmaz. – Kousha
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. –