【问题标题】:Check if all commits to one GIT branch have been cherry picked to another检查对一个 GIT 分支的所有提交是否已被挑选到另一个分支
【发布时间】:2017-02-18 19:27:06
【问题描述】:

有没有什么方法,也许使用 git log,我可以查看我在“开发”中的任何提交是否还没有被挑选到“其他分支”?

例如,我进行了 6 次提交以进行开发,并将其中的 5 次提交到其他分支。我可以执行什么 git log 命令来输出我错过的 1 个提交?

(我们所有的提交都是通过 Gerrit 推送的,因此任何基于 Gerrit 的解决方案都会有所帮助。)

【问题讨论】:

    标签: git version-control branch gerrit cherry-pick


    【解决方案1】:
    git log --cherry otherbranch...develop
    

    应该这样做。

    日志选项--cherry-mark--left-only--right-only--cherry--cherry-pick 显示在...(双分支又名“对称差异”)日志上的各种相似或不同提交选择。此外,--left-right 会为每个提交显示其更改是否仅出现在左分支、右分支或两者上。

    【讨论】:

    • Cherry-pick 进行新的提交,应用相同的更改。您会看到原始提交和精心挑选的提交。
    • 因此,如果我做出 6 次提交来开发,并将其中的 5 次提交到其他分支,我希望会有一个 git log 命令输出 1 次提交。那会是什么?
    • git log --right-only otherbranch...develop,我想。试试git help log
    • 除了--cherry(这是--right-only --cherry-mark --no-merges的同义词,您可以使用--right-only --cherry-pick --no-merges。区别在于--cherry-mark 标记提交(是否等效) ),而--cherry-pick 跳过 等效提交。git cherry 命令类似,尽管我更喜欢直接对称差异用于指令目的:git cherry 是你使用 after 以上你都知道。:-)
    【解决方案2】:

    由于一些从develop 分支cherry-pick 到otherbranch 的提交,提交ID 会有所不同。如果您使用git log --cherry otherbranch..develop,您将看到存在于develop 分支中的所有提交(包括cherry-pich 到otherbranch 的提交)。

    如果您的commit cmets 是唯一的,您可以搜索提交cherry-pick 到otherbranch by

    git log develop..otherbranch --grep=comment1 --grep=comment2 --grep=comment3 --grep=comment4 --grep=comment5 --grep=comment6 --oneline
    

    因此,不是对otherbranch 进行挑选的提交是相反的。

    【讨论】:

      猜你喜欢
      • 2021-07-05
      • 2018-12-28
      • 1970-01-01
      • 2022-12-19
      • 2017-08-06
      • 1970-01-01
      • 1970-01-01
      • 2016-03-23
      相关资源
      最近更新 更多