如果需要合并,如何在合并前检查 Git? ("Already up-to-date.")

How to check with Git before merge if the merge is necessary? ("Already up-to-date.")

在部署管道中,我正在检查一个干净的克隆(这是目标)中的 master,然后 我将修订合并到其中以更新它。

git checkout master
git merge "${revision}"

因为 git 有预合并检查,然后在我的场景中告诉它:

Already up-to-date.

当修订已经合并时。

我怎样才能在合并命令之前找出这种情况 ("Already up-to-date"),以便我可以尽早退出管道,因为没有什么可做的了?

您可以尝试使用

git branch --merged

这将检查列表是否已合并,如上所述 https://git-scm.com/book/en/v2/Git-Branching-Branch-Management

因此您可以将您的修订作为临时分支检出,检查它是否已被合并并在之后删除它。

git merge-base --is-ancestor $revision master || git merge $revision

您可以使用 git diff ${revision} --name-status。如果什么都不打印,那么版本之间没有区别,不需要合并。

您可以检查以下命令的输出

git log --oneline devlop..origin/master

这将显示 origin/master 但不在 devlop 分支中的所有提交。

如果没有输出,则合并所有更改 否则 origin/master 需要合并到 devlop 分支