我可以将文件添加到本地 Git 存储库但不将其推送到远程吗

2023-11-30

我有许多大型视频文件,我不想将其推送到远程,但我确实想将它们添加到本地存储库。有点像远程版本.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(使用前将#替换为@)

我可以将文件添加到本地 Git 存储库但不将其推送到远程吗 的相关文章

  • 如何在 Visual Studio 2013 中隐藏未提交的更改

    需要一些帮助 了解如何使用 Visual Studio 2013 搁置 Git 存储库中未提交的更改 我来自 PHPStorm 您可以在一个分支上搁置未提交的更改 切换到另一个分支并取消搁置 但是 我无法找到 了解如何在 Visual St
  • Git:在本地合并远程分支

    我已经通过以下方式拉取了所有远程分支git fetch all 我可以看到我想要合并的分支git branch a作为远程 原点 分支名称 问题是它无法访问 我无法合并或结帐 您可以参考那些远程跟踪分支 列出git branch r 及其遥
  • Windows 中的 Git Shell:补丁的默认字符编码是 UCS-2 Little Endian - 如何将其更改为 ANSI 或 UTF-8 without BOM?

    当创建一个Windows 中使用 Git Shell 进行差异补丁 当使用适用于 Windows 的 GitHub http windows github com the 字符编码补丁的UCS 2 小尾数法根据Notepad 参见下面的屏幕
  • 为什么 git mergetool 说“没有文件需要合并”?

    我正在尝试将 BeyondCompare4 配置为 git 中的 difftool 和 mergetool 我使用的是 git 版本 2 5 0 windows 1 到目前为止 BeyondCompare4 作为 difftool 工作得很
  • 签出现有的远程分支

    我见过不同的方法来检查现有的远程分支 假设我的朋友推送了新分支 bigbug 并且我想签出并将我的本地工作副本切换到该分支 我有以下选项 1 git checkout b bigbug origin bigbug 2 git checkou
  • .gitignore 文件夹内容[重复]

    这个问题在这里已经有答案了 可能的重复 在 Windows 上忽略 Git 存储库中的目录 https stackoverflow com questions 343646 ignoring directories in git repos
  • 如何损坏 Git 存储库?

    创建损坏的 git 存储库有哪些方法 有没有有趣的方法可以永久损坏 git 存储库 你能否削弱一个 git 存储库 使其行为有些正常 但会做一些奇怪的事情 我的兴趣来自于当有人担心他们是否真的创建了不可恢复的状态时 它通常很容易修复或至少可
  • 如何避免开发人员将凭证推送到 bitbucket?

    我们有一个应用程序 它使用 JSON 文件来定义数据库和其他 API 的连接字符串和凭据 理想情况下 这些凭证作为变量添加到 bitbucket 存储库中 并在 Jenkins 的构建期间进行替换 开发商在当地与他们合作时更换了他们 我们需
  • 如何让 git 和 copSSH 在正确的目录中查找密钥?

    我刚刚安装了 Windows 版 copSSH 当我启动它时 我得到一个目录C copSSH home Nick ssh其中有我的酒吧和私钥 当我通过 Cygwin bash 窗口访问此目录时 使用 ssh 用户 主机 我很高兴地登录了 但
  • 主存储库和本地存储库在同一台机器上

    我是 Git 新手 我已经在 Linux 服务器中创建了一个主存储库 同一个服务器将由 5 组 每组 3 个用户 使用 我想为每个组创建一个本地存储库 小组成员又应该为每个人创建一个本地存储库 使用内容并将修改提交到小组的本地存储库 我该怎
  • Git守护进程克隆错误

    All 我正在按照以下指示进行操作this SO https stackoverflow com a 377293 724357答案 快速提供回购 当我跑步时git clone git ipAddr git project我得到这个输出 r
  • 无法将 git add origin git@anything 与新的 git 目录一起使用

    我有一个项目 我正在生成许多提交 因此它占用的空间正在快速增长 由于我有一个 gitlab 页面来推送提交 因此我决定最好删除本地 git 目录中的这些旧提交 因为我始终可以从 gitlab 获取它们 为此 我只需删除本地 git 目录 然
  • hg 或 git 中的两个完整目录/项目之间存在差异?

    我继承了一个最初存储在 CVS 中的项目以及所有修订 我做了相当多的编辑 并且我试图比较我在原始目录中所做的所有更改 关于添加的新文件与旧文件 hg git 是否有某种实用程序可以让我进行树差异或类似性质的操作 也就是说 新添加的文件 删除
  • Git 中的合并冲突是由什么构成的?

    git 如何确定特定合并存在冲突以及冲突是什么 我的猜测是这样的 如果正在合并的两个提交有一个共同的父提交 并且如果它们都更改了父提交的 X 行 那就是冲突 让我的理解变得复杂的是 更改 X 行 可能意味着用几行新行替换它 但这仍然显示为一
  • 如何使用 sourceTree 进行推送?

    我正在使用 sourceTree 管理 Unity 项目 版本 4 6 3 我只是想返回到上一次提交 右键选择 将当前分支重置到此提交 在使用模式中选择 硬 然后放回上一次提交 之后 我尝试去推 但没有成功 抱歉 当时我忘记了错误 之后 我
  • 如何将普通的 Git 存储库转换为裸存储库?

    如何将 普通 Git 存储库转换为裸存储库 主要区别似乎是 在普通的 Git 存储库中 你有一个 git存储库内的文件夹 包含构成工作副本的所有相关数据和所有其他文件 在裸露的 Git 存储库中 没有工作副本和文件夹 我们称之为repo g
  • 当出现错误时如何删除远程分支?

    我尝试过以下命令 但失败了 git push origin next remote error denying ref deletion for refs heads next To blah git remote rejected nex
  • 返回到存储库中的特定修订后提交并推送更改?

    我们需要及时返回到某个特定的提交 一些意外的改变是为了掌握 尝试恢复它挖得太深 所以 master 的状态很糟糕 现在我们希望master回到66ada4cc61d62afc 根据git 恢复到某个提交 https stackoverflo
  • Eclipse 与外部 src 和 Web 内容文件夹链接或映射

    首先这不是问题但是我遇到的问题的解决方案浪费了4 5个小时来找到解决方案 请让我知道是否有更好的替代方法来使用 eclipse 项目管理外部 src 文件夹 我正在使用版本控制系统 GIT 来管理我的项目 还使用外部 Git 客户端 Sou
  • Git:压缩 master 上提交的最简单方法[重复]

    这个问题在这里已经有答案了 可能的重复 如何使用 git 将最后 X 次提交压缩在一起 https stackoverflow com questions 5189560 how can i squash my last x commits

随机推荐