考虑到我有两个分支:master
和staging
。提交C
是在staging
上进行的,并被紧急挑选到master
中,因此它已经存在。
-x-x-x-A-B-C-D (staging)
/
-x-x-x-C (master)
后来,另一个分支feature
被直接合并到master
中,所以两个提交被添加到master
,提交E
和合并提交F
。
-x-x-x-A-B-C-D (staging)
/
-x-x-x-C-E-F (master)
我需要将master
中的内容合并到staging
中,这样就可以将staging
合并到master
中。如果我只使用合并,那么由于挑选的原因,我会得到重复的提交。如果我改为重定基:git checkout staging && git rebase origin/master
我得到A
,B
,和D
在上面(尽管,我不认为合并提交F
进来,除非我使用--rebase-merges
,尽管可能是错误的):
-x-x-x-C-E-F-A-B-D (staging)
但是,如果我希望这三个提交根据它们实际创建的时间进行合并,并最终得到:
-x-x-x-A-B-C-D-E-F (staging)
这是可能的吗?这样做有意义吗?还是把A
、B
和D
放在上面更好?
1条答案
按热度按时间omqzjyyz1#
短语
git checkout staging && git rebase origin/master
将staging
重定基为master
,这似乎与你想要的正好相反。你想要的更像是将E和F从master
重定基为staging
。请记住,重定基只是挑选,所以你可以通过挑选E然后F来实现这一点。如果F是一个合并提交,那么你必须指定它的父提交,如下所示:
但我更倾向于认为没有合并,即使你声称有,所以你所要做的就是说