SQUASHED时检查Git分支是否已合并为主分支?

emi*_*xie 8 git merge branch github squash

我想自动清理远程分支机构.我希望能够检查分支是否已经合并为主分支.最初,我的计划是使用git merge-base来查看最后一次常见提交.

然而,事实证明,当我们将它们合并为master时,我们压缩所有分支.由于这会创建一个新的提交哈希,我无法找到master和我的分支之间的常见提交.

如果我们在合并时将它们全部压扁,我怎么能确定分支是否已合并?

提前致谢!

Mat*_*nry 2

您可以进行实验性合并并检查它是否引入了任何更改,如下所示:

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