【发布时间】:2016-07-03 00:38:50
【问题描述】:
有谁知道是否有一个 gitook 会挂钩到分支的创建,以便在分支名称实际创建之前拒绝它?
我目前使用 commit-msg 来验证提交时的分支名称,但我正在寻找一种方法来避免在分支不符合我们的策略(正则表达式)时重命名它。
【问题讨论】:
有谁知道是否有一个 gitook 会挂钩到分支的创建,以便在分支名称实际创建之前拒绝它?
我目前使用 commit-msg 来验证提交时的分支名称,但我正在寻找一种方法来避免在分支不符合我们的策略(正则表达式)时重命名它。
【问题讨论】:
没有(并且在某种程度上它无法控制:分支名称在获取和推送期间通过 refspecs 跨网络传输,并且 refspecs 有一定的限制)。
有一个 git 命令,git check-ref-format;它的documentation 描述了 Git 允许的内容。 (分支名称就是任何以refs/heads/ 开头的引用。)
【讨论】:
git checkout, or git branch,结果就足够了。
有谁知道是否有一个 gitook 会挂钩到分支的创建,以便在分支名称实际创建之前拒绝它?
您唯一可以强制执行任何操作的地方就是您自己的存储库。在您的预接收退出中,
while read old new ref; do
yourtesthere "$ref" || { rc=1; echo "$ref failed yourtesthere's validation"; }
done
exit $rc
并且没有人可以将错误的 refname 推送到您的存储库。在将名称传递给 git 之前检查名称的命令在别名 / oneliner 领域中已失效。
当然,您可以分发yourtesthere 命令,任何想要使用它的人都可以在他们自己的存储库中使用它来测试分支名称,但正如您的存储库是您的一样,他们的存储库也是他们的。
【讨论】:
似乎您指的是为提交或分支创建设置策略。 有一个 git config 命令可以帮助放置一些模板 例如:
$ git config --global commit.template ~/.template.txt $ git提交
主题行
发生了什么
[票:X]
# Please enter the commit message .......
#
# modified: lib/test.rb
#
~
~
".git/COMMIT_EDITMSG"
抱歉,如果这没有帮助。谢谢。
【讨论】: