新创建的分支机构与远程对应设备不是最新的?

时间:2016-01-25 18:00:24

标签: git

我正在尝试使用原始项目master的最新更新来更新项目的分支。 (我不是fork的维护者,但是fork的维护者不熟悉Git并依赖我为他做这个。)

以前,我没有遇到任何麻烦,但现在我发现由于某种原因,Git告诉我,推进他的分支将是非快进的,即使我正在创建我的本地分支基于最新版本的远程master

使用FORK作为远程分支名称,并且没有实际执行原始项目的最新更新的合并,以下是正在发生的事情:

> git fetch FORK
> git checkout -b fork_master FORK/master
Branch fork_master set up to track remote branch master from FORK.
Switched to a new branch 'fork_master'
> git push FORK master
To git@<fork-URL>.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'git@<fork-URL>.git'
hint: Updates were rejected because a pushed branch tip is behind its remote
hint: counterpart. Check out this branch and integrate the remote changes
hint: (e.g. 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

正如您所见,我fetch在创建分支之前,从FORK master创建分支,然后立即返回FORK master 而不进行任何更改

再次调用git fetch不再产生输出,因此我的原始fetch和我的push之间没有更新分支。

我尝试删除并重新建立与remote相对应的FORK,但这并未改变行为。

这可能会发生什么?我正在使用git 2.1.4

编辑:作为一种解决方法,我创建了一个全新的克隆,其中FORK为原点而原始克隆为单独的遥控器。这样做时我遇到了合并推送没有问题。我仍然想知道为什么我的原始尝试失败了。

1 个答案:

答案 0 :(得分:1)

As the numbered user noted,您要求git将本地var chart = worksheet.Drawings.AddChart(chartName, eChartType.XYScatter); 分支的提示推送到远程master分支。

原因是在master的语法中,最后一个参数是“refspec”,而不仅仅是分支名称。简而言之,refspec是分支名称的,例如git push remote refspec。对于fork_master:master,左侧名称是您的本地分支提示,右侧名称是您要求远程更新的名称。

编写单个分支名称,例如push,对mastergit push来说意味着。

(一切都与master:master略有不同,左侧与遥控器的名称相匹配,右侧是您的名字,省略refspec的右侧意味着“不要更新任何东西,只需删除将结果导入fetch“。)