首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我可以将文件添加到本地的Git,但不能将其推到远程。

我可以将文件添加到本地的Git,但不能将其推到远程。
EN

Stack Overflow用户
提问于 2014-02-07 13:38:25
回答 2查看 1.2K关注 0票数 2

我有一些大的视频文件,我不想推到我的遥控器,但我确实想把它们添加到我的本地存储库。有点像.gitignore文件的远程版本。

这有可能吗?

具体来说,我正在处理一个多媒体项目,其中一个文件夹包含项目元数据文件(它是Screenflow项目)以及媒体。因此,它有一个project.screenflow文件夹,其中包含.dat文件和Media\XXXX.aifMedia\XXXX.mov等。

我想至少与我的团队共享项目文件(.dat),如果没有它使用的媒体,在屏幕流中打开项目是没有意义的。然而,在我们的Git文件大小限制为100 me,阻止我推动这些。

目前,我已将Media排除在.gitignore之外,可能不得不通过其他方式共享媒体:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-07 13:48:44

.gitignore并不会阻止您在存储库中拥有一个文件(您总是可以强制它)。所以这并不像遥控器中的.gitignore

你的问题的直接答案是这是不可能的。Git保存了你的犯罪记录。每一次提交都是由其内容进行的(并对其进行散列)。如果在commit中有一个文件,并且您推动了该提交,那么您就不能要求git只推送该提交的一部分,因为这样就不再是相同的提交了。

然而,有一些方法可以实现你想要的,没有一个是非常干净的。一个例子是使用git子模块,其中您创建了一个子模块,该子模块指向您拥有的另一个本地回购(带有视频文件)。任何人克隆您的远程回购将不会收到视频文件,但他们仍然看到的子模块,引用在您的计算机某处。

另一种方法是使用git子树实际创建另一组提交,不包括视频,然后将人工提交的提交推到存储库。然而,它强加了一些目录结构。

对于这样一个问题,通常的答案是重新思考你的存储库。这些视频对你的存储库至关重要吗?如果没有,那么就不要将它们放在存储库中,既不是本地的也不是远程的。这样的额外资源不属于git存储库(特别是因为它们也没有版本)。

如果您只希望它们在本地计算机中,请务必将它们保存在其他目录中。如果您真的想要访问旧版本,请将另一个目录单独保存在git下。如果你想让别人也看到这些文件,把它们放到一个文件共享网站上。

票数 2
EN

Stack Overflow用户

发布于 2014-02-07 13:48:00

不使用传统的git方法。将文件保存在repo中将更改它后面的每个提交哈希。这样在服务器端就不匹配了。我会考虑为什么你需要他们住在同样的回购,你必须到处推。

你可以让他们在一个单独的回购,然后通过当地的git钩子,如果它是为了处理?如果你在问题中详细说明你的情况,我们也许能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21629211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档