git rebase遇到的一个疑问

最近工作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:Updateswererejectedbecausethetipofyourcurrentbranchisbehind
hint:itsremotecounterpart.Integratetheremotechanges(e.g.
hint:'gitpull...')beforepushingagain.
hint:Seethe'Noteaboutfast-forwards'in'gitpush--help'fordetails.
最后再执行一次gitpulloriginfeature操作才能成功,这样会产生一条mergelog,并且内容为空Showing0changedfiles。
疑问,为什么我之前已经执行了pull更新到最新了?不知道是不是我操作流程的问题,请大牛们指教,谢谢!
BIG阳
浏览 1043回答 2
2回答

胡子哥哥

问题应该是这样的:首先,你的feature分支是远端分支,你把他rebase后,本地的feature分支就到了dev分支上了,但是feature的远端追踪分支origin/feature还是在原来的位置上。然后你这样push的话git是不允许的,push的时候git会检查分支的历史commit,当你当前分支的上一个提交不是远端分支上最新的提交时,git就会阻止你提交。要求你pull来跟新分支。还有就是,让追踪分支和本地分支分离也许不是个很好的做法。如果你的目的是把追踪分支也删除,然后把本地分支的结构同步到远端的话。你可以先把远端的feature删除,gitpushorigin:feature这样本地的追踪分支也就没了。然后你在push就可以了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript