1

当我运行时git status,我有不想观看的不相关文件。

例如:

M .gitignore
M as3-remote/.project
M perspective/swc/.project
M perspective/swf/.project
M schedule-translator-framework/src/main/java/Importer.java
D schedule-translator-framework/src/main /java/TranslatorTest.java
M ui-mecogis/swf/.project

我已经尝试编辑我的 .gitignore 以便包含 .projects 我的 .gitignore 看起来像:

.classpath
.project
.settings
*.log
nbactions.xml
目标
.DS_Store

我只想跟踪和观察 schedule-translator-framework 中的变化,我只想关注特定文件夹中的 .java 文件。我不希望在跟踪或未跟踪无关的情况下显示其他任何内容。我该怎么做?

4

3 回答 3

2

我认为这就是你需要的:

# in .gitignore
*
!scheduled-translator-framework/
!scheduled-translator-framework/*

和:

# in scheduled-translator-framework/.gitignore 
/*
!*/
!*.java

.gitignore在项目的根目录中使用我们:

  1. 无视一切。
  2. 取消忽略scheduled-translator-framework/目录。
  3. 取消忽略里面的所有文件scheduled-translator-framework/(我们稍后会处理这个目录中的文件)。

.gitignore在目录中使用scheduled-translator-framework/我们:

  1. 忽略此子目录中的所有内容。
  2. 取消忽略里面的所有子目录scheduled-translator-framework/(下一步工作所必需的)。
  3. *java取消忽略当前目录(即scheduled-translator-framework/)和所有子目录中的所有文件。

如果您不小心添加到索引或提交了一些您不想跟踪的文件,您可以取消暂存并将它们从存储库中删除:

git rm --cached -r file/or/directory/path
于 2012-06-26T22:32:33.207 回答
1

git status显示.project文件夹,因为它们已被跟踪。
您需要从存储库中删除它们:git rm --cached a/b/.project

要忽略除特定文件夹中的所有 *.java 文件,您的.gitignore应如下所示:

*.java  
!a/specific/folder/*.java
于 2012-06-26T22:16:40.420 回答
1

从 gitignore(5) 手册页:

gitignore 文件的目的是确保某些未被 git 跟踪的文件保持未被跟踪。

要忽略已跟踪文件中未提交的更改,请使用git update-index --assume-unchanged.

要停止跟踪当前跟踪的文件,请使用git rm --cached.

于 2012-06-26T22:14:03.950 回答