我为许多开源项目做出了贡献。通常,由于外部贡献者没有对他们所贡献的存储库具有写入权限,因此工作流程如下:
clone
私人副本分开git checkout -b feature-branch
local:feature-branch
合并到remote:master
这一切都很好,但是当合并冲突迫使我将master
合并到我的功能分支中时,我最近遇到了一个问题,因此可以接受拉取请求。
命令通常是:
git checkout master
git pull origin master
git checkout feature-branch
git merge master
但是,当我完成这些步骤时,git
会显示Already up-to-date.
,这是有道理的。因为我在repo的分叉版本中,我的副本永远无法将最近的远程更改发送到master
。
所以看起来因为我正在处理一个无法合并的分叉副本,我的PR永远不可合并。
我如何解决他的问题?
非常感谢你的帮助!
答案 0 :(得分:1)
您需要做的是将远程仓库的master
合并到feature-branch
,以便您的分支机构与远程master
保持同步,而不是您的拥有origin
主人。
git checkout feature-branch
git pull remote master
答案 1 :(得分:1)
命令通常是:
git checkout master git pull origin master git checkout feature-branch git merge master
嗯,问题出在第二行。
git pull origin master
origin
遥控器设置为你的前叉。如果您运行类似
git remote show origin
类似
* remote origin
Fetch URL: https://github.com/YOUR-NAME/repo.git
Push URL: https://github.com/YOUR-NAME/repo.git
HEAD branch: master
会出现。
话虽如此,你必须从分叉的遥控器中拉出来。运行
git remote show
将显示所有遥控器。
结帐到您的主分行,然后运行
git pull <the-remote-that-isnt-origin> master
其中<the-remote-that-isnt-origin>
是您运行origin
时显示的不是git remote show
的遥控器。
现在,大多数开源项目都不喜欢合并提交,所以我建议rebasing。
git checkout your-branch
git rebase master