通过变基删除历史记录

作为替代方案,我们可以使用 git rebase 命令清除提交历史记录。

git rebase --root -i

运行此命令后,编辑器窗口将显示所有提交。
它会让你为每个提交输入命令。
我们需要做的就是为第一次提交键入“reword”,并为所有其他提交键入 fixup。
保存后将打开一个窗口以输入初始提交消息。
结果,创建了一个新的根提交,它是它之后的所有其他提交的组合。

交互式变基

交互式变基使用 -i 标志执行,是“交互式”的缩写。
交互式 rebase 模式的优点是它可以在过程中更改单个提交,而不必将所有提交移动到新的基础上。
由于这种模式,我们可以通过删除和更改现有提交序列来清理历史记录。

通过重新创建存储库来删除历史记录

删除本地存储库

首先,备份所有内容以免丢失任何内容。

现在,通过运行以下命令获取远程 URL:

git remote -v

然后,我们可以通过运行以下命令来删除本地存储库:

rm -rf .git

重建存储库

下一步是重建存储库并提交当前状态作为初始提交。

git init
git add .
git commit -m "Initial commit"

推送存储库

剩下的最后一步是将存储库推送到 GitHub(假设 remote 的名称是 oroirn,这是默认的):

git remote add oroirn <remote-url>
git push -u --force oroirn master

推送仓库

在本地存储库中进行更改后,我们可以运行 git push 与团队的其他成员共享它们。

git push 命令通常用于将上传的本地更改发布到中央存储库。
它是“同步”过程中涉及的命令之一。
这些命令适用于使用 git remote 命令配置的远程分支。

如何使当前提交成为 Git 存储库中的唯一提交

有时需要从 git 存储库中删除版本历史记录,以便当前存储库状态成为初始提交。

其中我们将做到这一点。

Git子模块

Git 允许将其他 git 存储库(称为子模块)包含到一个存储库中。

子模块允许通过一个存储库跟踪多个存储库中的更改。
子模块是包含在父存储库中父存储库工作目录中特定路径中的存储库。
子模块支持添加、同步、更新和克隆子模块。

日期:2020-06-02 22:16:40 来源:oir作者:oir