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

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

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

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

rm -rf .git

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

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

【问题讨论】:

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

标签: git git-track


【解决方案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 文件夹中移除所有文件。

  1. 打开命令提示符

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

    2. 输入cmd并回车

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

  1. 运行这些命令

    1. del /F /S /Q /A .git

    2. rmdir .git

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

没有命令提示符

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

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

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

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

  3. 关闭选项菜单,您应该会看到所有隐藏的文件夹和文件,包括 .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*

              【讨论】:

              • 这已经在其他一些答案中提到过。 在回答已有答案的旧问题时,请确保提供新颖的解决方案或比现有答案更好的解释。
              猜你喜欢
              • 2015-08-04
              • 1970-01-01
              • 1970-01-01
              • 2018-08-03
              • 2014-08-09
              • 2016-02-07
              • 2015-10-03
              • 2021-12-10
              相关资源
              最近更新 更多