从Git中删除一个文件夹

8
我有一个本地文件夹,它在git下,当我在不同的IDE和其他环境中使用git时,它被添加到了git中,但是我不想让它受git控制,我只想让它成为一个普通的文件夹,直到我决定将其添加到某个仓库为止。
我对git很陌生,所以不太熟悉命令,但如果我运行git status命令,就会得到以下结果:
git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#   new file:   .idea/vcs.xml
#   new file:   .idea/workspace.xml
#
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   .idea/workspace.xml
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   .idea/.name
#   .idea/.rakeTasks
#   .idea/HisFirstService.iml
#   .idea/dictionaries/
#   .idea/encodings.xml
#   .idea/misc.xml
#   .idea/modules.xml
#   .idea/scopes/
#   Gemfile
#   Gemfile.lock
#   README
#   Rakefile
#   client.rb
#   config/
#   db/
#   models/
#   service.rb
#   spec/

你想要删除哪个文件夹?.idea - Carl Norum
您可以创建一个名为.gitignore的文件,正如其名称所示... 在Git手册上阅读更多信息;] - librin.so.1
@CarlNorum 我现在在 HisFirstService 文件夹里,这是该文件夹内的所有文件。我想将 HisFirstSerivceFolder 从 git 控制中移除。 - Bohn
5个回答

12

看起来你想删除被 IDE 自动创建的 git 仓库。(请注意,git 只跟踪 文件,而不是目录。)

如果是这种情况,只需删除 .git 目录,然后你就会得到一个根本没有被 git 跟踪的目录。


7
使用git rm --cached命令从仓库中删除此目录(它应该保留在您的工作目录中),然后将其名称放入.gitignore文件中。最后,提交.gitignore和目录删除。

1
完整的命令为 git rm --cached -r <directoryNameOrPath>。-r 会运行 "递归" 并确保目录中的文件也从 git 存储库中删除。请确保从所涉及的 git 存储库内部运行该命令;例如,如果使用 BASH shell 并且 git 存储库位于 /folder/repository 中,则首先使用 cd /folder/repository 将位置移动到该文件夹。 - hbere

1
如果您正在使用终端并且有多个文件需要从git中删除,请执行以下操作:
git status | grep [d]eleted | awk '{print $3}' | xargs git rm --cache

1
请注意,git不存储目录,只存储文件。这意味着如果您已经从子目录提交了任何文件到git仓库中,则需要使用git rm <filename>将其删除。您还需要遵循git status给出的说明以从索引中删除文件。例如,git rm --cached <filename>将删除新文件,因此它们不会被提交。最后,您需要创建一个.gitignore文件,并在其中写入您不想在仓库中拥有的目录名称。这将使所有未来的git命令都忽略该目录。

0

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