我有一个使用git-lfs存储一些大文件的存储库的工作副本.我安装了git-lfs二进制文件,但可能没有在工作副本中运行"git lfs install".当我想在添加lfs文件后更新我的本地工作副本时,我执行以下命令:
git pull
git lfs pull
Run Code Online (Sandbox Code Playgroud)
只要添加lfs文件,这样就可以正常工作.然后存储库有一些已修改的lfs文件,当我运行时git pull收到错误消息:
Your local changes to the following files would be overwritten by merge
....
....
Run Code Online (Sandbox Code Playgroud)
它列出了所有将由pull修改的lfs文件.
从那时起,我git lfs install在工作副本内部运行并且它工作正常,但git status仍然列出所有这些文件被修改,并给git pull了我同样的错误.
我的问题基本上是,如果我使用lfs,更新我的工作副本的正确步骤是什么?如何清理这种棘手的情况?
我们一直在使用Git和我们自己的Gitlab实例托管的git-lfs.
有时当一个特定用户推送文件时,其中一些(似乎是.png文件)不会进入LFS存储,而是添加到git.当他们的机器上发生这种情况时,我还无法看到日志/消息.
但最终发生的事情是当其他用户尝试从LFS下载该文件时,它会抛出一个错误:
[28bbecbecfe441b7de97d566872c71cd4542384d871b369168285408c1f062cfd]服务器上不存在对象,或者您无权访问它
我尝试在git-lfs数据目录中的Gitlab服务器上手动上传文件,并使用正确的文件名SHA ID,但它似乎没有被提取.到目前为止,我唯一的解决方案是触摸文件,以便生成不同的SHA ID,然后重新上传.
有没有办法手动将单个文件添加到Gitlab的git-lfs存储?
iOS 框架内部是一个没有扩展名的二进制文件。我的二进制文件超出了 github 100MB 的大小限制。
git lfs track 'MyFramework'git lfs track 'path/to/MyFramework'有任何想法吗?
如果我在客户端上安装了git lfs并运行:
git clone
Run Code Online (Sandbox Code Playgroud)
这相当于
git lfs clone
Run Code Online (Sandbox Code Playgroud)
或会发生不同的结果?
谢谢!
这个问题的答案是:
可以在不安装Git LFS的情况下克隆Git LFS回购吗?
似乎暗示如果安装了git lfs,git clone将会起作用.目前尚不清楚这是否意味着两个命令的工作方式相同.不幸的是,我的声誉太低,无法评论和询问.
这个问题的另一个标题可能是“如何检出 Git-LFS 托管文件的多个版本?”
我想检查存储在 Git-LFS 中的文件的多个版本。因此,我希望在我的工作目录中并排放置此文件的多个版本。像这样的事情是我的想法:
git show v1:./myfile.ipynb > myfile-v1.ipynb
git show v2:./myfile.ipynb > myfile-v2.ipynb
Run Code Online (Sandbox Code Playgroud)
这不能按预期工作:文件由 Git-LFS 管理,因此git show每个版本的内容看起来像
version https://git-lfs.github.com/spec/v1
oid sha256:62aafe00ec8b61a37dd729e7d3a723382...
size 20439
Run Code Online (Sandbox Code Playgroud)
我对文件的“真实”、Git-LFS 管理的内容感兴趣,而不是 LFS 存储在 Git 自己的树中的指针文件。
如何创建未跟踪的、自定义命名的文件,每个文件都包含 Git-LFS 跟踪的文件的特定版本?这不需要是一个单一的命令,我接受了 Git,需要用于单一概念操作的多步骤脚本。
这是我的 github 操作 yml 文件:
name: CI
on: [pull_request]
jobs:
build_ios:
name: Set up
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [self-hosted]
node-version: [10.x]
steps:
- name: Checkout github repo (+ download lfs dependencies)
uses: actions/checkout@v2
with:
lfs: true
Run Code Online (Sandbox Code Playgroud)
在它运行之后,我希望所有的 git lfs 文件都被下载、签出并准备好使用,但文件的内容是这样的:
version https://git-lfs.github.com/spec/v1
oid sha256:f23e4c2b1244bc93085dbccf17c447e54sca44650294648df128d58303e4eff
size 58951008
Run Code Online (Sandbox Code Playgroud)
下面我附上实际的 github 操作日志,以防万一:
Run actions/checkout@v2
with:
lfs: true
repository: SudoPlz/test-project-mobile
token: ***
ssh-strict: true
persist-credentials: true
clean: true
fetch-depth: 1
submodules: false
Syncing repository: SudoPlz/test-project-mobile
Getting Git version info
Working directory …Run Code Online (Sandbox Code Playgroud) 我遇到了一组图像(例如,https://github.com/kehuantiantang/A-DNN-based-Semantic-Segmentation-for-Detecting-Weed-and-Crop/blob/master/stuttgart/stuttgart_cp_00000.npy)存储在 中git lfs的信息如下:
version https://git-lfs.github.com/spec/v1
oid sha256:6692f38904c1ae21cd3d3e6e378538c07fda86fe97ee01d8664bb95fc20cd1de
size 8889498
Run Code Online (Sandbox Code Playgroud)
如何查看和下载原图文件?我是 Git LFS 新手。任何人都可以提供一些详细的步骤吗?
我所做的更新:
我下载了 github 仓库:https://github.com/kehuantiantang/A-DNN-based-Semantic-Segmentation-for-Detecting-Weed-and-Crop
将其解压缩到一个文件夹和cd子文件夹stuttgart(以下是其中包含的内容: https: //github.com/kehuantiantang/A-DNN-based-Semantic-Segmentation-for-Detecting-Weed-and-Crop/tree/master /斯图加特),
键入命令git lfs pull(通过git bashwin10),但出现此错误:“批量响应:超出速率限制: https: //github.com/kehuantantang/A-DNN-based-Semantic-Segmentation-for-Detecting-Weed-and-Crop .git/info/lfs/objects/batch错误:无法从 'https://github.com/kehuantantang/A-DNN-based-Semantic-Segmentation-for-Detecting-Weed-and-Crop.git 获取某些对象/信息/lfs'
如何git-lfs在 Amazon EC2 (Amazon Linux 2) 实例上安装?
基于https://github.com/git-lfs/git-lfs/blob/main/INSTALLING.md我尝试过:
sudo yum install git -y;
cd /home/ec2-user;
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.rpm.sh | sudo bash
-> which tells me afterwards:
The repository is setup! You can now install packages.
sudo yum install git-lfs
-> gives me:
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
No package git-lfs available.
Error: Nothing to do
Run Code Online (Sandbox Code Playgroud)
git: 'lfs' is not a git command. See 'git --help'.未来的命令(在 后还不可能执行git lfs install)将基于https://git-lfs.github.com/
git lfs install …Run Code Online (Sandbox Code Playgroud) 我已经通过bitbucket工作了一段时间没有问题.我一直在自己工作,但最近有一个实习生加入了我,我们无法从他的机器上推送文件.
我们已经能够在他的机器上克隆repo(包括大文件),做一些本地提交没有问题.虽然当谈到推动我们有一个认证的问题,说
需要身份验证:授权错误:https:// bitbucket ......检查您是否具有对存储库的适当访问权限
问题如下图所示:
请注意,我的受训者对repo 具有写访问权限(在bitbucket中).
知道发生了什么事吗?
我们已经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)