乐闻世界logo
搜索文章和话题

What are the differences between gitignore and gitkeep

7 个月前提问
3 个月前修改
浏览次数139

5个答案

1
2
3
4
5

文件.gitignore用于告诉 Git 应忽略哪些文件和文件夹。通常,这些文件是构建工件、临时文件或不属于存储库的其他类型的文件。Git 将忽略符合文件中模式的任何目录或文件.gitignore

例子:

shell
# Ignore .DS_Store files .DS_Store # Ignore build artifacts build/ # Ignore log files *.log

相反, .gitkeepGit 中使用文件来维护否则为空的目录。默认情况下,Git 不会跟踪空文件夹,因此.gitkeep如果您希望将文件保留在存储库中,则必须将文件添加到该目录。文件名比文件的实际内容更重要。

.gitkeep文件示例

shell
# This file is used to keep the directory empty in Git

总之。该.gitignore命令用于告诉 Git 要忽略哪些文件和文件夹。要维护一个否则为空的 Git 目录,请使用.gitkeep. 它们彼此不同并且具有不同的功能。

2024年6月29日 12:07 回复

.gitkeep没有记录,因为它不是 Git 的功能。

Git无法添加完全空的目录。想要在 Git 中跟踪空目录的人已经创建了将调用的文件放入.gitkeep这些目录中的约定。该文件可以被命名为任何名称;Git 没有赋予这个名称特殊的意义。

有一个相互竞争的约定,.gitignore即向空目录添加文件以跟踪它们,但有些人认为这令人困惑,因为目标是保留空目录,而不是忽略它们;.gitignore还用于列出在查找未跟踪的文件时应被 Git 忽略的文件。

2024年6月29日 12:07 回复

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


如果您想要一个空目录并确保它对于 Git 保持“干净”,请创建一个 .gitignore包含以下行的目录:

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

如果您希望只有一种类型的文件对 Git 可见,下面是如何过滤除所有文件之外的 .gitignore所有内容的示例 .txt

shell
# .gitignore to keep just .txt files # Filter everything... * # ... except the .gitignore... !.gitignore # ... and all text files. !*.txt
2024年6月29日 12:07 回复

.gitignore

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

shell
.gitkeep

由于 Git 删除或不向存储库添加空目录,因此 .gitkeep 是一种在存储库中保留空目录的 hack(我不认为它被正式命名为 Git 的一部分)。

只需执行 atouch /path/to/emptydirectory/.gitkeep添加文件,Git 现在就可以在存储库中维护此目录。

2024年6月29日 12:07 回复

许多人更喜欢使用,只是.keep因为该约定与 git 无关。

2024年6月29日 12:07 回复

你的答案