使用git-lfs/1.1.0(GitHub; linux 386;转1.5.1),文件大小4.3G.
git init
git lfs install
git lfs track *.nnex
Run Code Online (Sandbox Code Playgroud)
.gitattributes: *.nnex filter=lfs diff=lfs merge=lfs -text
git add evernote-backup.nnex: fatal: Cannot handle files this big
git lfs ls-files: Git can't resolve ref: "HEAD"
git lfs track: Listing tracked paths evernote-backup.nnex .gitattributes)
git lfs env:
WARNING: Reading LFS config from ".gitconfig", not ".lfsconfig". Rename to ".lfsconfig" before Git LFS v2.0 to remove this warning.
git-lfs/1.1.0 (GitHub; linux 386; go 1.5.1)
git version 2.1.4
LocalWorkingDir=/home/vitaly
LocalGitDir=/home/vitaly/.git …Run Code Online (Sandbox Code Playgroud) 我在Heroku上使用node.js(express),其中slug大小限制为300MB.
为了保持我的slug小,我想使用git-lfs来跟踪我的快递' public文件夹.
以这种方式,我的所有资产(图像,视频......)都被上传到lfs-store(比如AWS S3),而git-lfs会留下一个指针文件(里面可能包含S3 URL?).
我想在从公用文件夹提供文件时表达重定向到远程S3文件.
我的问题是我不知道如何从指针文件的内容中检索URL ...
app.use('/public/:pointerfile', function (req, res, next) {
var file = req.params.pointerfile;
fs.readFile('public/'+file, function (er, data) {
if (er) return next(er);
var url = retrieveUrl(data); // <-- HELP ME HERE with the retrieveUrl function
res.redirect(url);
});
});
Run Code Online (Sandbox Code Playgroud)
您是否认为快速读取和解析可能的所有public/*文件不会太昂贵.也许我可以在解析后缓存URL?
我知道git lfs用我的存储库中的指针文件替换了lfs跟踪的文件.
我不明白的是我从那件事中获得的东西.
是不是我永远不必下载与我从未结帐的提交相关联的二进制文件?
还是有其他优势?
在Bitbucket服务器上托管了LFS git存储库.现在我们需要创建新的LFS repo并使用LFS存储移动存储库.
这该怎么做?
例如,对于正常的回购,我们可以这样做:
git remote add new NEW_REMOTE_REPO_URL
git push —-all NEW_REPO_URL
Run Code Online (Sandbox Code Playgroud)
LFS存储是否会创建包含新回购的所有历史记录?
我已经通过bitbucket工作了一段时间没有问题.我一直在自己工作,但最近有一个实习生加入了我,我们无法从他的机器上推送文件.
我们已经能够在他的机器上克隆repo(包括大文件),做一些本地提交没有问题.虽然当谈到推动我们有一个认证的问题,说
需要身份验证:授权错误:https:// bitbucket ......检查您是否具有对存储库的适当访问权限
问题如下图所示:
请注意,我的受训者对repo 具有写访问权限(在bitbucket中).
知道发生了什么事吗?
我使用 git-lfs 来跟踪大文件,设置是:
.
??? ...
??? ...
??? large-files
??? ...
??? ...
??? .git
Run Code Online (Sandbox Code Playgroud)
外部存储安装在 上large-files,所有大文件都放在这里。
这个设置的问题是,有一个.git/lfs目录,它使用与 相同数量的磁盘空间large-files,因为我永远不会从 中删除large-files,而我的 SSD(工作树所在的位置)的容量小于外部存储,.git/lfs将超过我的SSD的容量。
有没有办法在.git/lfs不将其移动到外部存储的情况下减小它的大小?(将.git或整个工作树放到外部存储不是一种选择,因为外部存储并不总是可用的)
两者有什么区别?我们在上一份工作中使用了git-lfs,并且在我当前的工作中开始与git一起使用dvc。它们都放置某种索引而不是文件,可以按需下载。dvc是否比前一个有所改进?
我们已经git-lfs成功使用了几年。但是,我们会定期添加包含在git-lfs. 我们转移到的最新文件类型之一git-lfs是我们的所有*.csv文件。
问题是我们*.csv的历史记录中有几个非常大的文件在初始迁移中没有被捕获,我也需要将这些文件移动到。git-lfs(我们正在从 BitBucket 迁移到 GitHub,GitHub 对允许的最大文件大小有更严格的规则,因此我需要确保所有旧的大文件也都打开git-lfs。)
最明显的方法是这样的:
git lfs migrate import --everything --include="*.csv"
当我运行该命令时,它似乎成功了。它重写历史,输出看起来像这样:
PS E:\source\swyfft_web_ken> git lfs migrate import --everything --include="*.csv"
migrate: Sorting commits: ..., done.
migrate: Rewriting commits: 100% (131623/131623), done.
development 1b042eeebfb346af8f7e90d1f6c7b6abfc64d014 -> 1b042eeebfb346af8f7e90d1f6c7
b6abfc64d014
feature/ks/20200205_ImsWebServicesV2 e2b5b267d5215ef48d5ef4e3f0924613c6076cd7 -> e2b5b267d5215ef48d5ef4e3f092
4613c6076cd7
master 2029338210697c795a536faa9dd4c141c6edd6c2 -> 2029338210697c795a536faa9dd4
c141c6edd6c2
1.0 752143ee1b87020e9b285886b3986703d6c74a38 -> 752143ee1b87020e9b285886b398
6703d6c74a38
1.1 5fefda3de45651107218a953e789ea5121002756 -> 5fefda3de45651107218a953e789
ea5121002756
1.2 30f87f08e672d10de0029985ad5acc1bf5a82457 -> 30f87f08e672d10de0029985ad5a
cc1bf5a82457 …Run Code Online (Sandbox Code Playgroud) 我克隆了一个具有 10 多个远程分支和 20 多个标签的存储库。
克隆的存储库具有默认的分支主结帐。
当我运行 git lfs migrate 时,它迁移了所有标签,但仅迁移了 master 分支,其他远程分支未迁移。这是预期的行为吗?在运行“git lfs migrate import --everything --include =“*.bin””之前我是否需要签出所有远程分支?
LFS版本是3.1.4
我在使用LFS的bitbucket上有一个存储库。自使用了一段时间以来,我决定将存储库移回我控制的空间。首先使用LFS的唯一原因是有效地增加了存储库大小限制(因为LFS中的文件位于单独的存储桶中),但是现在我要移动它,因此不再需要这样做。
我需要一种方法来遍历整个git历史记录,删除git LFS所做的工作的所有痕迹(以便所有文件均“正常”提交)。完成此操作后,我打算强制推送到新的存储库。
我已经做了很多搜索,遇到了建议的解决方案,但是由于它们是高级的,所以我不知道如何实现/运行它们。
我如何向git LFS告别?