我想确定两个Git分支是否已经分歧,或者其中一个分支是否可以简单地快速转发到另一个分支.
换句话说,我想检查其中一个分支的当前HEAD是否已经在某个时刻合并到另一个分支中,或者它是否包含不在另一个分支中的提交.
有没有办法在没有实际合并两个分支的情况下做到这一点?git diff在这种情况下,简单无济于事.
我正在使用这个 shell 脚本片段来实现此目的:
git_is_merged () {
local revlist
if revlist=$(git rev-list -1 "$1" --not "$2"); then
if [ "$revlist" = "" ]; then
echo "'$1' IS merged into '$2'."
else
echo "'$1' is NOT merged into '$2'."
fi
fi
}
alias gim='git_is_merged'
Run Code Online (Sandbox Code Playgroud)
使用它就像gim origin/devel origin/master判断是否origin/devel合并到origin/master.
编辑:为了完整起见,如果您仅使用命名分支,您也可以使用
git branch --contains origin/devel | grep -q origin/master && echo "Merged" || echo "Not merged"
Run Code Online (Sandbox Code Playgroud)
或者
git branch --merged origin/master | grep -q origin/devel && echo "Merged" || echo "Not merged"
Run Code Online (Sandbox Code Playgroud)
出于同样的目的。
| 归档时间: |
|
| 查看次数: |
1573 次 |
| 最近记录: |