這個問題說明了一切。有沒有辦法在合併之前執行操作?我猜想有一種方法可以使用pre-commit
鉤子,但我不太確定。如何在Git中編寫預合併鉤子?
30
A
回答
9
您可以嘗試使用prepare-commit-msg
鉤子。第二個參數將是merge
「如果提交是合併或.git/MERGE_MSG
文件存在」。非零退出狀態將中止提交。
我不認爲這將適用於快進合併,因爲不會有提交消息。
上掛鉤更多信息:https://www.kernel.org/pub/software/scm/git/docs/githooks.html#_prepare_commit_msg
0
另外一個不錯的解決辦法是增加一個shell腳本,調用它像你想, 然後將這些行添加到該腳本:
git() {
if [ "$1" == "merge" ]; then
echo "seems to work like a charme"
fi
command git "[email protected]"
}
git "[email protected]"
然後再做一個
alias git="./my-pre-merge-script.sh"
然後你很好去。你剛剛添加了你自己的預合併鉤子。 我知道,你不能訪問任何參數git會傳遞給一個真正的預合併鉤子,但你可以準備文件或任何你想爲合併準備現在;我個人對這種方法感到非常滿意:我花了整整2-3天的時間來尋找合併前的東西,然後我必須使用pre-commit-msg,但是我沒有找到足夠滿足需求的準確信息。這解決了我所有的問題。希望這有助於未來的任何人。
相關問題
- 1. git預合併鉤子的等價物?
- 2. 在Git中編寫GIT預提交鉤子?
- 3. 如何編寫鉤子
- 4. 如何編寫一個git鉤子來限制寫入分支?
- 5. 使用PHP編寫git鉤子
- 6. 如何爲git子模塊編寫更新鉤子?
- 7. 如何在Windows平臺上編寫Git Server鉤子?
- 8. 合併衝突的Git鉤子
- 9. 如何在windows上編寫mercurial鉤子?
- 10. 如何以鉤子繞過的方式腳本編寫git?
- 11. git中的預取鉤子功能
- 12. 在python/bash腳本中編寫Git鉤子
- 13. Bazaar合併鉤子?
- 14. 如何在Git鉤子中使用「select」?
- 15. 如何刪除git鉤子
- 16. 如何測試git鉤子
- 17. 如何知道git預推鉤子文件中的「remote」
- 18. 在合併後的git-receive掛鉤
- 19. GIT預接掛鉤
- 20. 預推git掛鉤?
- 21. Git的預接收鉤和子模塊
- 22. Git遠程/共享預提交鉤子
- 23. 在Windows上使用python編寫的Git鉤子
- 24. 如何在Git中合併?
- 25. 使用預接收Git鉤子強制編碼樣式
- 26. 如何編寫一個Git預提交鉤子,防止在測試項目失敗時提交Android項目?
- 27. 如何在BZR中編寫特定於分支的鉤子?
- 28. 如何在C中編寫函數的通用鉤子?
- 29. 如何在Eclipse中編譯ejabberd鉤子
- 30. 如何將預推git鉤子添加到現有存儲庫?
這似乎並沒有被觸發,當你做一個混帳合併。要看到這一點:將'exit 1'放在prepare-commit-msg的頂部並執行合併提交。 –
它是一個快速合併?如果合併不觸發提交消息,它將無濟於事。 – Kousha
即使對於提交(消息)的實際合併,也不會觸發。我已經嘗試過上述測試...非常高興被示例錯誤證明,但請給這個測試。 –