.gitignore 和 .gitkeep 之间有什么区别?它们是不同名称的同一个东西,还是它们都服务于不同的功能?我似乎无法在 .gitkeep 上找到太多文档 .
.gitignore
.gitkeep
.gitkeep 没有记录,因为它不是Git的功能 .
Git cannot add a completely empty directory . 想要在Git中跟踪空目录的人已经创建了将这些名为 .gitkeep 的文件放在这些目录中的约定 . 该文件可以被称为任何东西; Git对此名称没有特别的意义 .
有一个相互竞争的惯例是将 .gitignore 文件添加到空目录以跟踪它们,但有些人认为这令人困惑,因为目标是保留空目录,而不是忽略它们; .gitignore 还用于列出Git在查找未跟踪文件时应忽略的文件 .
.gitkeep 只是一个占位符 . 一个虚拟文件,所以git不会忘记该目录,因为git只跟踪文件 .
如果你想要一个空目录并确保它对于git保持'clean',请创建一个包含以下行的 .gitignore :
# .gitignore sample ################### # ignore all files in this dir... * # ... except for this one. !.gitignore
如果您希望git只能看到一种类型的文件,下面是一个如何过滤所有内容的示例,除了.gitignore和所有 .txt 文件:
.txt
# .gitignore to keep just .txt files ################################### # filter everything... * # ... except the .gitignore... !.gitignore # ... and all text files. !*.txt
('#'表示评论 . )
是一个文本文件,包含目录中的文件列表,git将忽略或不在存储库中添加/更新 .
由于git删除或不添加空目录到repo .gitkeep是一种hack(我不认为它被正式命名为git的一部分)来保留repo中的空目录 .
只需要 touch /path/to/emptydirectory/.gitkeep 添加文件,git现在就可以在存储库中维护这个目录了 .
touch /path/to/emptydirectory/.gitkeep
3 回答
.gitkeep
没有记录,因为它不是Git的功能 .Git cannot add a completely empty directory . 想要在Git中跟踪空目录的人已经创建了将这些名为
.gitkeep
的文件放在这些目录中的约定 . 该文件可以被称为任何东西; Git对此名称没有特别的意义 .有一个相互竞争的惯例是将
.gitignore
文件添加到空目录以跟踪它们,但有些人认为这令人困惑,因为目标是保留空目录,而不是忽略它们;.gitignore
还用于列出Git在查找未跟踪文件时应忽略的文件 ..gitkeep
只是一个占位符 . 一个虚拟文件,所以git不会忘记该目录,因为git只跟踪文件 .如果你想要一个空目录并确保它对于git保持'clean',请创建一个包含以下行的
.gitignore
:如果您希望git只能看到一种类型的文件,下面是一个如何过滤所有内容的示例,除了.gitignore和所有
.txt
文件:('#'表示评论 . )
是一个文本文件,包含目录中的文件列表,git将忽略或不在存储库中添加/更新 .
由于git删除或不添加空目录到repo .gitkeep是一种hack(我不认为它被正式命名为git的一部分)来保留repo中的空目录 .
只需要
touch /path/to/emptydirectory/.gitkeep
添加文件,git现在就可以在存储库中维护这个目录了 .