最近工作git管理方面遇到一个疑问,如下:我有两个分支dev和feature分支,目前出现如下疑问,我在feature分支先执行gitpulloriginfeature操作,更新本地的分支到最新,然后执行了gitrebasedev操作,最后执行gitpushoriginfeature时会遇到如下错误Tossh://xxx@git.xxxx.com/project_xx/xxx.git![rejected]feature->feature(non-fast-forward)error:failedtopushsomerefsto'ssh://xxx@git.xxxx.com/project_xx/xxx.git'hint:Updateswererejectedbecausethetipofyourcurrentbranchisbehindhint:itsremotecounterpart.Integratetheremotechanges(e.g.hint:'gitpull...')beforepushingagain.hint:Seethe'Noteaboutfast-forwards'in'gitpush--help'fordetails.最后再执行一次gitpulloriginfeature操作才能成功,这样会产生一条mergelog,并且内容为空Showing0changedfiles。疑问,为什么我之前已经执行了pull更新到最新了?不知道是不是我操作流程的问题,请大牛们指教,谢谢!
2 回答
胡子哥哥
TA贡献1825条经验 获得超6个赞
问题应该是这样的:首先,你的feature分支是远端分支,你把他rebase后,本地的feature分支就到了dev分支上了,但是feature的远端追踪分支origin/feature还是在原来的位置上。然后你这样push的话git是不允许的,push的时候git会检查分支的历史commit,当你当前分支的上一个提交不是远端分支上最新的提交时,git就会阻止你提交。要求你pull来跟新分支。还有就是,让追踪分支和本地分支分离也许不是个很好的做法。如果你的目的是把追踪分支也删除,然后把本地分支的结构同步到远端的话。你可以先把远端的feature删除,gitpushorigin:feature这样本地的追踪分支也就没了。然后你在push就可以了。
添加回答
举报
0/150
提交
取消
