![为什么删除 .git 会删除所有跟踪的文件?](https://linux22.com/image/1551264/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%88%A0%E9%99%A4%20.git%20%E4%BC%9A%E5%88%A0%E9%99%A4%E6%89%80%E6%9C%89%E8%B7%9F%E8%B8%AA%E7%9A%84%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我想重新创建一个 git 存储库。我的理解是,通过删除“.git”文件夹,我可以从新的历史记录开始。但是,删除该文件夹似乎会删除所有追踪文件,只在磁盘上留下未跟踪的文件。
我能够从备份中恢复文件,但我不明白可能出了什么问题。
答案1
所有跟踪的文件都存储在.git/index
文件中,如果您删除该文件,所有文件都将变为未跟踪文件。当您从.git/
文件夹中删除所有文件时,您基本上就是在擦除/销毁整个存储库。
目前尚不清楚您想要实现什么,因此:
到重建索引, 跑步:
git reset && git add -u
。要在删除后重新创建 Git
.git
,请运行:git init
。要重新添加所有未跟踪的文件,请运行:
git add -A
并提交它们。
答案2
你可能处于一个裸存储库中,其中没有可用的工作文件,你只有存储库。因此,如果你删除 git 目录,则会删除所有内容。看看https://stackoverflow.com/a/28428742以及该问题中的其他答案。
此外,无论你想实现什么,你都不应该玩弄.git
存储库。使用git
命令来实现你的目标,并将.git
目录视为禁区,仅供工具内部工作。