从提交历史记录中删除大于100MB的文件-迁移至Github失败

Kishore

我正在尝试将一个存储库从GitLab迁移到GitHub。存储库大小为685.83MB,由几个.dat,.csv,.exe,.pkl文件组成,文件大小从100MB到3383.40 MB不等。它失败并出现以下错误。

GitLab To GitHub Migration Steps:-
$ git clone --mirror [email protected]:test/my-repo.git
$ cd ~/my-repo.git
$ git remote set-url --push origin [email protected]:test/my-repo.git
$ git push

Error
remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.
remote: error: File Src/project/label/file1.dat is 476.32 MB; this exceeds GitHub Enterprise's file size limit of 100.00 MB
remote: error: File Src/models/label/file2.dat is 2431.49 MB; this exceeds GitHub Enterprise's file size limit of 100.00 MB
remote: error: File test/test1/label/model/file3.exe is 1031.94 MB; this exceeds GitHub Enterprise's file size limit of 100.00 MB
remote: error: File test/test2/usecase/filemarker/file3.csv is 997.02 MB; this exceeds GitHub Enterprise's file size limit of 100.00 MB
remote: error: File src/msg/sports/model.pkl is 3383.40 MB; this exceeds GitHub Enterprise's file size limit of 100.00 MB
remote: error: File test/movie/maker/marker.dat is 1373.45 MB; this exceeds GitHub Enterprise's file size limit of 100.00 MB
remote: error: File project/make/level/project/realmaker.csv is 1594.83 MB; this exceeds GitHub Enterprise's file size limit of 100.00 MB
remote: error: File src/moderm/network/test.pkl is 111.07 MB; this exceeds GitHub Enterprise's file size limit of 100.00 MB

Git LFS/BFG  Method:
$ git clone --mirror gitlab-heavy-repo 
$ cd gitlab-heavy-repo.git 
$ java -jar bfg-1.12.5.jar --convert-to-git-lfs '*.dat' --no-blob-protection
$ java -jar bfg-1.12.5.jar --convert-to-git-lfs '*.exe' --no-blob-protection
$ java -jar bfg-1.12.5.jar --convert-to-git-lfs '*.csv' --no-blob-protection
$ java -jar bfg-1.12.5.jar --convert-to-git-lfs '*.pkl' --no-blob-protection
$ git reflog expire --expire=now --all && git gc --prune=now
$ git lfs install
$ git remote set-url origin [email protected]:some-org/githubheavy-repo.git
$ git push 

即使经过上述过程,它也会因相同的错误而失败。看来Git LFS有2GB的限制。因此,尝试从存储库中完全删除上述较大的文件。请按照以下方法删除。

1) git clone gitlab-heavy-repo
2) cd gitlab-heavy-repo
3) git filter-branch --force --index-filter "git rm --cached --ignore-unmatch Src/project/label/file1.dat" --prune-empty --tag-name-filter cat -- --all
4) git reflog expire --expire=now --all
5) git gc --prune=now
6) git push origin --force --all
7) git push origin --force --tags
8) rm -rf .git/refs/original/

对以上所有较大的文件重复相同的步骤。但是现在在Gitlab存储库中显示了存储大小-1.9-GB最初只是685.83MB.

请纠正我。提前致谢。

木料

将100MiB以上的所有文件添加到.gitignore

find . -size +100M | cat >> .gitignore

如果尚未提交文件,请执行以下操作:

从.gitignore读取文件并将其从回购中删除(而不从磁盘中删除它们):

On Linux:

git ls-files -ci --exclude-standard -z | xargs -0 git rm --cached

On macOS:

alias apply-gitignore="git ls-files -ci --exclude-standard -z | xargs -0 git rm --cached"

On Windows:

for /F "tokens=*" %a in ('git ls-files -ci --exclude-standard') do @git rm --cached "%a"

如果已提交文件:

您需要从提交历史记录中清除它们。运行以下命令从以前的所有提交中删除文件:

On Linux and macOS:

git filter-branch --prune-empty -d ~/tmp/scratch \
  --index-filter "git rm --cached -f --ignore-unmatch PATH/TO/FILE" \
  --tag-name-filter cat -- --all

On Windows:

git filter-branch --prune-empty -d /tmp/scratch \
  --index-filter "git rm --cached -f --ignore-unmatch PATH/TO/FILE" \
  --tag-name-filter cat -- --all

(将PATH / TO / FILE替换为实际文件的路径)
Greg在此处的回答中更好地解释了此命令


如果您需要为文件夹而不是文件运行以上命令,请在第二行-r之后添加一个开关git rm

... \
  --index-filter "git rm -r --cached -f --ignore-unmatch PATH/TO/FOLDER" \
  ...

git rm 可以使用多个参数,因此您可以在第二行中添加多个路径:

