我可以创建一个git钩子来改变我承诺的分支吗?

时间:2016-08-18 15:10:19

标签: git github command-line-interface githooks

我经常发现自己正在处理一个功能分支,偶然发现了一个我想做的“一般修复”,它与这个功能无关,而是与一般的dev分支有关(例如修复一些样式,重构某些东西等等) )。

所以我需要做的是隐藏我当前的进度,切换到开发分支,进行更改,提交,返回原来的分支并应用我最新的存储。既然这是一个非常重复且烦人的任务,我真的希望有一种方法可以使用基于提交消息的提交钩子来做这样的事情。基本上我想象如果我用以$ cat file NC_011163.1:1 NC_011163.1:22 NC_011163.1:520 $ awk -f tst.awk file NC_011163.1:1-210 2 NC_011163.1:211-420 0 NC_011163.1:421-630 1 开头的消息提交某些内容,它会自动知道要执行上述过程。

你们认为它可能吗?

非常感谢,Alex Z. :)

1 个答案:

答案 0 :(得分:0)

  

我希望能够通过将## dev附加到提交消息

来指定它

如果您在错误的分支上,只有 commit-msg hook 可能有机会阻止提交。我不认为在提交的这个阶段它可以改变分支。

如果您有任何方法可以确定您正在处理某个功能,那么您可以使用类似的设置as this gist来检测当前分支并在错误的情况下取消提交。

BRANCH=`git rev-parse --abbrev-ref HEAD`

if [[ "$BRANCH" == "master" || "$BRANCH" == "develop" ]]; then
  echo "You are on branch $BRANCH. Are you sure you want to commit to this branch?"
  echo "If so, commit with -n to bypass this pre-commit hook."
  exit 1
fi