我已经分享了一个快速启动仓库并在其上构建了一个应用程序。快速启动仓库包含~30次提交。他们的回购的最后一次提交是,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
答案 0 :(得分:1)
首先输入git的交互式rebase模式 - 请注意,在这种特殊情况下,您必须指定特殊选项--root
来编辑根(第一次)提交,git rebase
通常不允许这样做命令:
git rebase -i --root
如果你还没有配置EDITOR
环境变量,你将被带入git的默认文本编辑器,我认为它总是vi
。如果您不理解vi
,请键入:q
退出并再次启动该过程 - 这一次,将EDITOR
设置为您知道如何使用的文本编辑器的名称。 / p>
在git允许您编辑的交互式rebase文件中,将提交的所有行从第二次提交更改为abcde
,改为以fixup
开头pick
。保留提交的行,并保留第一次提交的行。
保存文件并退出文本编辑器。 git现在将执行将原始存储库的提交压缩到一个提交中。