有没有办法知道当前分支是否处于合并状态?
这意味着,有没有办法知道 MERGE_HEAD 是否存在?
我正在开发一个遍历多个项目的脚本,我希望自动化一些步骤。
我的想法就像是
# for each project
git checkout dev
git pull
git checkout $myBranch
git merge dev
if [[THERE_ARE_CONFLICTS]]
echo "Some warning"
else
git push origin $myBranch
fi;
答案 0 :(得分:1)
git merge
具有非零退出状态。也就是说,你可以简单地使用
git merge dev
if [ "$?" -eq 0 ]; then
echo "All fine."
else
echo "There were merge conflicts."
fi
如果您无法访问退出状态,那么检查是否存在.git/MERGE_HEAD
,如注释中建议的kfb,是检测git当前处于合并状态的可靠方法,如文档所述简要介绍git-merge man page:
[..]记录$ GIT_DIR / MERGE_HEAD(使下一个git commit命令创建合并提交)[..]
答案 1 :(得分:1)
没有特定的Git命令。 您可以检查.git / MERGE *文件是否存在。
git merge dev
if [ ! -z "$( ls .git/MERGE* 2>/dev/null )" ]; then
echo "Merge is on-going"
else
echo "All fine."
fi