修改来自不同分支的旧提交
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
上应用更改。基本上你做什么都无所谓。
我有一个 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
上应用更改。基本上你做什么都无所谓。