重新建立提交的基础,而不将其合并到基础提交中(只需将其移动到另一个分支上的特定提交旁边)



在历史的某个时刻,我有一个主分支看起来像这样。

A <-- B <-- C <-- D  (main)

此时,我使用交互式rebase将C压缩到D中,并获得提交C’。在提交C'时,我创建了v1分支,当我在main支路时,我进行了另一次提交(E(。所以存储库现在看起来是这样的:

A <-- B <-- C' <-- E (main)
(v1)

我再次将C'挤压成E,得到C〃

A <-- B <-- C'(v1)
⇡__ C"(main)

在那之后,我进行了另一次提交F和挤压C">并得到了C"'。所以目前我的存储库是这样的:

A <-- B <-- C'(v1)
⇡__ C"'(main)

现在我想重新基准提交C"'C'之上,但不必合并它们与共同父级B的差异。换句话说,我想移动C"'C'之上,就好像我直接对C'TR

听起来你想:

git checkout main # check out branch main (commit C''')
git reset --soft v1 # move HEAD to v1 (commit C'), but keep all files and keep index
git commit -C "C'''" # commit index with commit message of commit C''' (previous tip of "main")

最新更新