我有许多大型视频文件,我不想将其推送到远程,但我确实想将它们添加到本地存储库。有点像远程版本.gitignore
file.
那可能吗?
更具体地说,我正在开发一个多媒体项目,一个文件夹包含项目元数据文件(它是一个 Screenflow 项目)以及媒体。所以它有一个project.screenflow
两者都有的文件夹.dat
文件和Media\XXXX.aif
, Media\XXXX.mov
etc.
我想至少分享项目文件(.dat
)与我的团队合作,如果您没有项目使用的媒体,则在 Screenflow 中打开项目是没有意义的。然而,我们的 Git 存储库上的文件大小限制为 100MB,这阻止了我推送这些文件。
目前,我已经排除了Media
in the .gitignore
并且可能必须通过其他方式共享媒体:(
.gitignore
不会阻止您在存储库中拥有文件(您始终可以强制它)。所以这并不像.gitignore
在遥控器中。
你的问题的直接答案是这是不可能的。 Git 会保存您的提交历史记录。每个提交都是由其内容进行(和散列)的。如果提交中有一个文件,并且推送该提交,则不能要求 git 仅推送该提交的一部分,因为那样它就不再是相同的提交了。
然而,有很多方法可以实现你想要的,但没有一个是非常干净的。一个示例是使用 git submodules,您可以在其中创建一个指向您拥有的另一个本地存储库(包含视频文件)的子模块。克隆您的远程存储库的任何人都不会收到视频文件,但他们仍然会看到引用您计算机中某个位置的子模块。
另一种方法是使用 git subtree 从您拥有的提交中实际创建另一组提交(不包括视频),然后将这些人为提交推送到您的存储库。然而,它强加了一些目录结构。
对于这样的问题,通常的答案通常是重新考虑您的存储库。这些视频对您的存储库至关重要吗?如果不是,那么不要将它们放入存储库中,无论是本地存储库还是远程存储库。像这样的额外资源不属于 git 存储库(特别是因为它们也没有版本控制)。
如果您只想将它们保存在本地计算机中,请务必将它们保存在其他目录中。如果您确实想访问旧版本,请将其他目录单独保留在 git 下。如果您希望其他人也看到这些文件,请将它们放在文件共享网站上。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)