【问题标题】:Unable to push after resetting current branch to previous commit将当前分支重置为上一次提交后无法推送
【发布时间】:2016-04-21 14:55:49
【问题描述】:

第 1 步:我创建了一个本地 Git 存储库

第2步:然后我做了一个Pull(当前分支是master)

第 3 步:之后,我在本地副本上使用 Reset 恢复了合并,如下所示。

第 4 步:之后正确显示如下所示。

问:我尝试将更改推送到远程主机。它给出了以下错误。你能告诉我为什么吗?我正在使用 TortoiseGit。谢谢。

【问题讨论】:

  • possible duplicate git push origin HEAD --force
  • 你在尝试推之前尝试拉吗?
  • @ItayB 我已经找到了解决方案。我稍后会说。干杯:)

标签: git tortoisegit


【解决方案1】:

我已经找到了解决方案。这是步骤。

第 1 步: 克隆远程存储库(将在默认分支 master 上签出 自动)

git clone https://github.com/myrepo/myrepo.git

第 2 步: 重置本地主机 - 它将更改 master 以指向具有特定 SHA 的不同提交。

git reset --hard 2f89f2971c3cr45fe187241b8cb89a8ef8234ea3

第 3 步: 推送回远程存储库。

git push https://github.com/myrepo/myrepo.git --force

这篇文章对我帮助很大:Undoing Merges

就是这样。一切都完成了。干杯:)

【讨论】:

  • 只是术语说明:你不是在克隆分支——你是在克隆存储库(myrepo)——它的默认分支是主分支,所以它可能会有点混淆。然后,您已将 master 更改为指向差异提交(通过提供其 SHA)。最后一件事是将本地 repo 的 master 推送到远程 repo。
  • @ItayB 感谢您的信息。请修改上面的帖子。然后我们可以了解更多关于Git Terminology的知识。提前谢谢。
  • 我在 WebStorm 上遇到了一个非常相似的问题。 步骤 23 成功了(不需要步骤 1)
  • 对于所有 JetBrains 用户(PHPStorm、IntelliJ IDEA 等):“Push”按钮上有一个带有“force”选项的下拉按钮。
【解决方案2】:

这是一个棘手的情况。您不能以这种方式恢复远程存储库,因为远程识别您的存储库的状态落后。无疑有更好的解决方案,但是你可以删除远程仓库,创建一个新的同名远程仓库,然后将本地仓库推送到它。

【讨论】:

  • 那你能告诉我如何在不删除远程主机的情况下恢复合并的更改吗?谢谢。
  • 它不允许我删除master,因此我不是创建它的人。那该怎么办?谢谢。
  • 考虑到您无法删除主仓库,我发布了一个新答案
【解决方案3】:

您可以签出从之前的提交更改的每个文件,您希望恢复到这些文件,然后进行新的提交。

我不熟悉 toroisegit,但我认为它在某处有命令行输入,所以步骤如下:

假设你想要恢复的提交的哈希是29edf27 您更改了两个要还原的文件,例如 file1.phpfile2.txt

git checkout 29edf27 -- file1.php
git checkout 29edf27 -- file2.txt
git commit -m "reverted commit to 29edf27"
git push origin master

【讨论】:

  • 这对我来说不是很清楚。我已经在本地没有正确还原更改?那么为什么我需要再做一次呢?谢谢。
  • 通过在本地还原您的更改,您只需签出以前的提交。所以从远程的角度来看,你是一个过时的客户,因为你的分支的尖端比它的尖端老。上述过程将创建一个新提交,其中包括远程上的 HEAD 提交作为先前的提交,因此远程将识别您的本地存储库具有它所做的一切以及新的提交。
  • 澄清一下,我认为“还原”一词在这种情况下可能不直观。您本身并没有真正恢复任何东西,就像在概念上丢弃更改一样,但实际上您只是检查了存储库的旧版本。您可以通过检查最新的提交哈希来“取消还原”这个过程
【解决方案4】:

在硬重置分支到所选提交后,您应该强制推送您的更改。

VCS - Git - Push - Force push

【讨论】:

    猜你喜欢
    • 2021-08-12
    • 2020-11-30
    • 2021-05-05
    • 1970-01-01
    • 2012-12-03
    • 2018-10-31
    • 1970-01-01
    • 1970-01-01
    • 2021-05-24
    相关资源
    最近更新 更多