有没有办法git提示我“你正在尝试在生产分支中提交。你确定(是/否)?”每次提交之前的消息。从消息中可以明显看出,我只希望它在特定的分支(比如生产分支)上,以避免任何虚假提交。
答案 0 :(得分:5)
您可以使用预提交挂钩来检查您是否在生产分支上,
但钩子脚本无法从用户收集信息。有可能
另一种方法是声明应该使用--no-verify
{或-n
选项git
commit
来真正进行提交。
这可以通过.git/hooks/pre-commit
中的以下内容完成:
#/bin/sh
case "$(git rev-parse --symbolic-full-name HEAD)" in
refs/heads/production)
echo 'Use `git commit --no-verify` to commit to production branch'
exit 1
;;
esac
答案 1 :(得分:3)
正确设置提示,并始终查看您所在的分支 - https://github.com/git/git/blob/master/contrib/completion/git-prompt.sh
如果您想要更好的工具,例如更好的git提示,ruby版本提示,python virtualenv提示等,请尝试bash-it
- https://github.com/revans/bash-it
如果你想要你在这里描述的确切解决方案,为git commit设置一些别名脚本,设置一个pre-commit
挂钩等,它将看到你当前的分支并根据需要提示你。
答案 2 :(得分:1)
听起来你可以使用Git Hook。 这些是位于.git / hooks中的脚本,git可以在某些事件发生时运行,例如在提交过程的各个阶段。 一个这样的钩子是'pre-commit'钩子。从git书中:
在您输入提交消息之前,首先运行预提交挂钩。它用于检查即将提交的快照,查看是否忘记了某些内容,确保测试运行,或检查代码中需要检查的内容。从此挂钩退出非零会中止commit [...]
所以,你可以这样做:
git status -sb | awk '{print $2}'
(虽然可能有更好的方法)。