1

我已经创建了一个快速启动 repo 并在其上构建了一个应用程序。快速启动 repo 包含约 30 个提交。比如说,他们回购的最后一次提交是,我的abcde第一次提交是,比如说,fghij. 我怎样才能压缩所有的提交,从 first 到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
4

1 回答 1

1

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

git rebase -i --root

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

在 git 提供给您编辑的交互式 rebase 文件中,将提交的所有行从第二次提交更改abcde为以单词开头fixup而不是pick. 保持提交的行和第一次提交的行不变。

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

于 2018-05-25T21:18:25.073 回答