【问题标题】:git mess -- how to unscramble cherry picked branchesgit mess - 如何解读樱桃采摘的树枝
【发布时间】:2022-06-10 17:18:48
【问题描述】:

我继承了一个带有五六个分支的 repo,这些分支没有合并到 master 中,我必须弄清楚它们里面有什么。我一直在使用 SourceTree 来获得分支关系的图形视图。

不幸的是,看起来很多提交是从分支 A 到分支 B 和 C 的精心挑选的,而来自分支 C 的其他提交被挑选到 A,但不是 B。然后,当然,其中很多樱桃采摘到主人。所以......没有明确的历史或出处,至少对于我所知道的任何工具或日志选项,我真的没有好的方法来确定是什么进入了主分支。

好消息是,如果消息与提交匹配的内容匹配,cherry-pick 会保留提交消息,以及我抽查过的消息。我目前的攻击计划包括依次检查每个分支,使用格式 --format="ts=%ci;sha=%h;lbl=%d;c=%s" 放入以分支名称命名的文件中。然后编写一个 perl 脚本来检查每条提交消息,从所有以分支命名的文件中对其进行 grep,以生成提交出现的分支列表。

除非有一些可视化工具可以在不同分支中精心挑选的提交之间画线?那现在真的很有帮助。也许一个日志格式代码表明 this 提交是从 that 提交中挑选出来的,可能显示了原始提交的 sha。哎呀,只是一个标记,这是一个精心挑选的提交而不是手动提交,这将帮助我确定我需要查看哪些!

在进行如此多的樱桃采摘时,是否有人对如何协调提交历史有任何其他建议?

【问题讨论】:

    标签: git git-branch branching-and-merging cherry-pick


    【解决方案1】:

    试试git cherry foo bar

    该命令列出了可以从bar 访问的所有提交。如果已将提交应用于foo,则有一个前导- 符号。如果没有,则有一个领先的+ 符号。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-07
      • 2015-01-14
      • 1970-01-01
      • 2011-03-02
      • 1970-01-01
      相关资源
      最近更新 更多