全局与本地 .gitignore 冲突
global vs local .gitignore conflict
我设置了一个全局的。git像这样忽略
# global .gitconfig
[core]
quotepath = false
excludesfile = ~/.gitignore_global
其中 ~/.gitignore_global
是这样的:
# https://www.gitignore.io/api/pycharm
# User-specific stuff:
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/vcs.xml
.idea/**/jsLibraryMappings.xml
# .idea/**/dictionaries
# Sensitive or high-churn files:
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.xml
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
# Gradle:
.idea/**/gradle.xml
.idea/**/libraries
# Mongo Explorer plugin:
.idea/**/mongoSettings.xml
## File-based project format:
*.iws
## Plugin-specific files:
# IntelliJ
/out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
所以现在每当我使用任何 intellij IDE 开始一个新项目时,只会跟踪 .idea
文件夹中的一些文件,而其他文件则不会。太好了。
问题来自我在设置 .gitignore_global 之前开始的一个项目。事实上,在这个项目中,我设置了一个本地 .gitignore 以完全忽略 .idea/
文件夹。
# local .gitignore created before the global one
*.idea/
现在,对于那个旧项目,我想开始跟踪 .idea
文件夹中的相关文件,所以我注释了行 # *.idea/
.
问题开始了。
它不是仅跟踪 .gitignore_global
中所述的相关文件,而是将 .idea 文件夹中的所有文件标记为新文件(未暂存),忽略 .gitignore_global
(抱歉冗余)。
我怀疑(不确定)那时候,几年前我不小心将 .idea
文件夹添加到存储库,然后删除,然后忽略。
我该如何解决这个问题?我只想跟踪 .idea 中未按照 .gitignore_global
.
中的说明标记为忽略的相关文件
编辑:重要的部分是git让我将所有新文件添加到暂存区,即使是那些不应该的。
原来我有 2 个 .idea/
个目录。
一个是由 pycharm 在第一层创建的,.git
目录也存在于此,另一个隐藏在几个层次中,目标是我由 webstorm 创建的 webapp。
第一层是正确的 adding/ignoring 个文件,最深处的不是。
微不足道的原因是像这样的正则表达式 .idea/**/workspace.xml
在我的全局 gitignore 上只针对第一级目录。
为了使 .idea 目录在我的存储库中的任何位置都能正常工作,我必须将这些正则表达式更改为 **/.idea/**/workspace.xml
.
形式
我设置了一个全局的。git像这样忽略
# global .gitconfig
[core]
quotepath = false
excludesfile = ~/.gitignore_global
其中 ~/.gitignore_global
是这样的:
# https://www.gitignore.io/api/pycharm
# User-specific stuff:
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/vcs.xml
.idea/**/jsLibraryMappings.xml
# .idea/**/dictionaries
# Sensitive or high-churn files:
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.xml
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
# Gradle:
.idea/**/gradle.xml
.idea/**/libraries
# Mongo Explorer plugin:
.idea/**/mongoSettings.xml
## File-based project format:
*.iws
## Plugin-specific files:
# IntelliJ
/out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
所以现在每当我使用任何 intellij IDE 开始一个新项目时,只会跟踪 .idea
文件夹中的一些文件,而其他文件则不会。太好了。
问题来自我在设置 .gitignore_global 之前开始的一个项目。事实上,在这个项目中,我设置了一个本地 .gitignore 以完全忽略 .idea/
文件夹。
# local .gitignore created before the global one
*.idea/
现在,对于那个旧项目,我想开始跟踪 .idea
文件夹中的相关文件,所以我注释了行 # *.idea/
.
问题开始了。
它不是仅跟踪 .gitignore_global
中所述的相关文件,而是将 .idea 文件夹中的所有文件标记为新文件(未暂存),忽略 .gitignore_global
(抱歉冗余)。
我怀疑(不确定)那时候,几年前我不小心将 .idea
文件夹添加到存储库,然后删除,然后忽略。
我该如何解决这个问题?我只想跟踪 .idea 中未按照 .gitignore_global
.
编辑:重要的部分是git让我将所有新文件添加到暂存区,即使是那些不应该的。
原来我有 2 个 .idea/
个目录。
一个是由 pycharm 在第一层创建的,.git
目录也存在于此,另一个隐藏在几个层次中,目标是我由 webstorm 创建的 webapp。
第一层是正确的 adding/ignoring 个文件,最深处的不是。
微不足道的原因是像这样的正则表达式 .idea/**/workspace.xml
在我的全局 gitignore 上只针对第一级目录。
为了使 .idea 目录在我的存储库中的任何位置都能正常工作,我必须将这些正则表达式更改为 **/.idea/**/workspace.xml
.