我对在git中忽略目录内容的正确方法感到困惑.
假设我有以下目录结构:
my_project
|--www
|--1.txt
|--2.txt
|--.gitignore
Run Code Online (Sandbox Code Playgroud)
放这个有什么区别:
www
Run Code Online (Sandbox Code Playgroud)
还有这个?
www/*
Run Code Online (Sandbox Code Playgroud)
我问这个问题的原因是:在git中,如果目录为空,git将不会在存储库中包含这样的空目录.所以我正在尝试在目录下添加一个额外的.gitkeep文件的解决方案,这样它就不会是空的.当我尝试该解决方案时,如果在.gitignore文件中,我写如下:
www
!*.gitkeep
Run Code Online (Sandbox Code Playgroud)
它不起作用(我的意图是忽略www下的所有内容但保留目录).但如果我尝试以下方法:
www/*
!*.gitkeep
Run Code Online (Sandbox Code Playgroud)
然后它的作品!所以我认为这两种方法之间必然存在一些差异.
我只为文本文件创建了一个白名单.
*
!*.txt
Run Code Online (Sandbox Code Playgroud)
现在,我在子目录中有一个未跟踪的文本文件 - sub/dir/file.txt并且未显示(忽略它).但是,会显示根目录中的文本文件.
为什么会这样,我该如何解决?