【问题标题】:Can I base a branch on a different one from the current?我可以将分支建立在与当前不同的分支上吗?
【发布时间】:2018-04-09 10:11:41
【问题描述】:

我相信这个问题没有多大帮助。

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

【问题讨论】:

  • 你想将 UAT 合并到 dev 没有任何提交?
  • 不,我想将 connection-timeout 分支合并到 dev 中。

标签: git merge branch


【解决方案1】:

你会想要git rebaseconnection-timeoutdev 上的分支。

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

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

如果您执行以下操作:

git checkout connection-timeout

git rebase dev

你最终会得到这个:

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

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

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

git push --force 

当你改写历史时。如果其他人在此分支上工作,这可能会导致问题,因为他们的历史现在将与远程不一致。

【讨论】:

  • 谢谢。我按照你的建议做了。
猜你喜欢
  • 2014-03-17
  • 2014-09-11
  • 2015-04-18
  • 2018-01-27
  • 2012-08-22
  • 1970-01-01
  • 1970-01-01
  • 2014-01-18
相关资源
最近更新 更多