当在Git中从一个分支切换到另一个分支时,有没有办法从post-checkout钩子中检索两个分支的名称?
假设我要运行以下两个命令:
$ git branch
* branch_a
branch_b
master
$ git checkout branch_b
Switched to branch 'branch_b'
我正在寻找以下两个字符串(在结帐后的挂钩中):
"branch_a"
"branch_b"
答案 0 :(得分:4)
您可以在钩子中使用git reflog
来获取上一个和下一个分支。
这是一个简单的工作示例:
#!/bin/bash
# $6 = previous branch, $8 is next branch
git reflog | awk 'NR==1{ print $6 " -> " $8; exit }'
编辑:更新的答案。这里是前一个:
这个钩子有三个参数:
有了这两个第一,你就应该掌握足够的信息来了解你的目标。
答案 1 :(得分:0)
这里是完整的例子,基于@GHugo 的回答
PREV_BRANCH=`git reflog | awk 'NR==1{ print $6; exit }'`
NEW_BRANCH=`git reflog | awk 'NR==1{ print $8; exit }'`
echo "PREV_BRANCH: $PREV_BRANCH"
echo "NEW_BRANCH: $NEW_BRANCH"