在部署管道中,我要在一个干净的克隆(这是目标)中检出master,然后 我将修订合并到其中以对其进行更新。
git checkout master
git merge "${revision}"
由于git进行了预合并检查,因此在我的情况下会告诉您:
Already up-to-date.
修订已经合并时。
在合并命令之前,我怎么能找到这种情况(“已经是最新的”),以便我不再需要做的事情就可以尽早退出管道?
答案 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分支中