如何在重写主干后将 GitHub 分叉仓库与上游同步?

3

我有一些带有我的特性分支的衍生仓库。 我使用fetch/merge保持它与上游最新状态。 在某个时候,上游所有者编辑了一个提交(C2),并从该点开始重写了整个历史记录(C2'-C3')。

----C1---C2'--...---C3'--C5---...---C6(upstream/master)
     \
      ---C2---...---C3(origin/master)
                     \
                      ---C4(origin/feature-branch)

现在我该如何同步我的 fork?我想以某种方式重写 C2-C3 为 C2'-C3',将 C4 变基到 C3' 之上,然后将我的 fork 同步到 C6。我想避免将 C6 合并到 C3 中。

已解决:

$ git fetch upstream
$ git reset --hard upstream/master --
$ git push origin +master
$ git checkout feature-branch
$ git reset --hard master --
$ git cherry-pick C4
$ git push origin +feature-branch

1
可能是强制更新后的Git拉取的重复问题。 - pschichtel
1个回答

1
只要是少量提交,您总是可以使用 git cherry-pick (https://git-scm.com/docs/git-cherry-pick)。
一种方法是克隆您的主分支,将主分支重置为上游/主分支,然后从克隆分支中挑选您想要的提交。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接