Git 吉特推动旧式回购

Git 吉特推动旧式回购,git,git-push,Git,Git Push,我有一个github回购协议,在几个月内(我知道,这是个坏主意)还没有推出,在这段时间内,已经完成了相当多的开发工作。我去推送回购协议,收到了以下错误: error: failed to push some refs to https://github.com/SteelcaseEbiz/PDE_UI_engine.git' hint: Updates were rejected because the remote contains work that you do hint: not h

我有一个github回购协议,在几个月内(我知道,这是个坏主意)还没有推出,在这段时间内,已经完成了相当多的开发工作。我去推送回购协议,收到了以下错误:

error: failed to push some refs to 

https://github.com/SteelcaseEbiz/PDE_UI_engine.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
这不是重复的。我问了一个非常具体的问题,见下文,没有人回答。


如果我像它建议的那样拉,我会把旧版本拉下来,从而覆盖我所做的所有更改吗?

Git给出的消息很重要,但更重要的是理解它所说的内容,而不仅仅是屏幕上的文本

基本上,情况就是这样:在远程存储库中,您试图推送到的分支上有本地没有的提交

无论您最初是避免获取它们,还是在上次从存储库中获取之后将它们添加到存储库中,都不重要,重要的是它们在那里,而您没有它们

因此,为了回答您的问题,我们无法真正回答您的问题,即如果您将这些提交拉入/合并到本地存储库中,将会发生什么

以下场景都是可能的,可能还有更多的场景:

  • 这些承诺与你害怕失去的东西完全无关。将它们合并将通过添加新文件、修改现有文件甚至删除一些文件,将这些更改添加到本地存储库中
  • 通过修改这些提交,这些提交会触及您害怕丢失的文件。合并是否成功取决于这些文件的哪些区域发生了什么样的更改。它可能会转化为您必须解决的合并冲突,或者合并可以自动顺利进行
  • 这些提交将删除您担心丢失的文件。如果您也在本地修改了相同的文件,则会出现合并冲突,您必须选择是保留修改后的文件还是删除它们。如果您没有在本地更改它们,则它们将被删除
  • 上述操作的任意组合
  • 简而言之,我们不可能告诉你结果会是什么

    但不用担心,我非常喜欢Git的一件大事就是你可以进行实验

    以下各点也是如此:

  • 制作整个本地存储库的本地克隆或副本
  • 在“复制/克隆”中,将要合并的远程对象添加为远程对象
  • 从该远程位置拉入/合并更改,解决任何冲突
  • 更糟糕的情况是:您破坏了该拷贝/克隆。如果你认为你只是搞砸了,请销毁克隆然后再试一次。如果您认为这两个存储库不能通过合并来协调,那么现在您就可以知道将发生什么了


    请注意,您实际上不必对克隆进行操作,您可以在真正的本地存储库中清理一个拙劣的合并,但我还是建议您这样做,这样您就可以确保不会意外地破坏任何重要内容。

    您的提交与远程存储库不同步。您可能只需要首先合并上游提交。但修改第一条评论为时已晚。@phd的可能副本请仔细阅读我的文章。我问了一个其他帖子都没有回答的非常具体的问题。你将把自上次公共提交以来在远程服务器上所做的任何更改与本地提交合并。对于未来来说,最好是以最重要的问题为导向,而不是将其隐藏在问题底部的错误信息之下,这使人们更容易理解你真正的问题。