git gc --aggressive --prune = all entfernt keine große Datei aus dem Repository

Es gibt viele SO-Fragen zum Thema "Entfernen einer versehentlich hinzugefügten großen Datei aus dem Repository", von denen viele die Verwendung von @ vorschlagegit gc Befehl. Allerdings finde ich, dass es bei mir nicht funktioniert und ich weiß nicht, was falsch läuft.

Hier ist was ich getan habe:

$ git init
Initialized empty Git repository in /home/wzyboy/git/myrepo/.git/
$ echo hello >> README
$ git add README 
$ git commit -a -m 'init commit'
[master (root-commit) f21783f] init commit
 1 file changed, 1 insertion(+)
 create mode 100644 README
$ du -sh .git
152K    .git
$ cp ~/big.zip .
$ git add big.zip 
$ git commit -a -m 'adding big file'
[master 3abd0a4] adding big file
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 big.zip
$ du -sh .git
77M .git
$ git log --oneline 
3abd0a4 adding big file
f21783f init commit
$ git reset --hard f21783f
HEAD is now at f21783f init commit
$ git log --oneline 
f21783f init commit
$ git gc --aggressive --prune=all
Counting objects: 6, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (6/6), done.
Total 6 (delta 0), reused 0 (delta 0)
$ git gc --aggressive --prune=now
Counting objects: 6, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (6/6), done.
Total 6 (delta 0), reused 6 (delta 0)
$ du -sh .git
77M .git
$ git version
git version 2.2.2

In der obigen Konsolenausgabe habe ich ein neues Git-Repo erstellt, eine kleine Textdatei hinzugefügt und das.gitas @ -Verzeichnis hat eine Größe von 152 KB, soweit es gut ist. Dann habe ich eine große Datei in das Repo eingefügt und das Verzeichnis ist auf 77M aufgebläht. Nachdem ich jedoch versucht habe, die große Datei zu entfernen git reset --hard odergit rebase -i), Ich kann den von der großen Datei beanspruchten Speicherplatz nicht wiederherstellen, egal wie ichgit gc mit verschiedenen Optionen.

Könnte mir jemand sagen, warumgit gc funktioniert in meinem Fall nicht? Was soll ich tun, um den Speicherplatz wiederherzustellen? Ist es möglich, den Speicherplatz mit @ wiederherzustellegit gc Anstatt vongit filter-branch?

Vielen Dank

Antworten auf die Frage(4)

Ihre Antwort auf die Frage