2012-02-23 78 views
1

我想用这种方式如何跟踪子目录中的某些文件,但不是所有其他文件与Git?

# Ignore everything 
* 
# But not these files... 
!.gitignore 
!/projectA/Makefile 
!/projectB/Makefile 

原来的Git无法跟踪的Makefile文件的projectAprojectB子目录跟踪文件。一种解决方案是在子目录中创建.gitignore文件,但我不喜欢它,因为我必须手动创建许多不同的.gitignore文件。任何想法如何做到这一点在git根目录的.gitignore

回答

3

你可以做这样的事情:

  1. 你需要跟踪,以便跟踪Makefile文件的文件夹
  2. 的文件夹,但我们不希望跟踪的东西文件夹
  3. 除了Makefile

把这些碎片拼凑起来在你的.gitignore让这些三线

!/了projectA/
/了projectA/*
!/了projectA/Makefile中

这是一个有点冗长,但我不知道更短的方法。

+0

它似乎不工作。当我运行'git status'时,它将'projectA /'报告为untracked而不是'projectA/Makefile' – RNA 2012-02-23 03:21:00

+0

您只能看到文件夹的原因是您需要跟踪文件夹才能跟踪该文件夹中的任何内容。做'git add projectA',你只会在该文件夹中放置Makefile。 – Andy 2012-02-23 03:24:12

+0

@ RNAer,改为使用'git status --ignored --untracked-files = all'。 – Alexander 2012-02-23 03:26:24

相关问题