基于上游创建一个git分支,而不是基于我的上游fork

时间:2016-04-21 16:47:16

标签: git github

我有一个fork,我会定期从GitHub上游的repo更新。我在我的项目中使用它,所以它自然地将我创建的所有分支合并在一起,以便我可以使用我需要的修复。

然而,原始回购并不一定会立即接受我的拉动请求。所以,当我想创建一个新的拉取请求,而不包括未完成的PR时,我如何再次分割原始仓库以根据它进行更改,而不是我的分叉,这样我就可以提交新的,不相关的PR?

目前我一直在做的是制作我的叉子的一个分支,然后在最老的杰出公关之前将其重新定位,然后挑选除了未完成的PR之外的所有内容。这在小规模上是好的,但是现在有几个星期和几百个提交之前有一些优秀的PR,这是非常痛苦的,只是向上游提交一个小的改变。

IOW我想要一个基于当前上游的分支,而不是我当前的fork,它位于上游之前。我怎样才能在GitHub中轻松搞定?

1 个答案:

答案 0 :(得分:0)

我想我现在很难看到它。我已经考虑过@ RuslanOsmanov的答案了,但是从我目前的情况看不出如何实现目标。我想我应该从一开始就采取不同的做法,对于那种情况,总会有......变革!所以我做了最后一次rebase,这次是在我的前叉上,然后用我的组合PR保留我自己的分支,然后让fork从上游拉出来。

这对我来说有点不太直观,从如何思考"真实"叉子会回馈上游,但如果这是唯一的方法,那就这样吧。

然而,试图以这种方式改变使我在TortoiseGit中给出了一个模糊的错误Unrecoverable error: Merge commit parent missing。在这种情况下,修复程序正在跳过有问题的提交,这只是一个"追赶"无论如何合并;奇怪的是其他一些追赶合并并没有引起问题。

实际上比rebase更容易的是重置HEAD到旧版本,然后使反向PR赶上。从那里开始,我已经准备好了一个没有超前的上游分支。