Git/bash:知道当前分支是否正在合并
有没有办法知道当前分支机构是否处于合并状态 这意味着,有没有办法知道合并头是否存在 我正在开发一个脚本,它将遍历多个项目,我想自动化一些步骤 我的想法是Git/bash:知道当前分支是否正在合并,git,bash,merge,Git,Bash,Merge,有没有办法知道当前分支机构是否处于合并状态 这意味着,有没有办法知道合并头是否存在 我正在开发一个脚本,它将遍历多个项目,我想自动化一些步骤 我的想法是 # 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;
# 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;
如果存在合并冲突,
git merge
具有非零退出状态。也就是说,您可以简单地使用
git merge dev
if [ "$?" -eq 0 ]; then
echo "All fine."
else
echo "There were merge conflicts."
fi
如果您没有访问退出状态的权限,那么按照kfb在评论中的建议,检查是否存在.git/MERGE\u HEAD
,是检测git当前处于合并状态的可靠方法,如下所述:
[…]记录$GIT_DIR/MERGE_HEAD(使下一个GIT commit命令创建合并提交)[…]
如果存在合并冲突,
git merge
具有非零退出状态。也就是说,您可以简单地使用
git merge dev
if [ "$?" -eq 0 ]; then
echo "All fine."
else
echo "There were merge conflicts."
fi
如果您没有访问退出状态的权限,那么按照kfb在评论中的建议,检查是否存在.git/MERGE\u HEAD
,是检测git当前处于合并状态的可靠方法,如下所述:
[…]记录$GIT_DIR/MERGE_HEAD(使下一个GIT commit命令创建合并提交)[…]
没有特定的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
没有特定的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
难道
git status
没有报告吗?你的脚本不能只检查.git/MERGE\u HEAD
文件的存在吗?难道git status
没有报告吗?你的脚本不能只检查.git/MERGE\u HEAD
文件的存在吗?