【问题标题】:Trouble pushing to origin after local hard reset本地硬重置后无法推送到原点
【发布时间】:2014-04-17 10:26:26
【问题描述】:

我最近对我的本地 git 存储库进行了硬重置:换句话说,我将其重置为更早的时间点。现在,当我尝试推送到 origin 时,它告诉我它不能,因为 origin 包含的工作日期比我的存储库晚。这是有道理的,但我不关心源在我的本地存储库之后所做的工作。

如果我首先pull,这是我被告知要做的,我认为我本地的HEAD 将成为origin HEAD 的任何内容,即通过额外的工作和我的硬重置将不劳而获。

我应该如何继续?回顾一下,我不关心后来在原点上的额外工作,但关心硬重置后在本地完成的额外工作。

我开始认为硬重置不是一个好主意。

【问题讨论】:

  • pull 应该先获取然后合并,所以你应该没问题。最坏的情况(如果这不起作用)是您必须再次进行硬重置。
  • @jdigital 在硬重置之后,他将再次面临同样的问题;)
  • @TimWolla 对。我想说的是值得尝试pull,因为它不会让事情变得更糟。

标签: git push git-reset


【解决方案1】:

您可以push --force 覆盖origin 的当前HEAD,即使您的本地分支不是它的后代。

但是:您应该知道后果:在同一个存储库上工作的其他开发人员现在无法轻松地提取更改,而必须重置/重新设置到原点。使用强制推送/重写推送历史不好,应尽可能避免。

另请参阅 StackOverflow 上关于强制推送危险的另一个答案:How to properly force a Git Push?

【讨论】:

    猜你喜欢
    • 2012-06-21
    • 2020-10-14
    • 2015-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-10
    • 2016-07-17
    相关资源
    最近更新 更多