git - .gitignore和.gitkeep之间的区别是什么?

.gitignore.gitkeep之间的区别是什么? 它们是不同名称的同一个东西,还是它们都起着不同的作用?我似乎无法找到更多关于.gitkeep的文档。

时间:

"gitkeep "没有文档,因为它不是Git的一个特性。

Git 无法添加完全空目录 ,希望跟踪Git中空目录的人就创建了将名为"gitkeep "的文件,把它放在这些目录中的惯例,该文件可以被称为任何东西;Git对此名称没有特殊意义。

有一个将".gitignore "文件添加到空目录的匹配约定,但是,有些人觉得这个目的是混乱的,.gitignore "也用于列出在查找未跟踪文件时,Git应该忽略的文件。

.gitkeep只是一个占位符,这样git就不会忘记这个目录,因为git只跟踪文件。


如果你想要一个空目录,并且确保它在git里保持清洁,请创建一个包含以下行的.gitignore :


# .gitignore sample 

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

如果你希望只有一种类型的文件可供git看到,这里有一个例子如何过滤掉所有内容,除了.gitignore和所有haskell.hs文件:


# .gitignore to keep just .hs files

#filter everything...
*
#... except the .gitignore...
!.gitignore
# ... and all haskell files.
!*.hs

('#表示注释。)

...