3

我对代码做了一些更改。

  • git添加-A
  • git commit -m ".."
  • git push 起源大师

![rejected] master -> master (non-fast-forward) error: failed to push some refs to '.....' 为了防止您丢失历史记录,非快进更新被拒绝在推送之前合并远程更改再次。有关详细信息,请参阅“git push --help”的“关于快进的说明”部分。

  • git 获取原始主机

远程:计数对象:42,完成。远程:压缩对象:100% (26/26),完成。远程:总共 26 个(增量 17),重用 0 个(增量 0) 拆包对象:100% (26/26),完成。从...... * 分支
主 -> FETCH_HEAD

  • git 合并大师

已经是最新的了。

  • git合并原点/主

已经是最新的了。

  • git合并原点/主主

已经是最新的了。是啊!

  • git push 起源大师

![rejected] master -> master (non-fast-forward) error: failed to push some refs to '....' 为了防止您丢失历史记录,非快进更新被拒绝了在再次推送之前合并远程更改. 有关详细信息,请参阅“git push --help”的“关于快进的说明”部分。

所以又是一样的。

这是怎么回事?使用 git pull 它可以工作,但我读到使用 fetch/merge 更好,所以请告诉我我做错了什么。

4

2 回答 2

4

git pullgit fetch将导致与 a和完全相同的结果git merge

git fetch工作方式有点不同,具体取决于您如何称呼它。通常你只需调用git fetch. 这将从原点更新所有远程分支。之后你自己的分支仍然存在master,而远程分支仍然存在origin/master,因此如果你想合并origin/mastermaster你必须结帐mastergit merge origin/master

git fetch origin master只会获取那个分支并将其存储到一个名为 FETCH_HEAD 的临时分支中。您可以使用git merge FETCH_HEAD.

但你可能只想做一个简单的git pull. ;)

提示:用于git branch -av查看所有本地和远程分支。

于 2013-03-14T23:13:14.423 回答
1

你检查了哪个分支? git merge origin/master master不针对master:您始终合并到当前分支。

于 2013-03-14T23:10:07.077 回答