我试图忽略命名目录中除一个指定文件外的所有文件,这个目录可能在任何深度上。所以,在像这样的结构中,我想跟踪任何出现在 build/.gitkeep 的文件,但忽略 build/ 目录及其所有子目录中的其他文件。需要跟踪的项目标记为++。需要忽略的项目标记为--。
|.gitignore ++
|Makefile ++
|--build/ ++
|--build/.gitkeep ++
|--build/ignore_any_file --
|--build/ignore_any/dir --
|--foo/ ++
|--foo/file_to_keep ++
|--foo/dir_to_keep/ ++
|--foo/dir_to_keep/stuff ++
|--foo/build/ ++
|--foo/build/.gitkeep ++
|--foo/build/ignore_any_file --
|--foo/build/ignore_any/dir --
|--foo/build/ignore_any/dir/subir --
|--bar ++
|--bar/file_to_keep ++
|--bar/dir_to_keep/ ++
|--bar/dir_to_keep/stuff ++
|--bar/build/ ++
|--bar/build/.gitkeep ++
|--bar/ignore_any_file --
|--bar/ignore_any/dir --
|--bar/ignore_any/dir/subir --
|--foobar/foo ++
|--foobar/foo/file_to_keep ++
|--foobar/foo/dir_to_keep/ ++
|--foobar/foo/dir_to_keep/stuff ++
|--foobar/foo/build/ ++
|--foobar/foo/build/.gitkeep ++
|--foobar/foo/build/ignore_any_file --
|--foobar/foo/build/ignore_any/dir --
|--foobar/foo/build/ignore_any/dir/subir --
我尝试了很多组合方式,但困扰我的是每个层级都有build/文件夹。我想避免在每个路径上都创建条目。同时,我也不想在每个build/实例中创建.gitignore文件。
$ git --version
git version 2.20.1
.gitkeep
,也不会检测到任何较低级别的build
文件夹。你使用的是哪个版本的 Git?在哪个操作系统上? - VonC.gitkeeps
在主要的build/
文件夹中,而不是任何build/
子文件夹中的.gitkeep
。 - VonCbuild
下不会有一个build
实例,但这并不重要。我仍然看到path/build/file
和path/build/dir/
未被跟踪。它确实忽略了path/build/dir/anything
。顺便说一句,.gitkeep
的整个目的只是为了保持模板中否则为空的build/
和path/build
。 - nelsonov