这个问题说明了一切。有没有办法在合并之前执行操作?我猜想有一种方法可以使用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
即使对于提交(消息)的实际合并,也不会触发。我已经尝试过上述测试...非常高兴被示例错误证明,但请给这个测试。 –