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是否也会被修改 如果是,有没有办法确保它不会

我有一份git回购协议,其分支机构如下所示:

                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不受修正案的影响。