我正在尝试使用原始项目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
为原点而原始克隆为单独的遥控器。这样做时我遇到了合并推送没有问题。我仍然想知道为什么我的原始尝试失败了。
答案 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
,对master
,git push
来说意味着。
(一切都与master:master
略有不同,左侧与遥控器的名称相匹配,右侧是您的名字,省略refspec的右侧意味着“不要更新任何东西,只需删除将结果导入fetch
“。)