配置git只跟踪一个文件扩展名

Pet*_*nna 22 git file-extension gitignore subdirectory

我有一个目录树,有许多不同的文件.父目录上有300个目录.每个目录可以有其他子目录.

我只想在所有子目录上跟踪*.cocci.这是我的.gitignore:

*
!*.cocci
Run Code Online (Sandbox Code Playgroud)

但它不起作用,因为不跟踪子目录上的文件.我怎么能告诉git我只想在所有子目录上跟踪*.cocci?

sim*_*ont 36

阅读这个问题.

你要:

# Blacklist everything
*
# Whitelist all directories
!*/
# Whitelist the file you're interested in. 
!*.cocci 
Run Code Online (Sandbox Code Playgroud)

请注意,这将跟踪 *.cocci文件.你的工作不起作用,因为你忽略了所有(这是第一行),忽略了所有子目录.

  • 您可能还想将.gitignore列入白名单 (2认同)

小智 5

为了扩展@simon 答案,如果我们想*.cocci将给定目录及其子目录的文件列入白名单 ,我会错误地输入:

directory/*
!directory/*/
!directory/*.cocci 
Run Code Online (Sandbox Code Playgroud)

这似乎并没有被包括*.cocci在文件directory/subtree

为了找到所有*.cocci子目录中的所有文件,请directory输入以下内容:

directory/**
!directory/*/
!directory/**/*.cocci 
Run Code Online (Sandbox Code Playgroud)