如何从从 git 克隆的项目中删除版本跟踪?

Posted

技术标签:

【中文标题】如何从从 git 克隆的项目中删除版本跟踪?【英文标题】:How do I remove version tracking from a project cloned from git? 【发布时间】:2011-06-12 20:29:43 【问题描述】:

我想从项目目录中删除所有版本跟踪。

这样做的正确方法是什么?

我可以执行一个shell命令吗,例如:

rm -rf .git

从我的项目目录中,还是有办法以 Git 命令的形式执行此操作?

我使用这个项目来学习 Git,并意识到我在项目早期犯了一些错误,涉及移动、重命名和删除文件。我想删除所有 Git 跟踪并从 git init 重新开始。

【问题讨论】:

考虑git-archive。 根据错误的严重程度,您可能实际上想要对整个事情进行交互式变基,并在早期将大量提交压缩在一起,但要保存最近的良好历史记录。 Windows 用户:rd /s /q .git 【参考方案1】:

Git 用于信息的所有数据都存储在.git/ 中,因此删除它应该可以正常工作。当然,请确保您的工作副本处于您想要的确切状态,因为其他所有内容都将丢失。 .git 文件夹已隐藏,因此请确保打开“显示隐藏的文件、文件夹和磁盘”选项。

从那里,您可以运行 git init 来创建一个新的存储库。

【讨论】:

我确定我的子文件夹没有自己的隐藏 .git 目录,但是当我将这些文件夹推送到 github 时,我仍然会看到灰色的图标...还有什么我可以尝试的吗? 还有.gitconfig,所以你也应该删除它。 考虑 'code'git rm -r --cached your_folder/ 我的目标是将一个被跟踪的 git 文件夹变成另一个被跟踪的 git 文件夹的子文件夹。在我删除子文件夹的缓存之前,新的父级不会识别新的子级。 我希望可以像删除单个目录一样轻松删除所有其他内容。通常,您最终会从“已删除”部分中到处都是垃圾。【参考方案2】:

rm -rf .git 就足够了。这将吹走所有与 Git 相关的信息。

【讨论】:

如果你在windows中得到一些cannot unlinkPermission denied,你可以在任务管理器中杀死explorer进程,重新运行rm -rf .git然后重新打开资源管理器。它对我有用! 如果你在windows上有Git Bash,它也可以工作。 -rf 是什么意思? -r 表示“递归”,因此它将删除文件夹的全部内容,而不是因为文件夹不为空而出错,而 -f 则不会询问您是否真的很确定要删除东西。 @Lucky_girl 它将从您的结帐中删除所有 Git 状态。没有分支,没有历史,没有遥控器,什么都没有。所有这些东西都存储在.git 目录中。没有它,您实际上就没有 git 存储库了。【参考方案3】:

除了以下步骤之外,您可能还需要删除 .gitignore 文件。

如果您想删除项目中的任何 Git 痕迹,请考虑删除 .gitignore 文件。

** 如果您希望将 Git 重新合并到项目中,请考虑保留 .gitignore 文件。

某些框架可能会自动生成 .gitignore 文件,因此您可能想保留它。


基于 Linux、Mac 或 Unix 的操作系统

打开终端并导航到您的项目目录,即 - cd path_to_your_project

运行此命令:

rm -rf .git*

这将从您的项目中删除 Git 跟踪和元数据。如果您想保留元数据(例如 .gitignore 和 .gitkeep),您可以通过运行 rm -rf .git 仅删除跟踪。


窗口

使用命令提示符

rmdir or rd command 不会删除/移除您指定的目录中的任何隐藏文件或文件夹,因此您应该使用del 命令确保从.git 文件夹中移除所有文件。

    打开命令提示符

      要么点击Start,然后点击Run,要么同时点击键和r

      输入cmd并回车

    导航到项目目录,即-cd path_to_your_project

    运行这些命令

      del /F /S /Q /A .git

      rmdir .git

第一个命令删除所有文件和文件夹 .git 文件夹。第二个删除 .git 文件夹本身。

没有命令提示符

    打开文件资源管理器并导航到您的项目

    显示隐藏的文件和文件夹 - 请参阅 this article 以获得视觉指南

      在工具栏的视图菜单中,选择Options

      Advanced Settings部分,找到Files and Folders列表下的Hidden files and Folders并选择Show hidden files and folders

    关闭选项菜单,您应该会看到所有隐藏的文件夹和文件,包括 .git 文件夹。

    删除.git 文件夹 删除.gitignore 文件**(请参阅此答案顶部的注释)

