1

我来自 SVN 背景。我已经分叉并分支了一个 git 存储库。然后我更改了分支(我们称之为my-branch),提交、推送并发送了一个拉取请求。

碰巧上游存储库已更改,并且由于主更改产生的冲突,我的 PR 变得无效。

我应该如何继续我的分支以解决冲突并更新 PR?

我尝试从上游主服务器获取更改到本地主服务器,然后将我的分支重新定位到本地主服务器:

git checkout master
git fetch upstream
git merge upstream/master
git push origin master
git checkout my-branch
git rebase master

问题是当我解决冲突并提交/推送更改时,来自上游的所有提交也都包含在 PR 中,就好像我已经进行了这些更改一样。那么,再次,我应该如何继续真正“重新设置”我的分支和 PR,以便我可以安全地更改并只提交我已更改的文件到 PR?

4

1 回答 1

2

让我们有这些约定:

  • upstream是分叉项目的远程名称
  • origin是您的 github fork 的远程名称

这是使用来自以下的新提交更新功能分支的正确工作流程upstream/master

  • git checkout my-branch// 切换到你的功能分支
  • git fetch --all// 从所有声明的远程获取新的提交
  • git rebase upstream/master// 将你的特性分支重新定位到 upstream/master 的最后一次提交
  • git push -f origin my-branch// 覆盖你的远程my-branch(因为 rebase 重写提交是强制性的)

你的 PR 应该用新的提交来更新my-branch

于 2013-06-03T14:06:37.083 回答