如果需要合并,如何在合并前检查 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 分支
在部署管道中,我正在检查一个干净的克隆(这是目标)中的 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 分支