How to remove "too large" file from git history?
Answer a question
I added a 212MB file to my folder and committed it and tried to push it. Git told me that the file size was too big so I can't push it. I deleted the file, but it is still shown when I try to push my code.
My actual steps were:
-
I did
git add .
-
Then
git commit -m "New css"
-
Then
git push origin development
-
Then it took a long time to run the above command. It ended with saying "path/to/file/file.mp4 is 212MB which is too big. Failed to push".
-
Then I deleted that file manually.
-
Tried pushing again, same problem.
I was told by other stackoverflow answers to use git filter-branch --tree-filter 'rm -rf path/to/your/file' HEAD
I'm just trying to understand what this means. Will this affect my whole repo or just the above mentioned file? What happens if I manually deleted the file already? So the file path doesn't exist.
For example, since I tried pushing to the development branch, I did git push origin development
. This failed, so assuming the file I'm trying to delete is named Testing.mp4, should this be the code:
git filter-branch --tree-filter 'rm -rf public/uploads/videos/testing.mp4' HEAD
Am I right? Again, this will ONLY delete the video and nothing else?
Answers
Deleting the file from filesystem won't necessary mean removing it from git if it was previously added to the index (git add path/to/file
), but just record a delete operation.
Depending on what you did previously, git may be trying to push your various actions in order: add the file first (which fail due to file size) then delete it.
To actually stop tracking this file you could try to remove it from index: git rm --cached path/to/file
Remember later to always git rm
a problematic file rather than simply deleting it, git rm
will delete the file AND remove it from index at the same time.
A good expanation from manojlds lies here
更多推荐
所有评论(0)