为什么git fetch origin master失败了?

Cha*_*429 1 git github

假设我的本地存储库是github上存储库后面的一个提交.

然后我在本地存储库中提交一个提交

此时

A ------>提交1 Github/master

A ------>提交2本地存储库/主服务器

我执行以下步骤将commit 2推送到github:

  1. git fetch origin master
  2. git rebase origin/master
  3. git push origin master

但是我遇到了以下错误:

在此输入图像描述 如果我尝试用第1步替换git fetch origin它,它运行良好

然后我尝试了git fetch origin master:tmp,一个名为tmp的分支成功创建

所以,我的问题是

为什么git fetch origin master有时工作(在这种情况下git fetch origin master:tmp),而有时不工作在案例步骤1?

Car*_*eto 5

这不是关于工作与否,而是关于你在哪里询问git store它下载的内容.如果省略refpec中的目标,则要求git将其存储在FETCH_HEAD中.因此,git fetch origin master实际上git fetch origin master:FETCH_HEAD,你根本没有触摸origin/master或任何参考(正如你从输出中看到的那样master -> FETCH_HEAD).

当你运行时,git fetch origin master:tmp你要求它下载主分支(这是另一层,猜测你想要处理分支)并将其存储在一个名为的本地分支中tmp.您还会在输出中看到此映射.

如果要更新远程跟踪分支,只需调用即可git fetch origin.调用两个参数版本git-fetch很少是你想要做的事情.