假设有这样的目录结构:
├── dir1
│ ├── subdir_1 # do not want this
│ │ ├── file1.txt # and this
│ │ └── file2.txt # and this
│ ├── subdir_2 # keep me in gitignore
│ └── subdir_3 # keep me as well
└── dir2
└── subdir4
├── file3.txt
└── file4.txt
我希望gitignore
dir1
目录中的所有内容,但不想包含subdir_1
。
这意味着我想跟踪subdir_1
而不是subdir_2 or subdir_3
怎么做?
我已经尝试了
/dir1/
!/dir/subdir_1
事实上,我的.gitignore
文件更长,而且我在谷歌上搜索该问题的解决方案。他们告诉我先用*
忽略所有内容然后否定它。但我更喜欢更简单的解决方案,而不是重构现有的.gitignore
。
答案 0 :(得分:1)
要使subdir_1 中的文件不被忽略,请尝试以下操作:
dir1/*
!dir1/subdir_1*
!dir1/subdir_1/*
编辑:根据您的具体结构进行测试:)
$ git status
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: .gitignore
new file: dir1/subdir_1/good_file1.txt
new file: dir1/subdir_1/good_file2.txt
new file: dir2/subdir4/file3.txt
new file: dir2/subdir4/file4.txt