Grz*_*cki 7 git workflow repository
如何防止git在提交按摩中推送包含给定字符串的提交,例如"DO NOT PUSH"?
背景/用例:
我的典型工作流程是:我破解黑客,将工作分成微提交,一旦工作正常我改写历史,改变提交顺序,合理地将它们分组,然后压缩成更大的有意义的部分.一旦工作准备就绪,事情就好了!
现在我希望git能够防止我意外地进入仍在进行中的存储库提交.我认为保持"不要推"作为提交消息的一部分.如何让git自动阻止我在达到此类提交后推送git push?
(对于预接收挂钩解决方案:让我们将github视为示例服务,AFAIK 不允许预先接收挂钩,但"企业"版本除外)
你可以使用一个pre-push钩子,但它仍然是一个可以被绕过的本地钩子.
请参阅此预推示例,该示例会查看每个提交消息
# Check for foo commit
commit=`git rev-list -n 1 --grep '^foo' "$range"`
if [ -n "$commit" ]
then
echo "ERROR: git pre-push hook found commit message starting with 'foo' in $local_ref"
Run Code Online (Sandbox Code Playgroud)
但最好的方法仍然是服务器端的pre-receive 钩子.这样,该政策就会对所有贡献者实施.这并不总是可行的(当您无法直接访问远程服务器时,如GitHub,BitBucket或GitLab.com)