作者:血流的风霜_565 | 来源:互联网 | 2023-05-21 11:26
我的团队正在从git merge工作流转向rebase工作流,我不明白我做错了什么.我主要是从这篇博文作为模板.最终,希望能够提交一个github pull请求,其中包含来自我的分支的提交,该请求与master没有合并冲突.如果拉请求只能包含我的提交(用于代码审查),那就太好了.
方案如下:
我为我的功能创建了一个master的分支
做一些工作...
我从主人到我当地的分支机构:
git fetch
git rebase origin/master
我处理任何合并冲突,然后继续变基
git mergetool
git rebase --continue
因为我是唯一一个在我的分支上工作的人,所以我希望能够将我当前的状态推到一起
git push origin myBranch
但是,当我尝试推动时,我得到以下内容
$ git push origin myBranch
To
! [rejected] myBranch -> myBranch (non-fast-forward)
error: failed to push some refs to
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.
如果我尝试git rebase origin/myBranch
我会遇到很多冲突,因为我从主人那里提交的提交都抱怨我的分支中存在的提交来自之前的rebase (但我从未亲自改变过).
小智..
5
如果您不想强制推送(push -f
)功能分支,则必须在将功能分支推送到GitHub后避免重新设置功能分支.
我使用此工作流程时没有收到您在步骤6中提到的错误.
git checkout master
git pull
git checkout -b feature_branch
git commit -m "Finish my work"
git checkout master
git pull
git checkout feature_branch
git rebase master
解决合并冲突.
git push origin feature_branch
开拉请求.
正如mipadi在他的回答中所说的那样,如果在签出功能分支时执行以下操作,则必须强行推送功能分支:
git push origin feature_branch
git rebase master
git push origin feature_branch
#错误
git push -f origin feature_branch
最后一个命令 - git push -f origin feature_branch
- 如果你是唯一一个在该分支上工作的人,不应该导致任何问题.
1> 小智..:
如果您不想强制推送(push -f
)功能分支,则必须在将功能分支推送到GitHub后避免重新设置功能分支.
我使用此工作流程时没有收到您在步骤6中提到的错误.
git checkout master
git pull
git checkout -b feature_branch
git commit -m "Finish my work"
git checkout master
git pull
git checkout feature_branch
git rebase master
解决合并冲突.
git push origin feature_branch
开拉请求.
正如mipadi在他的回答中所说的那样,如果在签出功能分支时执行以下操作,则必须强行推送功能分支:
git push origin feature_branch
git rebase master
git push origin feature_branch
#错误
git push -f origin feature_branch
最后一个命令 - git push -f origin feature_branch
- 如果你是唯一一个在该分支上工作的人,不应该导致任何问题.