【讨论】:

rmdir .git 不起作用,因为它下面有文件夹。 Dale,查看rmdir .git 下的行。它解释了rmdir .git 上面的命令用于删除.git 文件夹中的所有文件和文件夹,然后rmdir 命令删除文件夹本身。 你还不如rd /s /q .git,这会炸掉文件夹和里面的所有东西 对于 Windows,rmdir /S .git 完成了工作。谢谢你。【参考方案4】:

手动移动所有.git*不是一个聪明的选择,特别是当这些.git文件像我的情况一样隐藏在子文件夹中时:当我通过composer+git安装Skeleton Zend 2时,有很多在文件夹和子文件夹中创建的.git 文件数。

我在我的 GitHub shell 上尝试了rm -rf .git,但是 shell 无法识别 Remove-Item 的参数-rf

www.montanaflynn.me 引入以下shell command 以递归方式一次性删除所有.git 文件!真的很有效!

find . | grep "\.git/" | xargs rm -rf

【讨论】:

“我在我的 Github shell 上尝试了 'rm -rf .git',但 shell 无法识别 Remove-Item 的参数 '-rf'。” - 那是因为rmremove-item 的PowerShell 别名。 -rf 是 *nix shell rm 参数。对于 PowerShell,请改用 rm -recursive -force 危险! grep .git 将匹配 legit.gif 之类的文件或文件名中间带有“git”的文件!请删除或编辑答案!!! 更新以仅匹配 git 目录:find . | grep "\.git/" 仍然不够安全:这将捕获以.git 结尾的文件和目录。应该是grep "^\.git/";更好(更快)的是在 find 调用中按名称过滤:find . -name .git 请执行以下命令:find -name .git | xargs rm -rffind -name .gitignore | xargs rm -rf【参考方案5】:

我正在使用 Linux 环境。我以递归方式删除了所有 Git 文件和文件夹:

rm -rf .git

rm -rf .gitkeep

【讨论】:

【参考方案6】:

解决此问题的最简单方法是使用命令行。 键入此命令

rm -R .git/

rm -rf .git/

【讨论】:

【参考方案7】:

在 Windows 环境中,您只需键入以下内容即可从项目目录中删除 Git 跟踪。

rd .git /S/Q

【讨论】:

非常感谢。它奏效了【参考方案8】:

从根目录运行

find . | grep .git

查看匹配项并确认其中仅包含您要删除和调整以适应的那些文件。一旦满意,运行

find . | grep .git | xargs rm -rf

【讨论】:

【参考方案9】:

MacOS:要移除版本跟踪,您需要移除 Git 目录。为此,打开终端并输入您的项目文件。之后,您需要删除 Git 目录。

例子:

在终端短写(-r:递归,-f:强制,星号以.git目录开头):

rm -rf .git* 

结果是删除了 Git 目录和版本跟踪。

【讨论】:

【参考方案10】:

Windows 命令提示符 (cmd) 用户: 如果 "rm -r" 不可用,请使用以下选项。

您可以使用单行命令在源项目文件夹中递归删除“.git”。

FOR /F "tokens=*" %G IN ('DIR /B /AD /S *.git*') DO RMDIR /S /Q "%G"

【讨论】:

【参考方案11】:

您还可以使用一个命令删除所有与 git 相关的内容。 .gitignore 文件也会和这个一起被删除。

rm -rf .git*

【讨论】:

【参考方案12】:

适用于 ubuntu 和 linux 操作系统 使用这个命令:-

rm -rf .git*

【讨论】:

这已经在其他一些答案中提到过。 在回答已有答案的旧问题时,请确保提供新颖的解决方案或比现有答案更好的解释。

以上是关于如何从从 git 克隆的项目中删除版本跟踪?的主要内容,如果未能解决你的问题,请参考以下文章

Git 常用命令速查表

如何从 git 跟踪中删除文件? [复制]

Git管理项目实例说明-记录和跟踪项目

Git命令速查表

一文带你精通 Git(Git 安装与使用Git 命令精讲项目的推送与克隆)

Git - 如何从存储库(devops)中删除文件而不在本地克隆它