【问题标题】:git revert remove commitgit revert 删除提交
【发布时间】:2017-07-09 11:33:39
【问题描述】:

我有兴趣恢复 推送 提交,但也有兴趣将其从图表中删除。
例如。我有:

                   tag
A <— B <— C <— D <— E  <— F  
                          HEAD  

我想完全删除F,所以我的图表看起来像:

                   tag
A <— B <— C <— D <— E  
                   HEAD  

我该怎么做?

【问题讨论】:

  • git reset --hard HEAD~1
  • 为了记录,这个动作是历史重写动作。因此,如果您已经推送了提交而其他人拉了它,而您现在推送 --force 提交(您绝对必须做的事情),您将破坏远程历史记录。

标签: git git-branch git-log git-revert


【解决方案1】:

试图改写历史是错误的。

克隆/拉取它的人将很难整合您的更改,并最终可能会推回您希望删除的更改。

最好还原一个提交,这会在您的历史记录中附加一个“否定”提交。

git revert F

然后推一下

git push origin master

如果你知道自己在做什么或者不关心破坏一切,你可以重写历史:

git reset --hard HEAD^

将索引移回父提交 (E)

git push --force

将新分支引用推送到远程存储库,无论是否快进。

【讨论】:

    猜你喜欢
    • 2019-12-28
    • 1970-01-01
    • 2013-12-12
    • 2021-04-11
    • 2011-09-03
    • 2018-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多