【问题标题】:Is there a way to gracefully change a git branch's history when forks of it exist?当存在分支时,有没有办法优雅地更改 git 分支的历史记录?
【发布时间】:2011-11-10 01:20:28
【问题描述】:

我想使用 git 的 filter-branch 功能更正一些无效的作者信息。问题是分支的分支会不同步。

是否可以将提交日志的更改合并到分支中?

【问题讨论】:

    标签: git github


    【解决方案1】:

    重写历史会创建新的提交,并且无法从外部存储库中删除旧的提交。如果其他 repos 包含基于您重写的提交,它们必须重新基于重写的提交。因此,如果您无法控制所有提交错误的存储库(如果您发布了该提交,则无法控制),那么就没有办法。

    【讨论】:

    • "没有办法" ...优雅地做到这一点。你当然可以做过滤器分支,如果有人在旧分支上工作,那就不优雅了。
    【解决方案2】:

    在这种情况下,您能做的最好的事情就是添加注释 (git notes)。

    如“Using git notes for doling out real contribution credit”中所述:

    我们可以使用 Git 的笔记功能来解决与在应得的情况下给予信用有关的大量问题。
    基本上,注释是一种可以将其他元数据附加到提交的方式。

    我们想要的命名空间数量,每个命名空间中的项目数量都可以。同一个人可以因做多项事情而获得荣誉。

    所以为这种更正定义一个特殊的命名空间,至少信息可以在这里存在(并被克隆)。

    【讨论】:

      【解决方案3】:

      继续进行更改,但使用新的分支名称或标签保留旧的历史记录。使其具有描述性,因为每个人都会有一个 WTF 时刻。由他们决定重新调整他们未完成的更改以继续做出贡献。或者你可以很好,并通过电子邮件向他们发送你所做的事情,以便他们跳过 WTF 部分;)

      【讨论】:

        猜你喜欢
        • 2021-09-03
        • 2017-12-08
        • 2020-11-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-10
        • 2023-03-27
        相关资源
        最近更新 更多