即使在gitignore中将其排除之后,我也无法获取git来取消对子目录的取消

Joe*_*her 4 git

在我的.gitignore文件中,我忽略了这样的目录:

var

然后我意识到我想跟踪var/package它的所有内容.所以,我已经将这个排除添加到gitignore.我已经尝试了很多组合,但已经确定了以下似乎是合乎逻辑的,特别是来自其他讨论.

!var/
var/*
!var/package
!var/package/
!var/package/*
Run Code Online (Sandbox Code Playgroud)

但是每当写入新文件时var/package,都不会检测到它们.他们通过常规程序,例如,如果我专门--force他们补充说,但不git add .

是否有一个命令,我需要发出重置.gitignore现在终于拿起新的gitignore指令?我错过了什么吗?

Set*_*son 8

从.gitignore中删除有关var的任何内容.使用以下内容创建var/.gitignore:

/*
!/package
Run Code Online (Sandbox Code Playgroud)

你显然需要,git add -f var/.gitignore但之后一切都应该好.

另一种选择是,在你的顶级.gitignore中,说:

/var/*
!/var/package
Run Code Online (Sandbox Code Playgroud)

如果任一不工作,请键入find . -name .gitignore | xargs egrep .cat .git/info/exclude让我们知道它返回.

  • @toolchainX:Leading /表示路径以当前目录为根."/ var"表示忽略当前名为"var"的当前文件/目录."var"表示忽略此目录或任何子目录中名为"var"的任何文件/目录.并且要完成"var /"意味着忽略此目录或任何子目录中名为"var"的任何目录."/ var /"做了你可能会怀疑的事情. (5认同)