在文件位于存储库中的同时,是否有一种方法可以忽略特定的文件?

问题描述 投票:0回答:1

我想在我的Git存储库中添加一个大文件(例如模型),以确保它不会在某处丢失,但是当其他人调用git pull时,应not将其拉出。

我检查了很多资源,但是都没有解决我的问题。也尝试操纵.gitignore,但仍然没有解决方法。

要澄清:现在,在项目中,仅需使用一部分模型即可。由于不再使用它,但将来可能会使用它,因此我需要将模型放在存储库中(大小:606 MB)。将来,无论谁需要使用它,都应该能够从存储库中获取它。否则,它与项目的主要流程无关,仅与模型有关。除了人们将在提到的问题中工作外,人们不需要将模型与存储库一起拉出。这就是这个问题的动机。

git version-control git-pull pull
1个回答
4
投票

没有任何简单直接的方法可以解决您的需求。 Git是分布式版本控制系统,其正常操作模式是每个回购克隆都具有完整的回购历史记录。

此外,Git提交是有效存储的整个项目文件树的快照(有关详细信息https://git-scm.com/book/en/v2/Git-Internals-Plumbing-and-Porcelain,请参见Git书的这一章)。没有简单的方法仅提取特定文件。

您有一些选择:

  1. 请勿将此模型提交给GIT。将其放在其他位置,并以某种方式从您的git存储库链接它。例如,通过Github,您可以使用https://help.github.com/en/github/managing-large-files/distributing-large-binaries。或者只是将其放入您的团队云磁盘,并从回购自述文件中链接。尽管这看起来像是“低技术含量”方法,但我认为它在您的情况下效果最佳。

  2. 使用Git LFS。 https://git-lfs.github.com/使用Git LFS,主仓库仅保存指向大型文件的“链接”,您可以对单个用户想要提取的内容进行精细控制。话虽如此,只有在有很多类似文件和/或您希望在整个存储库的上下文中准确维护其历史记录的情况下,才值得这样做。对于一个永不改变的文件,GitLFS团队的处理开销和学习曲线在我看来是不值得的。

  3. 只需为模型创建单独的Git存储库。 600MB肯定比Git的正常文件大小大,您可能会轻易达到GitHub等git托管的极限。但是您可能会发现这种大小的本地Git回购很不错。

© www.soinside.com 2019 - 2024. All rights reserved.