如果我要提交的更改包含某个字符串(例如,git
或@todo
),我希望在@hack
回购中暂存‡时被阻止†。 / p>
有人可以告诉我如何实现这个目标吗?
†或警告。
‡或提交时。
答案 0 :(得分:31)
一个简单的预提交钩子,用于检查是否添加了字符串'@todo',如下所示:
#!/bin/sh
. git-sh-setup # for die
git-diff-index -p -M --cached HEAD -- | grep '^+' |
grep @todo && die Blocking commit because string @todo detected in patch
如果这是.git/hooks/pre-commit
的内容且可执行,
任何添加字符串@todo
的补丁都将被拒绝。
答案 1 :(得分:4)
您可以使用pre-commit
挂钩查找字符串并阻止(警告)提交。
示例预提交挂钩(在.git / hooks下)可以帮助您入门。
答案 2 :(得分:4)
要获得更全面,更全面的解决方案,请查看Git Confirm:
答案 3 :(得分:1)
zsh提供了一个预命令执行挂钩,它可能允许运行某种脚本来询问你的提交,为@to-do或@hack进行grep,并在进行实际提交之前发出警告。这篇帖子(http://sebastiancelis.com/2009/11/16/zsh-prompt-git-users/)实际上是关于在zsh中构建一个花哨的git提示符,但是讨论了如何使用pre-command执行钩子。