鉴于我的仓库中有以下冗长的文件夹结构,并想象所有这些文件夹都有子文件夹和子子文件夹,子子文件夹等等(仅显示前两个级别) ):
jim_folder >
name.txt
sub_jim_folder >
sub_name.txt
sub_sub_jim_folder >
sub_sub_name.txt
.....
tim_folder >
name.txt
sub_tim_folder >
sub_name.txt
sub_sub_tim_folder >
sub_sub_name.txt
......
amy_folder >
name.txt
sub_amy_folder >
sub_name.txt
sub_sub_amy_folder >
sub_sub_name.txt
.......
jerry_folder >
name.txt
........
基本上,我只想
jim_folder
及其所有子目录,其中的文件
子目录和所有子子目录以及所有文件
在其中,依此类推。amy_folder
,jerry_folder
,tim_folder
以及其中的每个文件或目录。 问题:
根据我的理解,在这种情况下有两种方法可以写.gitignore
:
jim_folder
及其所有子目录及其所有子子目录之外的所有内容,依此类推。 amy_folder
,jerry_folder
和tim_folder
。 我希望看到两种方法的解决方案(代码)
因为从逻辑上讲,应采用第一种方法,但如果jim_folder
包含许多子,子,子子,......,似乎我会写很多行。 .directories。
另一方面,我不知道如何在第二种方法中编写.gitignore文件,是否还需要在.gitignore中指定我想忽略的那些文件夹的整个结构?因为这意味着很多很多线路。
我相信这个问题有最好的做法。我想听听他们的消息。
答案 0 :(得分:2)
对于#1:
*
!.gitignore
!jim_folder
!jim_folder/**/*
对于#2:
amy_folder
tim_folder
jerry_folder
jim_folder/**/*
匹配jim_folder的任何子目录中的任何文件。你还需要为jim_folder做一个例外。这让我很吃惊,但这很有意义,因为jim_folder本身并不是jim_folder或其子目录中的东西,所以它不匹配jim_folder/**/*
。
编辑:depends on git version - 让我知道这是否适合您。
答案 1 :(得分:1)
您可以使用此.gitignore
模式执行此操作:
/*
!/.gitignore
!/jerry_folder