... \
  --index-filter "git rm -r --cached -f --ignore-unmatch FILE1 FILE2 FOLDER1 FOLDER2" \
  ...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何删除通过文件上传创建的Github中的特定提交历史记录?

来自分类Dev

如何删除github上的文件更改历史记录?

来自分类Dev

从GitHub历史记录中删除了敏感文件,但我仍然可以访问它

来自分类Dev

为什么提交历史记录时GitHub不显示文件历史记录?

来自分类Dev

在Github中查看文件的提交历史记录时,如何获取提交日期和合并日期?

来自分类Dev

自动从 git commits to github 中删除 >100MB 的文件

来自分类Dev

如何使用GitHub API获取任何分支中仅一个文件的提交历史记录?

来自分类Dev

通过终端从github访问提交历史记录?

来自分类Dev

是否可以编辑 Github 提交历史记录?

来自分类Dev

从git删除历史记录-git命令失败

来自分类Dev

SVN迁移后清理GitHub历史记录中的作者

来自分类Dev

如何清除Code First迁移中的历史记录?

来自分类Dev

如何清除Code First迁移中的历史记录?

来自分类Dev

github是否支持pdf文件的版本历史记录?

来自分类Dev

github是否支持pdf文件的版本历史记录?

来自分类Dev

git / github:从历史记录中删除(但不是从HEAD中删除)一些大的二进制文件

来自分类Dev

在git存储库的历史记录中查找大文件失败

来自分类Dev

有什么办法可以恢复已被代码删除的GitHub存储库和本地保存的提交历史记录?

来自分类Dev

在Sinon中重置存根历史记录失败

来自分类Dev

如何从GitHub存储库中删除大文件(> 100MB)并成功推送?

来自分类Dev

在不丢失历史记录的情况下从托管的 git 服务(Github、Bitbucket)中删除密钥

来自分类Dev

在不更改SHA的情况下将文件和提交历史记录从一个git分支移至另一个

来自分类Dev

我在哪里可以在gitHub网站上看到提交历史记录?

来自分类Dev

github - 如何转到提交历史记录的开头或更快地滚动

来自分类Dev

git p4:迁移完整历史记录-包括集成历史记录

来自分类Dev

flyway - 告诉 flyway 修复迁移表,但保留失败部署的历史记录

来自分类Dev

移至DVCS的旧项目历史记录

来自分类Dev

将“文件历史记录”从Windows 8.1 Pro迁移到Windows 10

来自分类Dev

从历史记录中删除单个提交

Related 相关文章

  1. 1

    如何删除通过文件上传创建的Github中的特定提交历史记录?

  2. 2

    如何删除github上的文件更改历史记录?

  3. 3

    从GitHub历史记录中删除了敏感文件,但我仍然可以访问它

  4. 4

    为什么提交历史记录时GitHub不显示文件历史记录?

  5. 5

    在Github中查看文件的提交历史记录时,如何获取提交日期和合并日期?

  6. 6

    自动从 git commits to github 中删除 >100MB 的文件

  7. 7

    如何使用GitHub API获取任何分支中仅一个文件的提交历史记录?

  8. 8

    通过终端从github访问提交历史记录?

  9. 9

    是否可以编辑 Github 提交历史记录?

  10. 10

    从git删除历史记录-git命令失败

  11. 11

    SVN迁移后清理GitHub历史记录中的作者

  12. 12

    如何清除Code First迁移中的历史记录?

  13. 13

    如何清除Code First迁移中的历史记录?

  14. 14

    github是否支持pdf文件的版本历史记录?

  15. 15

    github是否支持pdf文件的版本历史记录?

  16. 16

    git / github:从历史记录中删除(但不是从HEAD中删除)一些大的二进制文件

  17. 17

    在git存储库的历史记录中查找大文件失败

  18. 18

    有什么办法可以恢复已被代码删除的GitHub存储库和本地保存的提交历史记录?

  19. 19

    在Sinon中重置存根历史记录失败

  20. 20

    如何从GitHub存储库中删除大文件(> 100MB)并成功推送?

  21. 21

    在不丢失历史记录的情况下从托管的 git 服务(Github、Bitbucket)中删除密钥

  22. 22

    在不更改SHA的情况下将文件和提交历史记录从一个git分支移至另一个

  23. 23

    我在哪里可以在gitHub网站上看到提交历史记录?

  24. 24

    github - 如何转到提交历史记录的开头或更快地滚动

  25. 25

    git p4:迁移完整历史记录-包括集成历史记录

  26. 26

    flyway - 告诉 flyway 修复迁移表,但保留失败部署的历史记录

  27. 27

    移至DVCS的旧项目历史记录

  28. 28

    将“文件历史记录”从Windows 8.1 Pro迁移到Windows 10

  29. 29

    从历史记录中删除单个提交

热门标签

归档