【问题标题】:Can I create a git hook that changes the branch I'm committing to?我可以创建一个 git 钩子来更改我正在提交的分支吗?
【发布时间】:2023-04-10 16:06:01
【问题描述】:

我经常发现自己在一个特性分支上工作,并偶然发现我想做的一个“一般修复”与这个特性无关,而是与一般开发分支相关(例如,修复一些样式,重构一些东西等)。

所以我需要做的是存储我当前的进度,切换到 dev 分支,进行更改,提交它,回到我原来的分支并应用我最新的存储。现在,由于这是一项非常重复且烦人的任务,我真的希望有一种方法可以使用基于提交消息的提交钩子来做这样的事情。基本上我想如果我提交的消息以##dev 开头,它会自动知道执行上述过程。

你们觉得有可能吗?

非常感谢,Alex Z。:)

【问题讨论】:

  • 钩子怎么可能知道你必须对 dev 分支做出什么一般性的改变?存储、切换分支和进行修复真的这么麻烦吗?
  • 您可以随时将功能分支重置回应有的位置,也可以将功能分支的提交重新应用到正确的分支。 git reset --hardgit cherry-pickgit rebase 可以轻松完成这项工作。
  • 切换回功能分支的简单方法:git checkout -
  • @TimBiegeleisen 我希望能够通过在提交消息中附加 ##dev 来指定这一点......

标签: git github command-line-interface githooks


【解决方案1】:

我希望能够通过在提交消息中附加 ##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

【讨论】:

    猜你喜欢
    • 2011-09-16
    • 2019-03-03
    • 1970-01-01
    • 2016-12-25
    • 2013-04-03
    • 2018-01-17
    • 2018-12-07
    • 2023-03-04
    相关资源
    最近更新 更多