如何在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了被拖动的文件。 现在我准备再次提交我的更改并推送。