如果需要合并,如何在合并前与Git进行检查? (“已更新。”)

时间:2019-11-27 15:05:42

标签: git shell git-merge

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

git checkout master
git merge "${revision}"

由于git进行了预合并检查,因此在我的情况下会告诉您:

Already up-to-date.

修订已经合并时。

在合并命令之前,我怎么能找到这种情况(“已经是最新的”),以便我不再需要做的事情就可以尽早退出管道?

4 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

您可以尝试使用

git branch --merged

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

因此您可以将修订作为临时分支签出,检查其是否已合并,然后将其删除。

答案 2 :(得分:0)

您可以使用git diff ${revision} --name-status。如果没有打印任何内容,则说明版本之间没有区别,也不需要合并。

答案 3 :(得分:0)

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

git log --oneline devlop..origin/master

这将显示所有在原始/主但不在devlop分支中的提交。

如果没有输出,则所有更改都将合并 否则起源/母版需要合并到devlop分支中