修改来自不同分支的旧提交

Modifying an old commit from a different branch

我有一个 git 仓库,其分支如下所示:

                c5 (my branch 1)
               /
c1->c2->c3->c4/ (mainline)

在此之后,我从 my branch 1 创建了另一个分支 my branch 2。我还没有在这个新分支中做任何事情;我所有的更改都没有进行。如果我使用 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)

但我已经在 my branch 1 之上创建了 my branch 2 并且在 my branch 1 之后写了很多代码。

,如果您创建了一个分支,该分支将获得一个新的 "reference"(创建一个新的 git 对象)。如果您使用 --amend 更新旧提交,也会创建一个新对象,旧对象不会被删除。

从提交创建新分支后,此分支与任何其他分支分开。因此,更改提交甚至分支 A 的整个历史都不会以任何方式影响分支 B

这意味着 您可以在 my branch 2 提交您的更改,返回 my branch 1 并修改提交。您也可以将其隐藏起来并在 my branch 1 上应用更改。基本上你做什么都无所谓。