Python 获取传递给git merge的分支的名称
我正在编写一个prepare-commit-msg(作为预合并)钩子,需要获取合并的源分支名称以传递给restapi。换句话说,我需要从Python 获取传递给git merge的分支的名称,python,git,merge,githooks,Python,Git,Merge,Githooks,我正在编写一个prepare-commit-msg(作为预合并)钩子,需要获取合并的源分支名称以传递给restapi。换句话说,我需要从git merge获取branchname的值。 到目前为止,我已经尝试重新设置parse MERGE_HEAD,但是当钩子触发时,它似乎还没有被设置。目前,我只是使用git revparse--abbrev ref@{-1}来获取我所使用的最后一个分支,但这不一定总是我想要合并的分支 我试图强制执行的规则是,除非满足某些条件,否则用户不能将其功能分支与mast
git merge获取branchname的值。
到目前为止,我已经尝试重新设置parse MERGE_HEAD,但是当钩子触发时,它似乎还没有被设置。目前,我只是使用git revparse--abbrev ref@{-1}来获取我所使用的最后一个分支,但这不一定总是我想要合并的分支
我试图强制执行的规则是,除非满足某些条件,否则用户不能将其功能分支与master合并。如果有更好的钩子来做这件事,那也会有帮助。Prepare commit msg是唯一一个似乎将提交类型作为参数的
到目前为止,我已经尝试重新设置parse MERGE_HEAD,但是当钩子触发时,它似乎还没有被设置
对,;但问题远不止于此。(和/或更小,也许吧!:-)(我在这里也要注意:一个不进行合并的git merge
,也就是说,一个快进跳过一切的东西。)
首先,考虑用户运行时发生的情况:
git merge a97131c
这是哪个分支机构?好吧,让我们画一张图表:
...--*--o--o--@ <-- blarg (HEAD), xtest
\
o--A--B <-- br1
\
C <-- br2, br3
如果a97131c
是commitB
的ID,我们可能正在执行git merge br1
,因此结果将是:
...--*--o--o--o <-- xtest
\ \
o-----A--@ <-- blarg (HEAD)
|\
| B <-- br1
\
C <-- br2, br3
...--*--o--o--o <-- xtest
\ \
o @ <-- blarg (HEAD)
\ /
A----B <-- br1
\
C <-- br2, br3
..--*--o--o--o我不确定它在git
中是否可能,因为prepare-commit-msg
hook甚至没有在fast-forward
merges.right上运行。我已经关闭了快进合并,除了拉。我希望他们已经添加了一个预合并挂钩:(这,@torek,是一个很好的回答!谢谢你花时间来做这一切。这回答了我的问题。我想我会走包装路线。我认为这是一个很好的短期解决方案。从长远来看,我想我会选择服务器端挂钩。不过我们正在使用Bitbucket服务器,并将他们的插件sdk安装到我们孤立的网络上有点痛苦…官僚主义和所有的爵士乐…再次感谢你的帮助!