即使文件夹中不存在大文件,我的 github 存储库也会将自身转换为 LFS?我该如何恢复这个状态?

问题描述 投票:0回答:1

我使用 Github 桌面来备份我的 Unity 项目。我已经使用它很多年了,但昨晚在对我的项目进行更改后,我尝试提交更改并将它们推送到 main,但 github 桌面会继续工作

pushing to origin
并且不会取得进展。

在网上搜索后,我发现了这篇文章:https://github.com/desktop/desktop/issues/14331#issuecomment-1308575748

我写了建议的命令,但即使如此,github桌面也无法工作。

我认为这是 github 桌面的问题,然后我使用 git bash 并使用命令

git push
来推送我的提交。

这是我在 bash 中得到的: $ git 推送

Uploading LFS objects: 100% (2845/2845), 799 MB | 1.8 MB/s, done.
Enumerating objects: 5776, done.
Counting objects: 100% (5776/5776), done.
Delta compression using up to 8 threads
Compressing objects: 100% (3163/3163), done.
Writing objects: 100% (3164/3164), 431.66 KiB | 16.60 MiB/s, done.
Total 3164 (delta 278), reused 2885 (delta 1), pack-reused 0
remote: Resolving deltas: 100% (278/278), completed with 278 local objects.

为什么要上传为 LFS?我的项目中没有超过 20MB 的单个文件?另外,在此之后我收到一封电子邮件,说我已经使用了大约 80% 的 LFS 配额?

为什么它上传为 LFS?我如何恢复它?

另外,我想补充一点,由于我之前遇到的另一个错误,我遇到的解决方案是添加以下 Unity

.gitattributes
文件。

这是一段时间以前的事了,当时还没有出现 LFS 问题,但我想清除缓存会导致出现此 LFS 问题。

# Define macros (only works in top-level gitattributes files)
[attr]lfs               filter=lfs diff=lfs merge=lfs -text
[attr]unity-json        eol=lf linguist-language=json
[attr]unity-yaml        merge=unityyamlmerge eol=lf linguist-language=yaml

# Optionally collapse Unity-generated files on GitHub diffs
# [attr]unity-yaml        merge=unityyamlmerge text linguist-language=yaml linguist-generated

# Unity source files
*.cginc                 text
*.compute               text linguist-language=hlsl
*.cs                    text diff=csharp
*.hlsl                  text linguist-language=hlsl
*.raytrace              text linguist-language=hlsl
*.shader                text

# Unity JSON files
*.asmdef                unity-json
*.asmref                unity-json
*.index                 unity-json
*.inputactions          unity-json
*.shadergraph           unity-json
*.shadersubgraph        unity-json

# Unity UI Toolkit files
*.tss                   text diff=css linguist-language=css
*.uss                   text diff=css linguist-language=css
*.uxml                  text linguist-language=xml linguist-detectable

# Unity YAML
*.anim                  unity-yaml
*.asset                 unity-yaml
*.brush                 unity-yaml
*.controller            unity-yaml
*.flare                 unity-yaml
*.fontsettings          unity-yaml
*.giparams              unity-yaml
*.guiskin               unity-yaml
*.lighting              unity-yaml
*.mask                  unity-yaml
*.mat                   unity-yaml
*.meta                  unity-yaml
*.mixer                 unity-yaml
*.overrideController    unity-yaml
*.playable              unity-yaml
*.prefab                unity-yaml
*.preset                unity-yaml
*.renderTexture         unity-yaml
*.scenetemplate         unity-yaml
*.shadervariants        unity-yaml
*.signal                unity-yaml
*.spriteatlas           unity-yaml
*.spriteatlasv2         unity-yaml
*.terrainlayer          unity-yaml
*.unity                 unity-yaml

# "physic" for 3D but "physics" for 2D
*.physicMaterial        unity-yaml
*.physicsMaterial2D     unity-yaml

# Exclude third-party plugins from GitHub stats
Assets/Plugins/**       linguist-vendored

# Unity LFS
*.cubemap               lfs
*.unitypackage          lfs

# 3D models
*.3dm                   lfs
*.3ds                   lfs
*.blend                 lfs
*.c4d                   lfs
*.collada               lfs
*.dae                   lfs
*.dxf                   lfs
*.FBX                   lfs
*.fbx                   lfs
*.jas                   lfs
*.lws                   lfs
*.lxo                   lfs
*.ma                    lfs
*.max                   lfs
*.mb                    lfs
*.obj                   lfs
*.ply                   lfs
*.skp                   lfs
*.stl                   lfs
*.ztl                   lfs

# Audio
*.aif                   lfs
*.aiff                  lfs
*.it                    lfs
*.mod                   lfs
*.mp3                   lfs
*.ogg                   lfs
*.s3m                   lfs
*.wav                   lfs
*.xm                    lfs

# Video
*.asf                   lfs
*.avi                   lfs
*.flv                   lfs
*.mov                   lfs
*.mp4                   lfs
*.mpeg                  lfs
*.mpg                   lfs
*.ogv                   lfs
*.wmv                   lfs

# Images
*.bmp                   lfs
*.exr                   lfs
*.gif                   lfs
*.hdr                   lfs
*.iff                   lfs
*.jpeg                  lfs
*.jpg                   lfs
*.pict                  lfs
*.png                   lfs
*.psd                   lfs
*.tga                   lfs
*.tif                   lfs
*.tiff                  lfs
*.webp                  lfs

# Compressed Archive
*.7z                    lfs
*.bz2                   lfs
*.gz                    lfs
*.rar                   lfs
*.tar                   lfs
*.zip                   lfs

# Compiled Dynamic Library
*.dll                   lfs
*.pdb                   lfs
*.so                    lfs

# Fonts
*.otf                   lfs
*.ttf                   lfs

# Executable/Installer
*.apk                   lfs
*.exe                   lfs

# Documents
*.pdf                   lfs

# ETC
*.a                     lfs
*.reason                lfs
*.rns                   lfs

# Spine export file for Unity
*.skel.bytes            lfs

我觉得

.gitattributes
将所有这些文件类型标记到LFS是造成这种情况的原因。

请问我该如何恢复?我只使用小文件(不大于20MB)

谢谢

git github git-lfs
1个回答
0
投票

所以我相信我成功解决了这个问题。

我首先更新了我的

.gitattributes
并删除了所有 lfs 标签,然后提交。

然后我使用

git rm -r --cached .
清除了本地代表的缓存,以撤消我所做的 lfs 更改。

然后提交并执行

git push
这次文件作为常规 git 对象上传。

Git hub 桌面仍然无法工作并且卡在推送上。所以我刚刚下载了 SourceTree 并使用它来推送,它的工作没有任何问题。

© www.soinside.com 2019 - 2024. All rights reserved.