git - Get source branch name in commit-msg hook of merge commit -
in commit-msg hook merge commit, how can branch name of immediate source branch merge? can target branch like
git rev-parse --abbrev-ref head but head , head^ both refer target branch. there way programmatically determine source? i'm using bash script hook.
the default merge commit message contains text:
merge branch 'source-branch' target-branch
so commit-msg hook grab name right out of message, there's no guarantee user hasn't edited it. if there's more foolproof method, prefer it.
edit: ah, unfortunately didn't realize commit-msg doesn't run on merge commits! i'll have find different way want anyway.
this give commit being merged:
git rev-parse merge_head i not think there way find branch name other guessing command like:
git for-each-ref | grep ^$(git rev-parse merge_head) (which finds branches pointing commit merging)
note commit being merged not have to branch, 1 can merge commit directly git merge deadbeef.
in case of octopus merge, there more 1 commit being merged @ same time, , merge_head not present.
if extract merge message, using .git/merge_msg safer .git/commit_editmsg, since less hand-edited.
the message generated git merge, hence has access branch name git merge's arguments, not seem stored on disk.
Comments
Post a Comment