您可以进行实验性合并并检查它是否引入了任何更改,如下所示:
git checkout -b foo-merge-test-branch master
git merge --squash foo
if [ -n "$(git status --porcelain)" ]; then
echo "foo has not been merged";
else
echo "foo is already merged";
fi
git reset --hard && git checkout master && git branch -d foo-merge-test-branch
Run Code Online (Sandbox Code Playgroud)
仅当原始文件中发生更改的文件自那时以来没有git merge --squash foo发生进一步冲突的更改时,此操作才有效master。