将分支名称添加到git commit

时间:2014-01-20 18:57:07

标签: macos git sed

我一直在阅读并试图弄清楚如何让它发挥作用。我想将分支名称添加到提交消息中,这样我就可以使用git commit -m "message"并获得名为branch message的提交。我得到的最接近的是在.git/hooks/commit-msg中使用以下代码,但我使用OSX 10.8.5得到sed: 1: ".git/COMMIT_EDITMSG": invalid command code .

我读到它与OSX sed有不同的行为有关,但我找不到可行的解决方案。我可能只是对OSX / Linux不太了解。

ticket=$(git symbolic-ref HEAD | awk -F'/' '{print $3}')
if [ -n "$ticket" ]; then
    sed -i "1i $ticket " $1
fi

1 个答案:

答案 0 :(得分:3)

是的,OS / X不同。我测试了这个并且它工作正常,但可能还有一些额外的小调整供您处理。请注意,OS X上的-i标志需要一个文件扩展名来保存备份文件,并且为了避免sed坚持用1i添加的文本必须使用\后跟另一行进行转义,我使用了1s。

ticket=$(git symbolic-ref HEAD | awk -F'/' '{print $3}')
if [ -n "$ticket" ]; then
    sed -i '.bak' "1s/^/$ticket /" $1
fi