我使用 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)
谢谢
所以我相信我成功解决了这个问题。
我首先更新了我的
.gitattributes
并删除了所有 lfs 标签,然后提交。
然后我使用
git rm -r --cached .
清除了本地代表的缓存,以撤消我所做的 lfs 更改。
然后提交并执行
git push
这次文件作为常规 git 对象上传。
Git hub 桌面仍然无法工作并且卡在推送上。所以我刚刚下载了 SourceTree 并使用它来推送,它的工作没有任何问题。