Answers:
.gitkeep
没有记录,因为它不是Git的功能。
Git 无法添加一个完全空的目录。想要在Git中跟踪空目录的人已经创建了将被调用文件.gitkeep
放在这些目录中的约定。该文件可以被称为任何东西。Git对该名称没有特别的意义。
.gitignore
在空目录中添加文件以对其进行跟踪是一种相互竞争的约定,但是有些人认为这令人困惑,因为目标是保留空目录,而不是忽略它们。.gitignore
还用于列出查找未跟踪文件时Git应该忽略的文件。
.gitignore
包含两行的文件:*
并且!.gitignore
足够清楚地传达正在发生的事情。如果需要更多说明,请使用#
语法在文件顶部添加注释。
.keep
文件而不是.gitkeep
保留这些空文件夹稍微改变了此约定,因为git并不是唯一不跟踪空文件夹的源代码控制系统。此处有更多详细信息:github.com/rails/rails/issues/2800
.gitkeep
只是一个占位符。虚拟文件,因此Git不会忘记目录,因为Git仅跟踪文件。
如果您想要一个空目录并确保它对Git保持“干净”,请在.gitignore
其中创建一个包含以下行的目录:
# .gitignore sample
###################
# Ignore all files in this dir...
*
# ... except for this one.
!.gitignore
如果您只希望Git可以看到一种文件,这是一个示例,该示例说明如何过滤掉除.gitignore和所有.txt
文件以外的所有内容:
# .gitignore to keep just .txt files
###################################
# Filter everything...
*
# ... except the .gitignore...
!.gitignore
# ... and all text files.
!*.txt
(“#”表示注释。)
!
在前面.gitignore
?是为了逃避点吗?
!
否定以下部分,就像在编程中一样。
Since the git ignore file is already in the repo it is not necessary to not-ignore it - it is already tracked.
------如果不是,并且您没有进行强制添加,则可能会忘记它。在平凡的情况下,没问题,但是如果文件较大,您可能会感到沮丧。使用!.gitignore
可以防止您用脚射击。我更喜欢它,过去曾经烧死自己。
.gitignore
是一个文本文件,包含您目录中的文件列表,git会忽略该文件,也不会在存储库中添加/更新。
.gitkeep
由于Git会删除或不向存储库中添加空目录,因此.gitkeep有点像将其保留在存储库中的hack(我不认为它是Git的正式名称)。
只需执行一次touch /path/to/emptydirectory/.gitkeep
添加文件,Git现在就可以在存储库中维护此目录。
.gitignore
如果不想每次都指定每个文件夹的完整路径,则可以有任意多个。
.gitkeep
文件中提及空目录列表,但它不会跟踪空目录,仅会跟踪文件所在的.gitkeep
文件夹。为什么这样 ?
.gitignore
s将如何避免您每次都指定每个文件夹的完整路径?我想我缺少明显的东西。
README
文件放在否则为空的子目录中是否包含一个有关该子目录将要使用的信息的更好的解决方案,这不是更好的解决方案吗?拥有一个.gitkeep
实际上不是git一部分的文件似乎令人困惑。