【问题标题】:Git push failed after 'git reset --hard HEAD~1' of local repo [duplicate]本地仓库的“git reset --hard HEAD~1”后 Git 推送失败 [重复]
【发布时间】:2012-07-13 15:05:20
【问题描述】:

我的工作站上有一个本地 git 存储库,我将其推送到一个保管箱位置,以便我可以通过 git pull remote dropbox 将其下拉到我的笔记本电脑。

昨天我在我的工作站上签入了一个更改,提交并git push dropbox'ed 它。我没有在笔记本电脑上执行git pull,因为我怀疑我最终会放弃那个提交。

今天我决定放弃那个提交,所以我在我的工作站上做了:

git reset --hard HEAD~1

到目前为止,一切都很好。现在我想将它推送回 Dropbox,以便在我的笔记本电脑上我可以从 那里 合并和提交。所以在我的工作站上我尝试了:

git push dropbox

而 git 抱怨说:

! [rejected] master -> master (non-fast-forward) 错误:失败 将一些参考推送到 '\My Dropbox\dev\repos\xcast.git' 以防止你 由于丢失历史记录,非快进更新被拒绝 合并 在再次推送之前进行远程更改(例如“git pull”)。见'注 关于 'git push --help' 的快进部分了解详细信息。

如何让我的最差设置和 Dropbox 重新同步?

【问题讨论】:

    标签: git


    【解决方案1】:

    强制推送应该可以工作:git push -f dropbox

    Git 抱怨是因为你的遥控器仍然有额外的提交,因此你在历史上落后了。

    【讨论】:

    • 这样做有什么负面影响吗?
    • @Grunch:是的,你丢失了远程提交。如果您与其他人共享了该提交,历史可能会有所不同。
    • @Grunch 是的,只有在您确定没有人已经拉取更改(或者您是唯一有权访问的人)时才强制推送
    • @larsmans:遥控器在我自己的所有计算机之间共享。自昨天命运多舛的提交以来,我没有在任何其他机器上从遥控器上拉动。这是否意味着在这种情况下,历史不会分道扬镳?
    • @Grunch 如果他们还没有拉出来你应该没问题。
    猜你喜欢
    • 2014-08-25
    • 2018-01-13
    • 2011-08-19
    • 2011-12-19
    • 2010-09-05
    相关资源
    最近更新 更多