.gitignore不会忽视.idea路径

时间:2015-09-03 20:01:58

标签: git gitignore

为了让git忽略.idea/路径,我需要做些什么?

ctote@ubuntu:~/dev/1$ git status
On branch master
Your branch is up-to-date with 'origin/master'.

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/.name
    modified:   .idea/misc.xml
    modified:   .idea/modules.xml
    modified:   .idea/vcs.xml
    modified:   .idea/workspace.xml
    modified:   src/Receiver.java
    modified:   test/1/agent/WindowsQueryHandlerTest.java

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    lib/
    mp1.iml

no changes added to commit (use "git add" and/or "git commit -a")
ctote@ubuntu:~/dev/1$ cat .gitignore
*.class

# Package Files #
*.war
*.ear

# IDEA config files
.idea/

9 个答案:

答案 0 :(得分:179)

.gitignore只会忽略新添加的(未跟踪的)文件。

如果您已将文件添加到存储库,则会像往常一样跟踪所有更改,即使它们与.gitignore规则匹配。

要从存储库中删除该文件夹(不将其从磁盘中删除),请执行以下操作:

git rm --cached -r .idea

答案 1 :(得分:21)

.idea/添加到.gitignore文件

在终端中运行此命令以完成任务:)

git rm -rf .idea
git commit -m "delete .idea"
git push

答案 2 :(得分:6)

对于那些使用w0lf的答案获得fatal: pathspec '.idea' did not match any files的人:

您只需要包含.idea文件夹的完整路径。

首先,做一个git status,它应该显示.idea给出你目前所在位置的路径。

然后,在建议的命令w0lf中包含路径:git rm --cached -r example/path/to/.idea

答案 3 :(得分:6)

要删除“致命:pathspec'.idea'与任何文件都不匹配” ,请仅在目录仍返回未跟踪状态时使用:

git clean -f -d .idea

答案 4 :(得分:1)

如果按照其他答案的步骤操作后,您仍然发现在bash或powershell中运行的git实例只是继续跟踪.idea /文件夹,请尝试此操作!

我发现Jet Brains IDE拥有自己的.gitignore,并运行自己的git实例,它将覆盖您的.gitignore设置!

我要解决此问题的方法是导航到/.idea/.gitignore,并将其内容更改为:

/**

以便忽略文件夹中的所有内容。

下图显示了如何从Jetbrains IDE中导航到.gitignore文件。

Locating .gitignore

答案 5 :(得分:0)

要解决错误“致命:pathspec'.idea'与任何文件都不匹配”

  1. 检查想法文件夹及其文件的路径。
  2. 为此git status。它将照常列出所有文件。检查想法文件夹文件的路径。我的去过../.idea/workspace.xml。请注意../.idea
  3. 在接受的git rm --cached -r ../.idea 答案中修改上面建议的命令
  4. 然后您将看到此rm '.idea/workspace.xml',文件将被删除。

答案 6 :(得分:0)

为忽略.idea文件夹和iml文件类型,我做了以下操作:

enter image description here

答案 7 :(得分:0)

check this 如果 git status 仍然显示 .idea 即使 .idea/* 已经添加到您的 .gitignore 文件中

答案 8 :(得分:0)

在这里尝试了所有上述解决方案,但没有一个奏效。

对我有用的是我将 .idea 添加到两个 .gitignore 文件中。 (截至最新更新,.gitignore 文件夹中有一个单独的 .idea 文件)

然后我只是删除了提交消息中显示的任何文件并撤消了删除。这似乎从 git 缓存中清除了它。