删除git的提交记录,重新提交覆盖原仓库

517 阅读2分钟

在此做个记录,以便我以后需要删除本地git的提交记录,直接找这篇文章就好了。

请注意,以下步骤将会删除 Git 存储库的提交历史,并在 GitHub 上创建一个新的提交历史。这是一项潜在的危险操作,应谨慎操作,并确保在执行前备份存储库。

步骤 1: 备份 Git 存储库 【无所谓我会出手

在执行任何更改之前,务必备份 Git 存储库,以防止意外数据丢失。

步骤 2: 在本地创建一个空的 Git 存储库 【无所谓我会出手

在本地创建一个新的 Git 存储库,用于重新上传到 GitHub。可以使用以下命令在本地创建一个空的 Git 存储库:

arduinoCopy code
mkdir new-repo
cd new-repo
git init

步骤 3: 将原存储库克隆到本地

在本地克隆要删除提交历史的原始 Git 存储库。可以使用以下命令将存储库克隆到本地:

bashCopy code
git clone <原存储库的 URL>
cd <原存储库名称>

步骤 4: 清空提交历史

在克隆的本地存储库中,执行以下命令来清空提交历史:

sqlCopy code
git checkout --orphan new-branch
git commit -m "Initial commit"
git branch -D master
git branch -m master

上面的命令将创建一个新的分支("new-branch")并将其设置为当前分支,然后创建一个新的提交,以清空原存储库的提交历史。然后,删除原来的 master 分支,并将新分支重命名为 master。

步骤 5: 强制推送到 GitHub

在本地存储库中,执行以下命令将清空后的提交历史强制推送到 GitHub:

perlCopy code
git push -f origin master

这将强制推送新的提交历史到 GitHub 上的 master 分支。

步骤 6: 清除 GitHub 上的缓存

在完成强制推送后,可能需要清除 GitHub 上的缓存,以确保新的提交历史在 GitHub 上得以反映。可以通过在 GitHub 存储库的 Settings(设置)页面中点击 "Danger Zone"(危险区域)下的 "Change repository visibility"(更改存储库可见性)按钮来清除缓存。将存储库的可见性从私有更改为公共,然后再次更改回私有。

请注意,这些步骤将会删除原存储库的提交历史,并创建一个全新的提交历史。这是一个不可逆的操作,请在执行前谨慎备份存储库,并确保了解操作的后果。【无所谓我会出手

【无所谓我会出手哇!