如何忽略除一个文件之外的目录中的所有内容

时间:2016-09-12 12:45:45

标签: git

回购结构:

.gitignore
file1
file2
dir/
    file3
    <stuff>

我想忽略dir中除文件3之外的所有内容。这是我在.gitignore文件中的内容:

dir/*
!dir/file3

但这似乎不起作用。 git仍尝试对dir中的所有内容编制索引。我该如何解决这个问题?

更新 - 删除旧的.gitignore文件并创建新文件后修复。新的使用> .gitignore制作。

3 个答案:

答案 0 :(得分:4)

正确的方法是:

!dir
dir/*
!dir/file3

请注意,还有其他解决方案,例如在.gitignore中创建本地dir/文件,该文件优先于前一个文件。

奇怪的是,我也尝试了你的解决方案,

dir/*
!dir/file3

似乎适合我。如果有人可以对此发表评论,我们将不胜感激。

答案 1 :(得分:1)

您可以先gitignore整个目录

dir/*

然后您可以{gtt

跟踪force add要跟踪的特定文件
git add dir/file3 -f

答案 2 :(得分:1)

这对我有用:

!/dir/
/dir/*
!/dir/file3