2012-06-26 31 views
1

当我运行git status时,我有不相关的文件,我不想看。使用.gitignore忽略git状态内的文件

例如:

中号的.gitignore
中号AS3-远程/的.project
中号透视/ SWC /的.project
中号透视/瑞士法郎/的.project
中号调度-translator-框架/ SRC /主/爪哇/ Importer.java
d调度-翻译的框架/ SRC /主/爪哇/ TranslatorTest.java
中号UI-mecogis /瑞士法郎/的.project

我已经尝试编辑我的.gitignore使包括.projects 我的.gitignore的样子:

的.classpath
的.project
.settings
* .LOG
nbactions.xml
目标
.DS_Store

我只想跟踪并观察预定翻译器框架内的更改,而我只想关注该特定文件夹中的.java文件。我不想让其他任何东西在跟踪或未跟踪的情况下显示出来,这些都是不相关的。我将如何做到这一点?

回答

2

我想这就是你需要:

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

和:

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

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

  1. 忽略e verything。
  2. Unignore scheduled-translator-framework/目录。
  3. 屏蔽scheduled-translator-framework/所有文件(我们将在稍后处理此目录中的文件)。

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

  1. 忽略这个子目录的一切。
  2. 显示scheduled-translator-framework/内的所有子目录(为下一步工作所必需)。
  3. 屏蔽所有*java文件在当前目录(即scheduled-translator-framework/)和所有子目录。

如果,偶然,您已经添加到索引或COMMITED某些文件,您不想跟踪,你可以unstage从存储库中删除:

git rm --cached -r file/or/directory/path 
1

从gitignore(5)手册页:

的gitignore文件的目的是为了确保不混帐跟踪某些文件仍然未被跟踪。

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

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

1

git status显示,因为他们已经追踪的.project文件夹。
你需要从你的资料库中删除:git rm --cached a/b/.project

要忽略,除了那些在一个特定的文件夹,您所有* .java文件。gitignore应该是这样的:

*.java 
!a/specific/folder/*.java 
+0

感谢详细的响应,但是当我这样做时,rm --cached将它从没有分级到未跟踪文件列表的更改中移除。如何摆脱未跟踪的文件列表显示何时执行git状态? –