我可以将分支基于与当前不同的分支吗?

时间:2018-04-09 10:11:42

标签: git merge branch

我确定这个问题没什么帮助。

所以我有devuat个分支。 uat本身曾经从dev创建。前段时间我需要添加一个补丁,所以我创建了另一个名为connection-timeout的分支。但只有经过大量工作并在该分支上提交并将其合并到uat后,才意识到我是从uat而不是dev分支创建的。现在我想将它(connection-timout分支)合并到dev,但我想避免来自uat的提交。是否可以使connection-timout分支基于dev

1 个答案:

答案 0 :(得分:3)

您需要在git rebaseconnection-timeout dev分行。

现在您的图表可能如下所示:

dev * - - * - - * - - * - - *
      \ 
uat    \- * - - * - - * - - *
                       \
connection-timeout      \ - * - - * - - *

如果您执行以下操作:

git checkout connection-timeout

git rebase dev

你最终会得到这个:

connection-timeout            / - * - - * - - *
                             /
dev * - - * - - * - - * - - *
      \ 
uat    \- * - - * - - * - - *

然后,您可以将uat重置为合并前的状态。

注意:如果您已将connection-timeout推送到遥控器,则必须使用

git push --force 

正在重写历史。如果其他人在这个分支上工作,这可能会导致问题,因为他们的历史记录现在将与遥控器不一致。