。吉蒂诺尔不忽视。想法路径

为了让 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/
102482 次浏览

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

如果您有已经添加到存储库中的文件,那么它们的所有更改将像往常一样被跟踪,即使它们与。吉蒂诺尔规则。

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

git rm --cached -r .idea

.idea/添加到. gitignore 文件

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

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

对于那些得到 fatal: pathspec '.idea' did not match any files的人:

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

首先,执行一个 git status,它应该显示给定当前位置的到 .idea的路径。

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

若要在输入上述命令后解决错误 ”致命的: pathspec’. idea’与任何文件都不匹配,

  1. 检查你的想法文件夹及其文件的路径。
  2. 为此做 git status。它会像往常一样列出所有的文件。检查想法文件夹文件的路径。我的是在 ../.idea/workspace.xml。注意 ../.idea
  3. 在接受的答案 < code > git rm —— cached-r. ./. idea 中修改上面建议的命令
  4. 然后您将看到这个 rm '.idea/workspace.xml'和文件将被删除。

要删除 ”致命的: pathspec’. idea’与任何文件都不匹配,只需使用如果目录仍然返回为未跟踪:

git clean -f -d .idea

如果在按照其他答案中的步骤执行之后,您仍然发现在 bash 或 Powershell 中运行的 git 实例只是继续跟踪。想法/文件夹,然后尝试这一点!

我发现 Jet Brains IDE 也有自己的。并运行它们自己的 git 实例,该实例将覆盖您的。吉蒂诺设置!

我所做的修正是导航到/. idea/. gitignore,并将其内容更改为:

/**

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

下面的图片显示了如何在 Jetbrain IDE 中导航到. gitignore 文件。

Locating .gitignore

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

enter image description here

如果 git status 仍然显示. idea,请检查 ,即使. idea/* 已经添加到. gitignore 文件中

从运行命令下面的存储库中删除该文件

git rm --cached .idea/

现在更新你的 gitignore 文件忽略。想法文件夹运行以下命令

echo '.idea' >> .gitignore

添加. gitignore 文件

git add .gitignore


git commit -m "Removed .idea files"

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

对我有用的是,我把 .idea添加到两者中。吉蒂诺档案。(在最新的更新中,在 .idea文件夹中有一个单独的 .gitignore文件)

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

  1. 在.gitignore 文件中进行更改并保存。
  2. 打开作为管理员或终端的 CMD 并转到 Project 文件夹。
  3. 运行 git rm -r --cached .idea/
  4. 运行 git add .
  5. 运行 git commit -m "chore: Rider files ignored."

有关详细信息,请参阅 如何修理吉蒂诺尔

在我的情况下,我的. gitignore 有这样的台词:

### Rider ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839


# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf


# Generated files
.idea/**/contentModel.xml
.idea/.idea.TemplateProject/.idea/indexLayout.xml


# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml


# Gradle
.idea/**/gradle.xml
.idea/**/libraries


# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn.  Uncomment if using
# auto-import.
# .idea/artifacts
# .idea/compiler.xml
# .idea/jarRepositories.xml
# .idea/modules.xml
# .idea/*.iml
# .idea/modules
# *.iml
# *.ipr


# CMake
cmake-build-*/


# Mongo Explorer plugin
.idea/**/mongoSettings.xml


# File-based project format
*.iws


# IntelliJ
out/


# mpeltonen/sbt-idea plugin
.idea_modules/


# JIRA plugin
atlassian-ide-plugin.xml


# Cursive Clojure plugin
.idea/replstate.xml


# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties


# Editor-based Rest Client
.idea/httpRequests


# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser

也许我的情况稍有不同,因为我的 .idea目录已经暂存以便提交,但我只是按照 git 状态输出中给出的建议运行 git restore --staged <file>...:

C:\Devstuff\proj01>git status
On branch master
Your branch is up to date with 'origin/master'.


Changes to be committed:
(use "git restore --staged <file>..." to unstage) <<< THIS HERE
new file:   .idea/.gitignore
new file:   .idea/proj01.iml
new file:   .idea/modules.xml
new file:   .idea/vcs.xml


Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified:   .idea/proj01.iml
modified:   file/that/was/changed.js

所以我跑了:

C:\Devstuff\proj01>git restore --staged .idea/

在那之后,它被分类:

C:\Devstuff\proj01>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 restore <file>..." to discard changes in working directory)
modified:   webapp/controller/Master.controller.js

好吧,在上面提到的所有好的解决方案中,没有一个对我有用,因为我犯了一个错误。在项目创建过程中,我忽略了这些设置!

  1. 有2个 .gitignore文件我没有注意到和更新项目级别的文件。
  1. 因为,我已经在项目创建期间提交了那些文件/路径,所以在每次构建命令之后,它们总是有一个来自远程的增量; 尽管是在 .gitignore中添加的。

解决方案

  • 我专注于问题2,并首先从远程删除了那些文件夹/目录。
  • 喝了点酒。
  • 维奥拉,不要再追踪被忽视的文件了!