返回

文章详情

.gitignore 不是 Git 中忽略文件的唯一方式

Hacker News2026年6月18日 10:29

我使用 Git 已经很长时间了,最近意识到你可以在三个不同的级别忽略文件,而不仅仅是使用 .gitignore。可以用于忽略文件的三个文件是:.gitignore、.git/info/exclude 和 ~/.config/git/ignore。 .gitignore 是你通常写入要忽略文件的文件。它与其他代码一起被提交到 Git 中。添加到此文件的所有文件在运行 git 命令时将不被考虑。 .git/info/exclude 排除文件位于每个 Git 仓库的 .git 目录中,但对此文件的更改不会被提交到 Git。它通常在新的 Git 仓库中有几行注释。此文件对于按仓库基础忽略某些内容非常有用。例如,你可能在一个仓库中有一个个人 notes.txt 文件,你不想将其提交到 git,但又不想将其添加到 .gitignore,因为它是独特于你的工作流程。在这种情况下,你可以将 notes.txt 添加到 .git/info/exclude。 ~/.config/git/ignore 忽略文件位于你机器的主目录中的 ~/.config/git/ignore。添加到此文件的任何文件名在机器级别上都是全局忽略的。此文件不被提交到 Git,并且与任何特定的仓库没有关联。它是一个很好的地方,可以在你电脑上的每个 git 仓库中添加想要忽略的文件。例如,如果你使用的是 macOS,将 .DS_Store 添加到这里就非常理想。你可以自定义全局忽略文件为不同的文件。例如,如果你希望你的全局 git 忽略文件为 .gitignore_global,可以运行以下命令: Shell git config --global core.excludesFile ~/.gitignore_global 如果你想恢复到默认设置,可以运行: Shell git config --global --unset core.excludesFile 检查哪个文件正在忽略特定文件 当将文件名添加到这些文件中的任何一个时,可以使用此命令检查文件名是如何被忽略的。例如,如果你想检查 .DS_Store 是如何被忽略的,可以在任何 Git 仓库中运行 git check-ignore -v .DS_Store。以下是当仓库的 .gitignore 忽略 .DS_Store 时的输出: Console $ git check-ignore -v .DS_Store .gitignore:1:.DS_Store .DS_Store 以下是当仓库的 .git/info/exclude 忽略 .DS_Store 时的输出: Console $ git check-ignore -v .DS_Store .git/info/exclude:7:.DS_Store .DS_Store 以下是当全局 ~/.config/git/ignore 文件忽略 .DS_Store 时的输出: Console $ git check-ignore -v .DS_Store /Users/nelson/.config/git/ignore:2:.DS_Store .DS_Store 以下是当自定义全局忽略文件 .gitignore_global 忽略 .DS_Store 时的输出: Console $ git check-ignore -v .DS_Store /Users/nelson/.gitignore_global:1:.DS_Store .DS_Store 如果没有任何内容在忽略某个文件,git check-ignore -v 命令将不会输出任何内容。

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