BOM

Git 中存储文件的推荐方法是什么?

虽然 Git 可以存储和处理任何类型的任何文件,但有些设置比其他设置效果更好。一般来说,我们建议将文本文件存储在 UTF-8 中,不带字节顺序标记 (BOM),并带有 LF(Unix 样式)结尾。我们还建议在提交消息中使用 UTF-8(同样,不带 BOM)。这些设置在各个平台上以及与git diffgit merge等工具配合使用时效果最佳。

此外,如果你可以在基于文本或非基于文本的存储格式之间进行选择,我们建议将文件存储在文本格式中,并在必要时将它们转换为其他格式。例如,每行一个记录的基于文本的 SQL 转储将比实际数据库文件更适合于差异和合并。类似地,基于文本的格式(如 Markdown 和 AsciiDoc)将比二进制格式(如 Microsoft Word 和 PDF)效果更好。

类似地,通常不建议在存储库中存储二进制依赖项(例如共享库或 JAR 文件)或构建产品。最好将依赖项和构建产品存储在工件或包服务器上,只将引用、URL 和哈希存储在存储库中。

我们还建议设置一个 gitattributes文件来明确标记哪些文件是文本文件,哪些是二进制文件。如果你希望 Git 猜测,你可以设置属性text=auto。例如,以下内容可能适用于某些项目

# By default, guess.
*	text=auto
# Mark all C files as text.
*.c	text
# Mark all JPEG files as binary.
*.jpg	binary

这些设置帮助工具为输出(例如补丁)选择正确的格式,并导致文件以适合该平台的行尾签出。

via https://git.js.cn/docs/gitfaq