rar*_*rrr 6 git github git-rebase
我的团队正在从git merge工作流转向rebase工作流,我不明白我做错了什么.我主要是从这篇博文作为模板.最终,希望能够提交一个github pull请求,其中包含来自我的分支的提交,该请求与master没有合并冲突.如果拉请求只能包含我的提交(用于代码审查),那就太好了.
方案如下:
我从主人到我当地的分支机构:
git fetch
git rebase origin/master
Run Code Online (Sandbox Code Playgroud)我处理任何合并冲突,然后继续变基
git mergetool
git rebase --continue
Run Code Online (Sandbox Code Playgroud)因为我是唯一一个在我的分支上工作的人,所以我希望能够将我当前的状态推到一起
git push origin myBranch
Run Code Online (Sandbox Code Playgroud)但是,当我尝试推动时,我得到以下内容
$ git push origin myBranch
To <github address>
! [rejected] myBranch -> myBranch (non-fast-forward)
error: failed to push some refs to <github address>
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Run Code Online (Sandbox Code Playgroud)git rebase origin/myBranch我会遇到很多冲突,因为我从主人那里提交的提交都抱怨我的分支中存在的提交来自之前的rebase (但我从未亲自改变过).小智 5
如果您不想强制推送(push -f)功能分支,则必须在将功能分支推送到GitHub后避免重新设置功能分支.
我使用此工作流程时没有收到您在步骤6中提到的错误.
git checkout mastergit pullgit checkout -b feature_branchgit commit -m "Finish my work"git checkout mastergit pullgit checkout feature_branchgit rebase mastergit push origin feature_branch正如mipadi在他的回答中所说的那样,如果在签出功能分支时执行以下操作,则必须强行推送功能分支:
git push origin feature_branchgit rebase mastergit push origin feature_branch#错误git push -f origin feature_branch最后一个命令 - git push -f origin feature_branch- 如果你是唯一一个在该分支上工作的人,不应该导致任何问题.