不能从github推或拉git repo

时间:2015-05-25 14:54:29

标签: git github

在尝试将repo推送到我的github之后,即使在推送更新之后,在从另一台计算机上推送了一个小的更改后,我仍然收到错误。这是我尝试git push origin master时出现的错误:

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

这里发生了什么?

2 个答案:

答案 0 :(得分:1)

之所以发生这种情况,是因为您上次下载后已将某些更改推送到远程分支。您的本地分支机构与远程分支机构不是最新的。您必须将它们带到同一级别,然后将本地分支推送到远程存储库。

这可以使用其中任何一个来完成:

<强> 1。 Fetch + Rebase:

git fetch
 git rebase origin/branch_name

这种方法有两个步骤。您首先获取远程存储库中所做的所有更改。获取后,然后使用远程分支重新分支您的分支。

<强> 2。获取+合并

git fetch
  git merge origin/branch_name

在此,您首先获取所有更改,但不是重新定位,而是将远程更改合并到本地分支上。

第3。拉

git pull

在单个命令中基本上是git fetch后跟git merge。您可以使用此命令,git将自动执行提取,然后将远程更改合并到您的本地分支。

<强> 4。使用Rebase拉

git pull --rebase origin branch_name

这告诉git使用rebase而不是merge。 Git将首先获取,然后使用您的本地更改来重新定义远程更改。

完成此操作后,可能会发生一些冲突。解决此冲突,然后您可以使用以下命令将更改推送到远程存储库。

git push origin branch_name

对于合并与rebase: When do you use git rebase instead of git merge?

答案 1 :(得分:0)

自上次下载以来,对远程代码库(通常称为git merge:这是Github存储库的本地别名)进行了一些更改。这意味着您必须使用git pull 下载最新版本的远程代码,并告诉Git将新代码与git push 集成。这些有一个别名命令:

{{1}}

您必须解决来自回购的新代码与新编辑之间可能出现的任何冲突。最后你可以:

{{1}}

将新编辑的代码发送回服务器到远程存储库。

相关问题