Git lfs 从每个文件中删除了代码 - Kotlin

Git lfs removed code from every single file - Kotlin

我对一些大文件使用 git lfs,因为我在使用它之前已经提交了,所以我不得不使用 git lfs migrate import 提供的 here 重写提交然后我就可以将它推送到服务器上了。但是,反过来,它将整个项目的每个 .kt,.xml 文件更改为以下 3 行:

version https://git-lfs.github.com/spec/v1
oid sha256:e1bc1da7265eea2b374ddf30546ddabfa
size 21093

通过 Github 打开任何文件都无法正常工作,但下载文件并打开它可以正常工作,这意味着我仍然有一个备份以及我一直创建的 ZIP 备份。我有一个庞大的项目,如何 clear/rollback 搞得一团糟?

终端日志:

C:\Users\X\Documents\Projects\X>git lfs migrate import
migrate: override changes in your working copy? [Y/n] y
migrate: changes in your working copy will be overridden ...
migrate: Fetching remote refs: ..., done.
migrate: Sorting commits: ..., done.
migrate: Rewriting commits: 100% (2/2), done.
  master        f42b3a9d9874f2da0922 -> 7a1881a54a114be8474
migrate: Updating refs: ..., done.
migrate: checkout: ..., done.

C:\Users\X\Documents\Projects\X>git lfs migrate info
migrate: Fetching remote refs: ..., done.
migrate: Sorting commits: ..., done.
migrate: Examining commits: 100% (2/2), done.
*.xml   109 KB  845/845 files(s)        100%
*.kt    80 KB   621/621 files(s)        100%
*.png   22 KB   173/173 files(s)        100%
*.ttf   1.6 KB    12/12 files(s)        100%
*.apk   1.2 KB      9/9 files(s)        100%

C:\Users\X\Documents\Projects\X>git push -u origin master
Uploading LFS objects: 100% (1695/1695), 1.4 GB | 3.7 MB/s, done.
Enumerating objects: 3332, done.
Counting objects: 100% (3332/3332), done.
Delta compression using up to 16 threads
Compressing objects: 100% (1823/1823), done.
Writing objects: 100% (1852/1852), 256.98 KiB | 735.00 KiB/s, done.
Total 1852 (delta 7), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (7/7), completed with 3 local objects.
To https://github.com/X/X.git
   6ee589d..7a1881a  master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

此外,现在我在 Android Studio 中看不到 Git,甚至在上面的 VCS 菜单中也没有选项。我检查了整个项目,它从每个文件中删除了代码,甚至从 gradle 文件、.idea 配置文件、文本文件等

我已经解决了这个对我来说很新的问题。它可能会对其他人有所帮助。

所以,我想做的是支持大文件,我使用了 git lfs 但是因为我已经提交了代码,所以我不得不使用 git lfs migrate import which edits already committed changes and add存储库中“假定”的大文件能够存储大文件。

但是,此命令添加了所有文件并提供了 Torek 评论中提到的指针。

我阅读了他们的帮助文档并解决了这个问题,首先我 运行 命令 git lfs checkout 将文件的原始内容从 repo 恢复到本地文件,然后我删除了所有添加到 .gitattributes 的文件类型,除了少数我首先使用 git lfs 的文件。 git lfs 适用于 .gitattributes

然后,我刚刚做了一个新的提交和推送,现在一切正常。半夜的地狱之旅,让我睡不着觉。