Git 修改来自不同分支的旧提交
我有一份git回购协议,其分支机构如下所示:Git 修改来自不同分支的旧提交,git,branch,branching-and-merging,Git,Branch,Branching And Merging,我有一份git回购协议,其分支机构如下所示: c5 (my branch 1) / c1->c2->c3->c4/ (mainline) 在此之后,我从mybranch1创建了另一个分支mybranch2。我还没有在这个新分支机构做出任何承诺;我所有的更改都未过时。如果我使用git commit-amend修改my branch 2的c5,那么my branch 1的c5是否也会被修改 如果是,有没有办法确保它不会
c5 (my branch 1)
/
c1->c2->c3->c4/ (mainline)
在此之后,我从mybranch1
创建了另一个分支mybranch2
。我还没有在这个新分支机构做出任何承诺;我所有的更改都未过时。如果我使用git commit-amend
修改my branch 2
的c5,那么my branch 1
的c5是否也会被修改
如果是,有没有办法确保它不会被修改?本质上,我希望我的git回购看起来像:
c5 (my branch 1)
/
c1->c2->c3->c4/ (mainline)
\
\ c5' (my branch 2)
但是我已经在
我的分支1
的基础上创建了我的分支2
,并且在我的分支1
中编写了很多代码,如果您创建了一个分支,分支将获得一个新的“引用”(创建了一个新的git对象)。如果使用--amend
更新旧提交,也将创建新对象,旧对象不会被删除
从提交创建新分支后,此分支将与任何其他分支分离。因此,更改提交,甚至更改分支A
的整个历史记录,都不会以任何方式影响分支B
这意味着您可以在
我的分支2
上提交更改,返回到我的分支1
并修改提交。您还可以将其隐藏起来,并将更改应用于my branch 1
。你做什么基本上无关紧要。不,如果你创建了一个分支,那么该分支将获得一个新的“引用”(创建了一个新的git对象)。如果使用--amend
更新旧提交,也将创建新对象,旧对象不会被删除
从提交创建新分支后,此分支将与任何其他分支分离。因此,更改提交,甚至更改分支A
的整个历史记录,都不会以任何方式影响分支B
这意味着您可以在
我的分支2
上提交更改,返回到我的分支1
并修改提交。您还可以将其隐藏起来,并将更改应用于my branch 1
。基本上,你做什么并不重要。当你修改C5时,新的“提交C5”就完成了。C5不变。父母C4生下另一个孩子,C5的兄弟姐妹。C5'和C5可能看起来相似,但它们是不同的。当您在分支2上进行修改时,分支2从C5移动到C5',但分支1仍然指向C5。因此,分支1不受修改的影响。当您修改C5时,将进行新的“提交C5”。C5不变。父母C4生下另一个孩子,C5的兄弟姐妹。C5'和C5可能看起来相似,但它们是不同的。当您在分支2上进行修改时,分支2从C5移动到C5',但分支1仍然指向C5。因此,分支机构1不受修正案的影响。