git lfs无法正常运作-与没有.gitconfig文件有关?

问题描述

我有一个git存储库,其中包含许多我需要从个人笔记本电脑和AWS EC2实例访问的大文件。出于机构原因,我要通过AWS SSM访问实例,并以sudo的身份工作。我一直遇到以下问题:(1)将大文件推送到远离AWS的位置,以及(2)运行代码时出错,因为在启动时,我的大文件被其指针而不是实际文件替换。这是我所做的尝试的摘要(也许是技术上的挑战):

  • 我安装了git并克隆了我的存储库,然后安装了git lfs。这显然无法抓取完整文件,因此我不得不git lfs迁移,然后执行git lfs pull。此后一切似乎都在起作用。我能够创建大文件并将其推送到远程。
  • 当我停止实例并重新登录时,我发现我必须执行'git lfs pull'来获取大文件,因为它们默认是重新启动时的指针。
  • 我尝试推送一些新的大文件,但出现了错误,说:
remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.
remote: error: Trace: be4db70fb591a3183909102e8bbb8ba4
remote: error: See http://git.io/iEPt8g for more information.
remote: error: File deterministic/outputs/s_consequences_SCM6p5_AHRAO_b0_434.csv is 370.07 MB; this exceeds GitHub's file size limit of 100.00 MB
remote: error: File deterministic/outputs/s_consequences_SCM5p8_AHRAM_b0_421.csv is 154.72 MB; this exceeds GitHub's file size limit of 100.00 MB
remote: error: File deterministic/outputs/s_dmgbyasset_IDM6p8_JdFP_b0_17.csv is 155.28 MB; this exceeds GitHub's file size limit of 100.00 MB
remote: error: File deterministic/outputs/s_dmgbyasset_SCM5p8_AHRAM_b0_421.csv is 142.86 MB; this exceeds GitHub's file size limit of 100.00 MB
remote: error: File deterministic/outputs/s_dmgbyasset_SCM6p5_AHRAO_b0_434.csv is 335.78 MB; this exceeds GitHub's file size limit of 100.00 MB
remote: error: File deterministic/outputs/s_lossesbyasset_SCM5p8_AHRAM_b0_423.csv is 136.97 MB; this exceeds GitHub's file size limit of 100.00 MB
To https://github.com/PROJECT/oqREPO.git
 ! [remote rejected] tieganh -> tieganh (pre-receive hook declined)
error: failed to push some refs to 'https://github.com/PROJECT/oqREPO.git'
  • 在添加大文件之前,我尝试对提交进行硬重置,执行git lfs pull,重新提交,然后推送。仍然会失败,并显示相同的错误。
  • 我检查了我的大型csv文件是否已通过more .gitattributes进行跟踪:
ProjectMaterials/OQWorkshop_Montreal/EqRisk_Nov2019_THEdit.key filter=lfs diff=lfs merge=lfs -text
ProjectMaterials/OQWorkshop_Montreal/OQWorkshopTraining.key filter=lfs diff=lfs merge=lfs -text
*.csv filter=lfs diff=lfs merge=lfs -text
  • 我尝试检查lfs是否在我的〜/ .gitconfig中正确安装,但发现它不存在。在〜/ .config / git / config中,它在sudo上或作为普通用户也不存在。也许是因为我刚开始在安装存储卷时遇到问题,并且偶然将根目录挂载到其他位置了一段时间?我有点烦死了。

对于解决此问题的任何帮助,我非常感谢,无论是修复我当前的存储库,还是帮助重新安装并移至新的[干净]存储库。作为参考,我使用的是Ubuntu 18.04,git lfs env的输出为:

git-lfs/2.3.4 (GitHub; linux amd64; go 1.8.3)
git version 2.17.1

Endpoint=https://github.com/PROJECT/oqREPO.git/info/lfs (auth=basic)
LocalWorkingDir=/root/storage/oqREPO
LocalGitDir=/root/storage/oqREPO/.git
LocalGitStorageDir=/root/storage/oqREPO/.git
LocalMediaDir=/root/storage/oqREPO/.git/lfs/objects
LocalReferenceDir=
TempDir=/root/storage/oqREPO/.git/lfs/tmp
ConcurrentTransfers=3
TusTransfers=false
BasicTransfersOnly=false
SkipDownloadErrors=false
FetchRecentAlways=false
FetchRecentRefsDays=7
FetchRecentCommitsDays=0
FetchRecentRefsIncludeRemotes=true
PruneOffsetDays=3
PruneVerifyRemoteAlways=false
PruneRemoteName=origin
LfsStorageDir=/root/storage/oqREPO/.git/lfs
AccessDownload=basic
AccessUpload=basic
DownloadTransfers=basic
UploadTransfers=basic
git config filter.lfs.process = ""
git config filter.lfs.smudge = ""
git config filter.lfs.clean = ""

解决方法

要使Git LFS正常工作,您需要使用Git正确设置过滤器配置。最简单的方法是在使用任何Git LFS存储库之前运行git lfs install

如果没有配置文件,则说明您没有设置正确的过滤器配置,因此Git LFS无法正常工作。这就是为什么存在问题的原因:因为Git并未调用Git LFS,因此您只是将文件作为大型Git文件存储在存储库中。即使您可以推送它们,但如果您再次克隆存储库,它们也会在以后显示为已修改。

您应确保已运行git lfs install,然后运行git lfs migrate import --everything来解决此问题。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...