所以我有一个超过100mb的文件,GitHub并不喜欢。所以我拆分了文件,并做了一个新的提交。所以现在远程有2个提交。 1表示> 100mb,1表示2< 100mb文件。当我推动时,由于> 100mb文件而感到不安,即使在最新版本中不存在。我怎样才能解决这个问题?我不是特别需要提交的提交,无论如何我可以将2个提交变成1个提交(实际上它因为之后的其他工作而在原点/主控之前说9个)?
$ git push origin develop
Counting objects: 103, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (101/101), done.
Writing objects: 100% (103/103), 50.28 MiB | 3.42 MiB/s, done.
Total 103 (delta 72), reused 0 (delta 0)
remote: Resolving deltas: 100% (72/72), completed with 27 local objects.
remote: warning: File lib/seeder/data/sessions_1.sql is 75.61 MB; this is larger than GitHub's recommended maximum file size of 50.00 MB
remote: warning: File lib/seeder/data/sessions_2.sql is 90.60 MB; this is larger than GitHub's recommended maximum file size of 50.00 MB
remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.
remote: error: Trace: a1f8d12ad4bb23a87c60a694b5a48a9e
remote: error: See http://git.io/iEPt8g for more information.
remote: error: File lib/seeder/data/sessions.sql is 166.21 MB; this exceeds GitHub's file size limit of 100.00 MB
To https://github.com/me/backend.git
! [remote rejected] develop -> develop (pre-receive hook declined)
error: failed to push some refs to 'https://github.com/me/backend.git'
$ git status
On branch develop
Your branch is ahead of 'origin/develop' by 9 commits.
(use "git push" to publish your local commits)
nothing to commit, working directory clean
答案 0 :(得分:0)
您需要做的是“历史重写”,这可能是作为交互式rebase完成的。确切的命令取决于一些事情。如果您正在一个跟踪远程分支的分支上,并且您没有任何分支并且在原始内容和本地内容之间进行合并,那么
git rebase -i
可能足以让流程开始。如果这是初始推送,您可能需要执行类似
的操作git rebase -i --root
很难涵盖所有可能性,因此如果不清楚您需要什么命令,您可以查阅rebase文档(https://git-scm.com/docs/git-rebase)或者可能提供有关您的仓库当前状态的更多信息(或你怎么到达你的位置。)
这将打开一个带有“todo”列表的文本编辑器,每行显示一次提交。
现在潜在的问题是,你提到有类似7其他提交的内容。如果分解文件的提交是在创建它的提交之后立即进行的,则没有问题。只需找到破坏文件的提交行,并将其第一个单词从“pick”更改为“squash”。这会将它与先前的提交(创建文件)相结合,有效地丢弃先前提交的TREE
。
如果它们不是“背靠背”,那么您可以重新排序提交。移动用于破坏文件的提交的行,以便在创建文件的提交之后立即显示,然后将其从“pick”更改为“squash”。这可能会也可能不会干净利落。 (也就是说,可能存在冲突,因为更改会“无序”重播。)