我有以下提交/分支结构:
|
* 03dd257 - (HEAD, solutions) ...
|\
| * 7976266 - (master) ...
* | 9ce9158 - ...
|/
* d2a4d81 - ...
我的流程是:
现在我的提交在主人和解决方案上有所不同。如何在分支解决方案上安全地更新commit 7976266?
这些都是本地更改,因此一旦我在本地解决这个问题就应该没有问题。
我在解决方案分支上有进一步的更改,所以我不能简单地重置为9ce9158并再次合并。
答案 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'在7976266
和7976266-v2
之间更改为solution
git rebase --onto solutions 7976266 amend
这应该在03dd257
之后创建一个新提交,其中包含7976266
和7976266-v2
之间的更改,现在由amend
分支指向。
* sth_new - (amend)
|/
* 03dd257 - (solutions) ...
|\
| * 7976266 - (master) ...
* | 9ce9158 - ...
|/
* d2a4d81 - ...
现在,您可以根据需要将amend
合并到solutions
。