如何在GitHub上合并远程更改?

我得到以下错误,试图第一次Github推:

[rejected] master -> master (non-fast forward) error: failed to push some refs to 'git@github.com:me/me.git' To prevent you from losing history, non-fast-forward updates were rejected Merge the remote changes before pushing again. See the 'non-fast forward' section of 'git push --help' for details. 

我怎样才能解决这个问题,并合并远程更改?

有关详细信息,请参阅“ git push –help ”的“非快进”部分。

你可以执行“git pull”,解决潜在的冲突,“git push”结果。 “git pull”会在提交A和B之间创build合并提交C.

或者,你可以用A和G之间的变化来重新设置X和B之间的变化,然后把结果推回去。 rebase将创build一个新的提交D,在A之上构buildX和B之间的变化。

您也可以通过在分支名称前添加+符号来强制推送。

 git push origin +some_branch 

你可能在github上有变化,你永远不会合并。 尝试git pull来获取和合并的变化,那么你应该能够推动。 对不起,如果我误解了你的问题。

如果你“拉扯”,它说“已经是最新的”,仍然得到这个错误,这可能是因为你的其他分支之一是不是最新的。 尝试切换到另一个分支,并确保一个也是最新的,然后再试着“推”:

切换到分支“foo”并更新它:

 $ git checkout foo $ git pull 

您可以通过发出命令来查看您获得的分支:

 $ git branch 

你可以强迫它推,但是只有当你确定你在做什么的时候,才能做到这一点。

该命令是:

 git push -f 

当您有标签冲突时,也可能发生此问题。 如果您的本地版本和远程版本针对不同的提交使用相同的标签名称,则可以在此处结束。

你可以解决它我删除本地标记:

 $ git tag --delete foo_tag 

当我得到这个错误,我备份了我的整个项目文件夹。 然后我做了类似的事情

 $ git config branch.master.remote origin $ git config branch.master.merge refs/heads/master 

…取决于你的分行名称(如果它不是主人)。

然后我做了git pull --rebase 。 在那之后,我用备份的项目文件replace了被拖动的文件。 现在我准备再次提交我的更改并推送。