壁球在哈希之前提交

时间:2018-05-25 18:05:53

标签: git git-rebase git-squash

我已经分享了一个快速启动仓库并在其上构建了一个应用程序。快速启动仓库包含~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

1 个答案:

答案 0 :(得分:1)

首先输入git的交互式rebase模式 - 请注意,在这种特殊情况下,您必须指定特殊选项--root来编辑根(第一次)提交,git rebase通常不允许这样做命令:

git rebase -i --root

如果你还没有配置EDITOR环境变量,你将被带入git的默认文本编辑器,我认为它总是vi。如果您不理解vi,请键入:q退出并再次启动该过程 - 这一次,将EDITOR设置为您知道如何使用的文本编辑器的名称。 / p>

在git允许您编辑的交互式rebase文件中,将提交的所有行从第二次提交更改为abcde,改为以fixup开头pick。保留提交的行,并保留第一次提交的行。

保存文件并退出文本编辑器。 git现在将执行将原始存储库的提交压缩到一个提交中。

相关问题