在 Git 中包含文档和其他项目相关文件的最佳做法?

Best practice to have documentation and other project related files in Git?

我在 Git 上有一个 asp.net mvc 项目。我们还有很多其他文件,例如*.pdf 格式的文档,.sql 格式的数据库脚本和图像形式的模型(.png,*.jpg)。我们也希望在 Git 中有这个,但问题是在哪里?

在项目中创建新文件夹,例如文档、数据库脚本等并将其与项目一起提交?

使用文档和 db 脚本创建一个新分支?

创建新的 git 存储库?

虽然存储文档的方式无关紧要(单独的存储库除外,除非是子模块)- 您绝对不想使用无法产生有意义的差异的文本文件格式。

我只是让文档靠近代码本身,绝对不是在单独的分支上,因为文档更改应该反映代码更改并且版本控制在两者中都很重要。

您的问题并非特定于 Git,而是适用于任何版本控制系统。

一般来说,最好将项目的所有资产(例如源代码、文档、脚本、二进制文件)保存在相同的目录结构中,其中不同的资产将组织在子目录中。这样,当有人从源代码管理中获取项目时,他们将获得与该项目相关的一切,而无需在其他存储库中寻找不同的部分。

具体到 Git 时,需要考虑的一个因素是您的项目是否有很多 large 二进制文件(例如音频、视频、原始图像) . Git 的 storage mechanism is, in fact, notoriously inefficient at handling big binaries that change often:

By default Git will compress and store all subsequent full versions of the binary assets, which is obviously not optimal if you have many.

如果您需要在 Git 存储库中存储 大型二进制文件 ,您应该考虑查看名为 Git Large File Storage (LFS) 的 Git 扩展。安装此扩展后,Git 会将大型二进制文件存储在远程存储库中,但仍然使它们看起来像是本地存储库的一部分。