Git - 如何将提交推送到master,以便在某次提交后显示在历史记录中

时间:2014-02-14 23:37:10

标签: git

我必须对之前的提交进行一些修复(标记为v4.3_1.0.10)。

下面列出了我执行的步骤:

  1. git checkout tags / v4.3_1.0.10(消息显示它处于分离的HEAD状态)
  2. git checkout -b v4.3_1.0.10-fixes v4.3_1.0.10
  3. 对此新分支中的代码进行了更改。
  4. 我的问题是:

    1. 如何将此提交推送到master,以便在v4.3_1.0.10提交后显示在历史记录中?我相信我必须做一个互动的rebase,但不确定这是否是正确的做法。
    2. 这会过度写入v4.3_1.0.10之后完成的任何提交吗?
    3. 我搜索过,但没有发现任何类似于我需要的东西。

1 个答案:

答案 0 :(得分:1)

如果您执行交互式rebase并在历史记录中间提交提交,则所有后续提交将显示不同。

如果您尝试推送,您将收到一条消息,指出存在推送冲突(推送为non-fast-forward)。

推动冲突可以通过强制推动来解决git push -f。但是,如果您在其他人使用的存储库中,当他们尝试推送旧分支时,可能已经检查了旧分支(由于与您相同的原因)。

所以要明确一点,没有好办法改变以前的公共项目历史。

您可以做的是在新分支上创建一个新标记并将其推送到您的远程,然后在主服务器上应用提交。