.gitignore和.gitkeep有什么区别?

.gitignore.gitkeep什么.gitkeep ? 他们用不同的名字是同一个东西吗?或者他们都有不同的function? 我似乎无法在.gitkeep上find很多文档。

.gitkeep没有logging,因为它不是Git的一个特性。

Git 不能添加一个完全空的目录 。 想在Git中跟踪空目录的人已经创build了将.gitkeep文件放在这些目录中的惯例。 该文件可以被称为任何东西; Git对这个名字没有特别的意义。

在空目录中添加.gitignore文件是为了跟踪它们,但有些人认为这样做很混乱,因为目标是保留空目录,而不是忽略它们。 .gitignore也用于列出Git在查找未跟踪文件时应忽略的文件。

.gitkeep只是一个占位符。 一个虚拟文件,所以git不会忘记目录,因为git只跟踪文件。


如果你想要一个空的目录,并确保它保持“干净”的git,创build一个.gitignore包含以下行内:

 # .gitignore sample ################### # ignore all files in this dir... * # ... except for this one. !.gitignore 

如果你希望只有一种types的文件可以被git看到,下面是一个例子,如何过滤所有的东西,除了.gitignore和所有.txt文件:

 # .gitignore to keep just .txt files ################################### # filter everything... * # ... except the .gitignore... !.gitignore # ... and all text files. !*.txt 

('#'表示注释。)

 .gitignore 

是一个文本文件,包含git将忽略或不在存储库中添加/更新的目录中的文件列表。

 .gitkeep 

由于git删除或不会将空目录添加到回购.gitkeep是一种破解(我不认为它正式命名为git的一部分),以保持回购空目录。

只需要touch /path/to/emptydirectory/.gitkeep来添加文件,git现在就可以维护这个目录了。