gpt4 book ai didi

git - 如何回滚 Git repo 到第一次提交并删除所有历史记录

转载 作者:IT王子 更新时间:2023-10-29 01:23:55 25 4
gpt4 key购买 nike

这些天我正在学习如何使用 git,我不得不做很多碰碰运气的事情。因此,我需要删除并重新创建我的远程和本地存储库。有没有办法回滚到 repo 的第一次提交并删除之后的所有历史记录?基本上是一个干净的实验平台。

最佳答案

我不知道有什么方法可以完全按照您的要求进行操作(可以回滚到第一次提交,但不能删除所有 历史记录,因为历史记录至少包含初始的提交。)

如果我是你,我会删除远程仓库和 .git本地 repo 的目录,然后从 git init 开始.

我能得到的最接近您要求的是回滚除第一个提交之外的所有内容。为此,您首先要找到第一次提交的 SHA1,例如:

% git rev-list --max-parents=0 --abbrev-commit HEAD
aa8119f

...然后运行

% git reset aa8119f

...或者

% git reset --hard aa8119f

...取决于您是要保留还是放弃自初始提交以来所做的所有更改。 (以上假定您只有一个分支。如果没有,您还必须删除所有其他带有 git branch -d <BRANCHNAME> 的分支。)

最后,你会跑

% git push -f

(我希望您意识到 git push -f 在您推送到与他人共享的存储库时是一个禁忌。)

不幸的是,如前所述,这种方法不会删除所有历史。

如果这是您想要经常做的事情,我建议您在 git init 之后立即执行此操作,你运行类似的东西

% git commit --allow-empty --allow-empty-message -m ''
% git tag -a -m '' ROOT

这会将一个空的提交放在历史的根目录下,并用一个名为 ROOT 的标签对其进行标记。然后你可以做类似的事情

% git reset ROOT

% git reset --hard ROOT

让您回到第一个空提交。

为了很好地处理什么 git reset确实如此,我建议阅读 this .

关于git - 如何回滚 Git repo 到第一次提交并删除所有历史记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16499908/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com