删除Git仓库,但保留所有文件。

11
在我使用Linux的冒险中的某个时刻,我决定把我的主目录中的所有内容都放入源代码控制中。我不是在问这是否是个好主意,而是在问如何撤销它。
删除仓库的原因是我最近安装了Oh My Zsh,并且真的很喜欢它。问题是我的主目录后面有一个大的`git:(master)`,我并不是很喜欢它。
所以我想要做的是删除Git仓库本身,这样就不再显示`git:(master)`,而不需要删除我的所有文件。

2
虽然问题本身已经表述得很清楚,但是对我来说,删除存储库以摆脱 shell 提示符的一部分根本没有意义...在这里可能有些不对劲,我想。这可能是一个 X-Y 问题吗?当然,这并不影响实际的问题 - 但可能会发现 OP 的“真正”的潜在问题,比如“如何仅针对特定存储库禁用 git 提示符?” - Volker Siegel
3个回答

26

只需移除(或重命名).git 子目录即可。该子目录是整个仓库的核心,这样做不会删除您的文件,但它将删除它们的历史记录。

此外,可能存在一些类似于 .gitignore.gitattributes 的文件已经不再需要了。

在移除/重命名 .git 之前,请确保所有文件都存在于工作区中。


3

您的代码库位于.git目录中,您可以轻松删除它。但如果只是命令行提示让您感到困扰,那么只需查找环境变量中PROMPT获取新值的位置并将其修改为其他值即可。


简单地移除提示是我的第一反应。我找到了设置字符串的位置,即~/.oh-my-zsh/lib/git.zsh,但是我不确定如何修改它。将来我可能会重新访问这个问题。 - Linell

3
在一个仓库中删除目录.git会移除历史记录,但是保留当前检出的文件——它不会保留所有文件

警告:这可能不是你所需要的!

历史记录包含了文件的早期状态、曾经被删除的文件以及其他分支,其中包含与当前检出的类似或完全不同的最新文件。

这意味着,在一般情况下,删除.git会影响到在存储库树中之前的文件,以及当前版本中存在于其他分支的文件。 所有这些文件也都将被删除!

建议只删除.git的回答仅适用于最简单的情况,
其中仅自创建存储库以来将文件添加到主分支,并且正在检出主分支。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接