承诺在不同的分支机构上推荐

时间:2012-12-27 10:57:37

标签: git

我有以下提交/分支结构:

|
*   03dd257 - (HEAD, solutions) ...
|\  
| * 7976266 - (master) ...
* | 9ce9158 - ...
|/  
* d2a4d81 - ...

我的流程是:

  • commit d2a4d81(master)
  • 创建分支解决方案
  • commit 9ce9158(solutions)
  • commit 7976266(master)
  • 将master合并到解决方案(commit 03dd257)
  • ammend 7976266 on master

现在我的提交在主人和解决方案上有所不同。如何在分支解决方案上安全地更新commit 7976266?

这些都是本地更改,因此一旦我在本地解决这个问题就应该没有问题。

我在解决方案分支上有进一步的更改,所以我不能简单地重置为9ce9158并再次合并。

2 个答案:

答案 0 :(得分:0)

如果这样做,合并提交仍将指向旧的(未修改的)提交,并且您的树将如下所示:

|   *  XXXXXXX - amended commit
*   |  03dd257 - (HEAD, solutions) ...
|\  |
| * | 7976266 - (old master) ...
* |/ 9ce9158 - ...
|/  
* d2a4d81 - ...

您可能想要做的是在合并之前重置解决方案分支并执行新的合并。如果你还没有发表任何东西(并且因为你修改了东西,你可能没有),这样做是可以的。

答案 1 :(得分:0)

假设通过修改7976266生成的新提交是7976266-v2

我认为您希望7976266-v2中的更改也会显示在solutions中,而不会使图表太复杂。

首先,在amend创建一个7976266-v2分支:

git branch amend 7976266-v2

然后'rebase'在79762667976266-v2之间更改为solution

git rebase --onto solutions 7976266 amend

这应该在03dd257之后创建一个新提交,其中包含79762667976266-v2之间的更改,现在由amend分支指向。

  * sth_new - (amend)
|/
*   03dd257 - (solutions) ...
|\  
| * 7976266 - (master) ...
* | 9ce9158 - ...
|/  
* d2a4d81 - ...

现在,您可以根据需要将amend合并到solutions