永久删除git commit历史记录

时间:2019-07-03 18:58:12

标签: git repository

我需要永久和完全删除git存储库的提交历史记录,并继续使用文件的当前版本。绝不能以任何方式访问较旧的版本/提交。我尝试创建一个新的master分支,删除所有其他分支,但是当我在git bash中尝试'git show xxxx'时,旧的提交仍然显示。

我尝试创建一个新的master分支,删除所有其他分支,并使用git gc。

3 个答案:

答案 0 :(得分:0)

要进行彻底清理,您需要创建一个全新的存储库并删除旧的存储库。

我可以为您提供有关运行垃圾收集,清除引用日志以及查找Git存储已删除提交的其他地方的答案,但是有您提出的问题,我强烈建议您重新尝试。

特别是,如果您使用的是GitHub或其他在线Git服务器,则完全清除旧提交并不容易。

答案 1 :(得分:0)

您可以尝试这种方法。这将永久删除您的提交历史记录。

创建一个新的孤立分支

git checkout --orphan temp_branch

将文件添加到新分支

git add -A
git commit -m "Initial commit"

删除原始主分支

git branch -D master

重命名孤儿分支

git branch -m master

按更改(如有必要)

git push -f origin master

答案 2 :(得分:0)

正如@torek 指出的:

<块引用>

历史不过是承诺;提交是历史;所以一个新的空仓库,还没有提交,你对它进行一次包含所有文件的提交,就是答案。

作为一般警告,这是一个破坏性的行为。删除您的历史记录:

rm -rf .git/

创建一个很棒的新 Git 存储库,添加所有文件并提交:

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

推送或强制推送到您保存存储库的任何位置。

对“不得以任何方式访问旧提交”的既定目标的警告:Git 是一个 distributed 版本控制系统。任何拥有代码库副本及其当前历史记录的用户在进行这些更改后仍将拥有它。