问题标签 [git-lfs-migrate]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - 提交历史重写后如何将所有分支推送到新的远程?
我已经查看了许多关于这个主题的现有页面,但没有一个解决方案有效。我git lfs migrate在一个现有的存储库上运行,其中包含 80,000 多个提交,以及数千个票证和拉取请求。git lfs migrate重写提交历史,我们将其应用于所有分支。然后我想强制将所有更改的分支推送到原始仓库。这是最终目标。现在对于我一直在运行的测试,这是这篇文章的直接主题。
在我的测试中,我克隆目标存储库并在本地运行迁移,然后尝试设置并推送到不同 github url 的新存储库。完成后,我去了 GitHub,可惜除了 master 之外所有的分支都消失了。我已经尝试过使用git push origin -u --all和--mirror其他在 SO 上发布的变体,但都无济于事。我什至有创意,只是 ra git push --mirror,但仍然只有 master 出现在 GitHub 存储库页面上。https://git-scm.com/上的文档很清楚,但没有预期的影响。
任何建议将不胜感激!
git - 使用过滤器分支删除 Git LFS?(无法将未更改的文件重新添加到索引。)
尝试将存储库(包括历史记录)迁移出 Git LFS。
我在测试存储库上运行(在此处git lfs migrate export --include="*" --everything提到),但它没有按预期工作,并留下 LFS 指针文件,而不是将它们全部转换为对象。
我尝试了替代方法,遵循this。不幸的是它仍然留下指针文件,所以我将它与this结合起来。
最后,我什至将所有命令一起运行:
没用。给我多个文件的以下错误,过滤的提交有指针文件而不是对象。
我尝试仅在提示提交上运行相同的命令,似乎touch, rm --cached, add --renormalize .,add --force不显示任何修改git status。所以我无法将清理/拉取的目标文件重新添加到新的提交中。
也许这就是问题所在?那么如何在使用filter-branch时强制将未更改的文件重新添加到索引中呢?
(使用带有 git bash 的 Windows。)
git-lfs - 逐渐将 repo 转换为对某些文件使用 git-lfs。一次一个文件
我们有一个高价值且破坏成本高的回购。
它还具有大型 XML 文件,在使用 webapp 进行合并和 git 日志历史记录时会导致严重问题。此外,它可能使我们的 CI/CD 效率低下。换句话说……促使人们转向 git-lfs 的常规事物。
我们要小心地做到这一点。一次一个文件。
我见过类似于下面列出的方法:
在一个新目录中:
回到src:
我怎样才能做类似的事情,但只是从一个大的 xml 文件开始,以降低此过渡期间的风险。我们更愿意与维护该文件的开发人员保持轻松联系,隔离更改并在此处抓取。更改 100 多个文件可能会阻碍开发人员并且成本高昂。
我们只是改成*上面例子中的具体文件名吗?
git - 调试 Git LFS - 为什么我的包文件在 git lfs 导入后没有缩小?
我有一个 UnrealEngine 项目,其中包含一堆我用 LFS 跟踪的 uasset 和 umap 文件,但没有得到我期望的结果。存储库是一个大约 21gb 的单个包文件。工作副本大约 25gb,整个文件夹总共 46gb。
已对 repo 的新副本执行以下操作:
- git lfs 安装
- git lfs 跟踪“* .uasset”
- git lfs 跟踪“* .umap”
- git lfs migrate import --include=" .uasset, .umap" --verbose --everything
这会导致大量文件根据我所看到的进行迁移。完成后,我做了:
- git reflog expire --expire-unreachable=now --all
- git gc --prune=now --aggressive
运行此程序后,我预计包文件会小很多,但已经知道它不会是因为 gc 需要永远,这意味着它重新压缩了大量的东西。当一切都说完了,包文件并没有真正改变大小,这不是我所期望的。我现在还有一个 20 多 GB 的 LFS 文件夹。
我错过了什么吗?不了解迁移应该如何工作?usasset 文件是这个 repo 中使用的大部分空间。
git - 如何迁移到 git lfs
我有一个 git repo,其中许多文件应该是 lfs,因为它们大于 100M。
环顾四周,我找不到分步指南来解释如何迁移具有许多分支的真实现有存储库以及 lfs 文件在子目录中的位置。
在我的情况下,大文件分布在 repo 周围,如下所示:
我想只需使用以下命令将 git 项目转换为 git lfs git lfs migrate:
但这并没有做任何事情。
我想转换所有的 repo,我的意思是所有的文件、历史记录以及所有现有的分支。
换句话说,git lfs migrate现在看起来很稳定,但用户不那么友好。
跑步git lfs track "*.pkl"似乎有效果:
但接下来该怎么做。我看到git lfs track它将开始跟踪新文件或已签入您的存储库的现有文件。
但是历史呢?我正在苦苦挣扎,因为我不希望最终得到一个必须从头开始重新导入或必须处理过滤器分支的混乱存储库。
git - git lfs migrate 似乎不是在迁移文件
我们已经git-lfs成功使用了几年。但是,我们会定期添加到我们包含在git-lfs. 我们迁移到的最新文件类型之一是我们git-lfs的所有*.csv文件。
问题是*.csv我们的历史中有几个非常大的文件在初始迁移中没有被捕获,我也需要将这些文件移动到其中git-lfs。(我们正在从 BitBucket 迁移到 GitHub,GitHub 对允许的最大文件大小有更严格的规定,所以我需要确保所有旧的大文件也都打开git-lfs。)
显而易见的方法是这样的:
git lfs migrate import --everything --include="*.csv"
当我运行该命令时,它似乎成功了。它重写了历史,输出看起来像这样:
(更多类似的)
但是当我尝试运行时git lfs migrate info --everything,这些文件似乎并没有真正被触及。
当我尝试将重写的存储库推送到 GitHub 时,它仍然抱怨有 *.csv 文件太大而 GitHub 无法接受。(无法获得确切的错误消息,因为错误需要大约 8 小时才能显示出来,而我最后一次得到它的时候已经从我的屏幕上滚动了。)
之后我也尝试修剪和 GC'ing repo,以防万一,但它似乎没有任何区别。
我对git lfs migrate应该如何工作有误解吗?还是我做错了什么?
git - Git LFS git lfs migrate import 包括 .gitattribute 中指定的所有文件类型?
我安装了 git lfs 并创建了一个 gitattribute 文件,其中包含许多要跟踪的文件类型。我现在想为 .gitattribute 中指定的所有文件类型运行 git lfs migrate 命令。我怎样才能做到这一点?
我发现的所有来源似乎一次只做一个文件类型,或者一个用逗号分隔的文件类型列表:
git - Git LFS 迁移失败并显示“无法更新参考:退出状态 129”
我正在使用以下命令在我的 git repogit lfs migrate的干净克隆上运行:--mirror
输出是:
之后,它似乎破坏了我的回购 - 例如,如果我然后打电话:
它表明我现在有 42251 次提交 - 而我的期望是 git lfs migrate import 会更新现有提交以指向 LFS 中的文件。
目前,我正在努力寻找有关此错误消息和/或状态代码指示的任何信息。此外,没有 git lfs 日志 - 即如果我最后调用 git lfs 日志,它会报告:
我正在使用 git 版本 2.27.0 和 git lfs 版本 2.11.0。
我对 Git LFS Migrate 做错了吗?有没有办法调试这个?
更新: 我还在github 上的 git lfs repo 上为这个问题添加并关闭了一个问题。
git-lfs - 如何在 Git LFS 存储库之间迁移
我有一个启用了 git-lfs 的现有仓库(在 GitHub 上),里面有 1GB 的文件。出于带宽原因,我想停止使用 GitHub 并开始使用托管在公司网络上的 LFS 存储库。有谁知道如何在git lfs repos之间迁移?
我可以转换为“没有 git-lfs 的普通 repo”,然后再转换回 git-lfs,但必须有一种方法可以做到这一点,而无需重写历史记录并复制文件,对吗?
谢谢!
git - 如何将带有 LFS 文件的 git 存储库转移到另一个存储库?
我们有一个本地 git 服务器,带有 LFS 文件。我们计划在 MS Azure DevOps 上迁移所有内容。经过一番研究,我读到建议做一个“镜像”克隆,拥有一切(至少标签):
git克隆--镜像
然后,由于我有一些 LFS 文件,我也想获取它们:
git lfs 获取 --all
但我得到这个错误:
对于我正在阅读的内容, git lfs fetch 不适用于bare存储库(不是我知道这是什么,但我认为它与--mirror选项有关。
所以我的问题是:我应该怎么做才能将所有内容转移到这个新的存储库?(在此之后本地服务器将被关闭)。
谢谢