我有一个包含不同类型文件的目录树。父目录下有300个子目录,每个子目录下可能还有其他子目录。
我只想跟踪所有子目录中的 *.cocci 文件。这是我的 .gitignore 文件:
*
!*.cocci
但是它不起作用,因为子目录中的文件没有被跟踪。 我如何告诉 git 我只想在所有子目录中跟踪 *.cocci 文件?
我有一个包含不同类型文件的目录树。父目录下有300个子目录,每个子目录下可能还有其他子目录。
我只想跟踪所有子目录中的 *.cocci 文件。这是我的 .gitignore 文件:
*
!*.cocci
但是它不起作用,因为子目录中的文件没有被跟踪。 我如何告诉 git 我只想在所有子目录中跟踪 *.cocci 文件?
阅读这个问题。
您想要:
# Blacklist everything
*
# Whitelist all directories
!*/
# Whitelist the file you're interested in.
!*.cocci
注意,这样只会跟踪 *.cocci 文件。你的不起作用是因为你忽略了所有文件(这是第一行),这将忽略所有子目录。
directory/*
!directory/*/
!directory/*.cocci
似乎不包括目录/子树下的*.cocci
文件。
为了在目录的所有子目录中找到所有*.cocci
文件,请输入以下内容:
directory/**
!directory/*/
!directory/**/*.cocci
./directory/*
之外的所有内容,我应该放置 *; !directory/; !directory/*
。 - Student在 .gitignore 中使用 !dir
是无法取消忽略目录的,但是你仍然可以手动添加目录:
git add dir -f
*
!*.txt
当你执行 git add .
时,新的 *.txt
文件将被添加。新目录不会自动添加,必须通过手动执行 git add dir -f
来添加。
.gitignore
文件中设置了!dir/.exists
文件,但一个目录仍然被忽略。请注意,上面答案中的dir
应替换为您想要包含在git checkin中的目录名称。 - kenjikato你试过使用!*/*.cocci
而不是你的!*.cocci
吗?
git add
命令来添加文件?仅仅设置.gitignore
文件并不能自动跟踪文件... - twalberg