让我们拥有一个git master分支,并在某个时候让fork分支发布(release分支称为R1)。有时我需要对它们(master和R1)都进行提交。通常,我在master分支上工作,完成后我对其进行测试,选择R1,在那里进行测试,然后将它们推入两者。
我想在R1中提交对master分支的引用。这是通过cherry-pick -x完成的。但是,这种方法仅在我推送到master分支,然后从master到R1的情况下才起作用。可以说测试花费了太多时间,我想使master和R1尽可能地保持同步(我希望最大限度地减少两次推送之间的时间间隔),所以我想同时推送。这样,我无法获取引用(在Cherry-pick中为-x),因为在R1中进行基变时哈希值将发生变化(无法使用合并)。有什么方法可以自动执行此操作,因此我将在R1描述中使用正确的哈希值?像哈希预测一样?
有什么方法可以自动执行此操作,因此我将在R1描述中使用正确的哈希值?像哈希预测一样?
最简洁的答案是不。
更长的答案仍然是“否”,但是您可能不需要预测哈希值。这里的问题是,您正在将一些修订提交(我们称其为“复制”)F
从master
另一个分支复制。我们称其-x
为“精心挑选的副本提交” Fx
。您还可能最终将修订提交复制到新的修订提交,因为要避免git merge
在此工作流程中使用它,因此,如果master
已获取新的提交,则可以使用rebase挑选F
到F'
将要添加到的新提交中master
,现在,您要用的Fx
精选樱桃副本替换您的-精选F
樱桃副本F'
。
因此,您可以这样做。如果您以提交F
为基准F'
,请Fx
从另一个分支中剥离并重新运行git cherry-pick -x
以复制F'
到Fx'
。您已经知道这些是哪些提交,因为您具有的原始哈希IDF
并通过选择(通过rebase)产生了它F'
;并且您在中具有F
哈希ID Fx
。其缺点是,该再拷贝任何提交后 Fx
在另一个分支中,由于“带材Fx
从另一个分支”可以是平凡的。
(一种避免所有麻烦的替代方法是将修订合并到两个分支中。请参阅如何在git中进行部分合并?以及链接的博客文章。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句