.gitkeep
没有记录,因为它不是 Git 的功能。
吉特 cannot add a completely empty directory。想要在 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
和所有 .txt
文件之外的所有文件:
# .gitignore to keep just .txt files
# Filter everything...
*
# ... except the .gitignore...
!.gitignore
# ... and all text files.
!*.txt
.gitignore
前面需要 !
?那是为了逃避点吗?
!
否定以下部分,就像它通常在编程中所做的那样。
!.gitignore
放入 git 忽略文件中,要么添加文件然后编辑它,要么强制添加适当的内容(“*”忽略所有内容,或者简单地确保文件夹存在){1 }。
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
如何让您不必每次都指定每个文件夹的完整路径?我想我错过了一些明显的东西。
许多人更喜欢只使用 .keep
,因为该约定与 git 无关。
这不是对原始问题“.gitignore 和 .gitkeep 之间有什么区别?”的答案。但是在这里发布以帮助人们以简单的方式跟踪空目录。要跟踪空目录并了解 .gitkeep
不是 git 的正式部分,
https://i.stack.imgur.com/Smlxv.png
只需在其中添加一个空(没有内容).gitignore
文件。
因此,例如,如果您有 /project/content/posts
,有时 posts
目录可能为空,则创建没有内容的空文件 /project/content/posts/.gitignore
以跟踪该目录及其在 git 中的未来文件。
README
文件放在包含有关该子目录将用于什么的一些信息的其他空子目录中不是更好的解决方案吗?有一个名为.gitkeep
的文件实际上不是 git 的一部分似乎令人困惑。.gitignore
文件:*
和!.gitignore
足以清楚地传达正在发生的事情。如果需要详细说明,请使用#
语法在文件顶部添加注释。.keep
文件而不是.gitkeep
来保留这些空文件夹,因为 git 不是唯一不跟踪空文件夹的源代码控制系统。更多详细信息:github.com/rails/rails/issues/2800