在散列之前压缩提交
Squash commits before hash
我 fork 了一个快速启动 repo 并在其上构建了一个应用程序。快速启动回购包含约 30 次提交。他们 repo 的最后一次提交是 abcde
而我的第一次提交是 fghij
。我如何压缩所有提交,从第一个到 abcde
,以便在 fghij
.
之前只有一个大提交
请您逐行解释一下。我不明白类似主题下的其他答案。
现在的提交历史树示例:
klmno - Currently newest commit
.
.
.
fghij - Initial commit of mine
abcde - Last commit made by them
.
.
vwxyz - Initial commit of theirs
预期提交的示例历史树:
klmno - Currently newest commit
.
.
.
fghij - Initial commit of mine
prstu - Fresh X installation
首先进入git的交互式变基模式——注意在这种特殊情况下,你必须指定特殊选项--root
来编辑根(第一次)提交,这通常不是git rebase
命令允许:
git rebase -i --root
如果您还没有配置 EDITOR
环境变量,您将进入 git 的默认文本编辑器,我认为它始终是 vi
。如果您不理解 vi
,请键入 :q
退出并再次启动该过程 - 这次,将 EDITOR
设置为您知道如何使用的文本编辑器的名称。
在 git 给你编辑的交互式 rebase 文件中,将提交的所有行从 second 提交更改为 abcde
以开始使用单词 fixup
而不是 pick
。保留您的提交行和第一次提交行,保持不变。
保存文件并退出文本编辑器。 git 现在会将原始存储库的提交压缩为一个提交。
我 fork 了一个快速启动 repo 并在其上构建了一个应用程序。快速启动回购包含约 30 次提交。他们 repo 的最后一次提交是 abcde
而我的第一次提交是 fghij
。我如何压缩所有提交,从第一个到 abcde
,以便在 fghij
.
请您逐行解释一下。我不明白类似主题下的其他答案。
现在的提交历史树示例:
klmno - Currently newest commit
.
.
.
fghij - Initial commit of mine
abcde - Last commit made by them
.
.
vwxyz - Initial commit of theirs
预期提交的示例历史树:
klmno - Currently newest commit
.
.
.
fghij - Initial commit of mine
prstu - Fresh X installation
首先进入git的交互式变基模式——注意在这种特殊情况下,你必须指定特殊选项--root
来编辑根(第一次)提交,这通常不是git rebase
命令允许:
git rebase -i --root
如果您还没有配置 EDITOR
环境变量,您将进入 git 的默认文本编辑器,我认为它始终是 vi
。如果您不理解 vi
,请键入 :q
退出并再次启动该过程 - 这次,将 EDITOR
设置为您知道如何使用的文本编辑器的名称。
在 git 给你编辑的交互式 rebase 文件中,将提交的所有行从 second 提交更改为 abcde
以开始使用单词 fixup
而不是 pick
。保留您的提交行和第一次提交行,保持不变。
保存文件并退出文本编辑器。 git 现在会将原始存储库的提交压缩为一个提交。