【问题标题】:How to remove untracked administrator files from git?如何从 git 中删除未跟踪的管理员文件?
【发布时间】:2021-01-29 00:16:00
【问题描述】:

我最近一直在学习 git,但是遇到了一个问题。不幸的是,我无意中在我的主文件夹 (C:\Users\exces) 中初始化了一个存储库。从那时起,每当我执行git status 时,大量的红色文件夹总是显示为“未跟踪”。我尝试使用git cleangit add -u . 甚至git reset --hard HEAD 命令删除那些未跟踪的文件夹,但可以预见的是,git 无法访问这些文件夹,并且总是返回warning: could not open directory 'FolderName/': Permission denied 的完整列表。

有没有办法强制删除这些不相关的文件夹,重置整个东西,或者告诉 git 我不再想要我的主文件夹中的 repo?谢谢。

【问题讨论】:

  • 我想你在那个存储库中有一些东西被跟踪;你能描述一下被跟踪的目录吗? (或者明确地说没有任何东西被跟踪......)
  • 也许this post 会有用。
  • @LeGEC 嗨,唯一跟踪的项目是我创建的空存储库。因为我在我的主文件夹中创建了它,所以 git 注意到了一堆其他东西(文档、桌面、音乐等)并将它们标记为未跟踪。
  • 说这个空存储库位于~/projects/myrepo,这个目录中有.git/ 目录吗? (ls ~/projects/myrepo/.git)

标签: git


【解决方案1】:

如果您从未在该 repo 中提交过:

“告诉 git 你不希望你的主文件夹中的 repo”很简单:删除位于主目录根目录下的隐藏 .git/ 目录。

警告:如果您提交了某些内容,此操作具有破坏性并且会丢弃跟踪的数据(它不会从磁盘中删除文件,但您会丢失您之前拥有的 git 历史记录)。

然后您可以在您要跟踪的实际目录中运行git init

【讨论】:

    【解决方案2】:

    当您使用git init 创建新存储库时,Git 会在您所在的文件夹中创建一个隐藏的.git/ 目录。此.git/ 目录的存在意味着包含文件夹被Git 识别为存储库。 Git 不会更改文件夹的任何其他内容;所有相关信息都存储在.git/中。

    在您的情况下,如果您的主文件夹中有 .git/ 目录,Git 会认为整个主文件夹是一个 repo,并跟踪您的主文件夹中所有文件和子文件夹的更改 - 这不是您的想。你很可能想删除 .git/ 目录,之后 Git 将不再认为你的主文件夹是一个 repo,它会停止跟踪你的主文件夹的所有内容。

    .git/ 目录还包含有关您的存储库历史记录的信息:您创建的分支、提交等。如果您已经提交了某些内容,则通过删除.git/ 目录,您将丢失提交的历史记录。如果您创建了另一个分支并在那里进行了一些提交,那么您也将丢失另一个分支上的提交。
    但是,如果您还没有提交任何内容,或者只在一个分支上工作,您的文件将不会被删除或更改 - 您可以安全地删除 .git/ 目录。

    当你想创建一个新的存储库时,你应该首先创建一个新文件夹,然后运行 ​​git init inside 该新文件夹 - 这将在文件夹内创建 .git/ 目录,然后Git 会知道该文件夹包含您的存储库。将所有项目文件保存在文件夹中,Git 会跟踪它们。

    顺便说一句,如果你想告诉 Git 忽略(即不跟踪更改)你的 repo 中的某些特定文件 - 例如包含机密、构建的输出文件或您不想提交但出于某种原因保留在文件夹中的其他文件的文件 - 您可以创建一个 .gitignore 文件并在其中列出此类文件。还有other options for ignoring files

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-23
      • 2014-08-09
      • 2016-02-07
      • 2018-07-21
      • 2016-11-28
      • 2014-02-12
      • 2016-02-27
      • 2017-05-10
      相关资源
      最近更新 更多