4tu*_*uaz 0 git version-control pull git-pull
我想一个大文件(如模型)添加到我的Git仓库,以确保它不会丢失在什么地方,但是当其他人打电话git pull,该文件应不拉。
我检查了很多来源,但没有一个能解决我的问题。也试图操纵.gitignore,但仍然没有解决方案。
澄清一下:现在,在一个项目上工作,对于其中的一部分,需要使用一个模型。由于它不再使用,但将来可能会有一些使用它的场景,我需要模型在存储库中(大小:606 MB)。以后需要用到的人,应该可以从存储库中获取。否则,它与项目的主要流程无关,只是与模型相关的一个问题。除了该人将在提到的问题上工作之外,人们不需要使用存储库拉取模型。这就是这个问题的动机。
没有直接且“git-native”的方式来满足您的需求。Git 是分布式版本控制系统,它的正常操作模式是每个 repo 克隆都有完整的 repo 历史记录。
此外,Git 提交是整个项目文件树的有效存储快照(有关详细信息,请参阅 Git 书的本章https://git-scm.com/book/en/v2/Git-Internals-Plumbing-and-Porcelain) . 没有简单的方法可以只提取特定文件。
您有几个选择:
不要将此模型提交给 GIT。把它放在别处,并以某种方式从你的 git 存储库链接它。例如,通过 Github,您可以使用https://help.github.com/en/github/managing-large-files/distributing-large-binaries。或者只是将其放入您的团队云盘并从 repo 自述文件中链接。虽然这看起来像是“低技术”方法,但我认为它最适合您的场景。
使用 Git LFS。https://git-lfs.github.com/使用 Git LFS 主存储库只保存指向大文件的“链接”,您可以对单个用户想要拉取的内容进行精细控制。话虽如此,只有当有很多这样的文件和/或您想在整个存储库的上下文中准确地维护它们的历史记录时,才值得。在我看来,对于一个永远不会改变 GitLFS 团队流程开销和学习曲线的文件来说,这些好处是不值得的。
只需为您的模型创建单独的 Git 存储库。600MB 绝对大于 Git 的正常文件大小,您可能很容易达到 GitHub 等 git 托管的限制。但是您可能会发现这种大小的本地 Git 存储库运行正常。