我尝试创建一个prepare-commit-msg
适用于合并提交的钩子。该脚本传递了以下参数.git/MERGE_MSG
, merge
。
我需要获取合并提交的哈希或分支名称(对于正常的非章鱼合并)。我知道我可以git rev-parse MERGE_HEAD
获取哈希或name-rev --name-only MERGE_HEAD
获取分支名称(如果有)。
但是,它似乎prepare-commit-msg
是在创建 MERGE_HEAD 之前调用的。除了解析自动生成的消息之外,还有其他方法可以知道哪个提交被合并了?
我正在使用 git 2.4.0。
在自定义合并驱动程序中,可以git symbolic-ref HEAD
从GITHEAD_<SHA>
环境变量中检索要合并到(目标)的分支的名称以及要合并到(源)中的分支的名称
,
这是一个示例脚本片段:
# retrieve merged branch name from an env var GITHEAD_<sha>=<branchName>
# we cannot use a sym ref of MERGE_HEAD, as it doesn't yet exist
gitHead=$(env | grep GITHEAD) # e.g. GITHEAD_<sha>=release/1.43
# cut out everything up to the last "=" sign
source="${gitHead##*=}"
# retrieve base branch name from a sym ref of HEAD
branch=$(git symbolic-ref HEAD) # e.g. refs/heads/master
# cut out "refs/heads"
destination="${branch#refs/heads/}"
echo "Merging from $source into $destination"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1408 次 |
最近记录: |