Egit拒绝了非快进

我推送到github存储库时得到这个消息。 你能告诉我一步一步的程序来解决它吗? 我只推了一次,成功了。 但是,当我更新了一个项目,并试图推动我的第二次提交,它显示“主拒绝非快进”,并不允许我推。 请解释程序。

我有这个相同的问题,我能够解决它。 afk5min是正确的,问题是你拉代码的分支已经改变了远程仓库。 根据标准的git实践( http://git-scm.com/book/en/Git-Basics-Working-with-Remotes ),您需要(现在)将远程存储库中的这些更改合并到本地更改中可以提交。 这是有道理的,这迫使你采取其他的变化,并将其合并到您的代码,确保您的代码继续与其他更改的地方function。

无论如何,在步骤。

  1. configuration“获取”来获取您最初从中提取的分支。

  2. 取得远程分支。

  3. 将该远程分支合并到本地分支上。

  4. 提交您的本地回购(合并)更改。

  5. 推动改变到远程回购。

详细…

  1. 在eclipse中,打开'Git Repositories'视图。

  2. 确保您看到您的本地存储库,并可以将远程存储库看作子文件夹。 在我的版本中,它被称为远程,然后我可以在其中看到远程项目。

  3. 寻找指向左边的绿色箭头,这是“取”箭头。 右键单击并select“configuration提取”。

  4. 你应该看到这个URI,确保它指向远程仓库。

  5. 查看popup窗口的ref映射部分。 矿是空的。 这将表明你想要获取哪个远程引用。 点击“添加”。

  6. input您需要从远程存储库中获取的分支名称。 我是“主人”(顺便说一下,这里的下拉菜单很棒!现在,你必须input它)。 继续popup,最后点击“完成”。

  7. 点击“保存并获取”。 这将获取该远程引用。

  8. 查看本地存储库的“分支”文件夹。 您现在应该看到远程文件夹中的远程分支。 我再次看到“主人”。

  9. 右键单击“分支”的“本地”文件夹中的本地分支,名称为“主”。 select“合并”,然后select名为“origin / master”的远程分支。

  10. 通过合并处理。

  11. 将任何更改提交到本地存储库。

  12. 将您的更改推送到远程存储库。

  13. 去喝一杯美味的饮料,祝贺你自己。 rest一天rest。

与此同时(当你正在更新你的项目时),其他的提交已经被提交给“主”分支。 因此,您必须首先执行这些更改才能推动您的更改。

在我的情况下,我推动时select了Force Updatecheckbox。 它像一个魅力工作。

适用于Eclipse Luna + Eclipse Git 3.6.1

一世,

  1. 克隆的git仓库
  2. 对源代码进行了一些更改
  3. 从Git Staging View分阶段进行更改
  4. 最后,承诺和推!

我和EGit遇到了这个问题,这里是我如何解决这个问题。

是的,在我提交更改之前有人提交了更改。 所以更改被拒绝。 在这个错误之后,这些更改实际上被提交到本地存储库。 我不想仅仅因为我想维护linear history而引起这些变化 – 在哪些情况下,git pull会有害?

所以,我执行了以下步骤

  1. 从Git Repository的angular度来看,右键单击相关的Git
    项目
  2. selectFetch from Upstream – 它获取远程更新(参考和对象),但不在本地进行更新。 有关更多信息,请参阅“git pull”和“git fetch”之间的区别是什么?
  3. selectRebase... – 打开一个popup窗口, Preserve merges during rebase点击Preserve merges during rebase查看原因
    git的“rebase –preserve-merges”究竟干什么(为什么?)
  4. 点击Rebase button
  5. 如果有conflict(s) ,则转到步骤6,否则转到步骤11
  6. 会出现一个Rebase Resultpopup窗口,只需点击OK
  7. file comparator会打开,你需要修改left side file
  8. 一旦你完成了正确的合并更改,转到Git Staging视图
  9. stage the changes 。 即add to index
  10. 在同一个视图上,点击Rebase – > Continue 。 重复7到10,直到所有冲突得到解决。
  11. History视图中select您的提交行并selectPush Commit
  12. select“ Rebase Commits of local.......checkbox,然后单击“下一步”。 请参考原因: Git:从上游开发分支
  13. 点击Finish

注意:如果您有多个本地存储库提交,则需要在一次提交中压缩它们以避免多次合并。

打开混帐视图:

1-select您的项目并select合并2-select远程追踪3-点击确定

Git会将远程分支与本地存储库合并

4-然后推

我发现你必须在Git的最新的提交。 所以这些是要采取的步骤:1)确保你没有在同一个文件上工作,否则你会遇到一个DITY_WORK_TREE错误。 2)拉最新的变化。 3)提交你的更新。

希望这可以帮助。

  1. 去Github为你的新代码创build一个回购。
  2. Eclise中使用新的https或ssh url时,

这个错误意味着远程仓库已经有其他的提交,并且在你的本地分支之前。
我尝试做一个git pull,然后是git push。 如果他们没有冲突的变化,git拉取得最新的代码到我的本地分支,同时保持我的变化不变。
然后一个git push将我的更改推送到主分支。