Files
2026-05-06 06:03:36 +02:00

1.6 KiB

Git

Allgemeines

Git arbeitet grob mit drei Bereichen:

  1. Working Directory → deine aktuellen Dateien (wo du arbeitest)
  2. Staging Area (Index) → „Warteliste“ für den nächsten Commit
  3. Repository → gespeicherte Commits (Historie)

Löschen aller auf deleted stehenden Dateien mit einem Rutsch

Wenn Git sagt, Dateien sind „deleted“, dann:

  • sie sind im Working Directory gelöscht
  • aber noch nicht gestaged

git ls-files --deleted -z | xargs -0 git rm

Unnötige Dateien entfernen (inkl. aus der Historie)

Große Dateien finden

git rev-list --objects --all | sort -k 2 > all-files.txt

git gc && git verify-pack -v .git/objects/pack/pack-*.idx | sort -k 3 -n | tail -20

Alte Branches löschen

Lokale Branches, die nicht mehr gebraucht werden

git branch -d <branch>

Remote-Branches löschen

git push origin --delete <branch>

Git-Objekte bereinigen (lokal)

Wenn man keine History ändern willst, sondern einfach „aufräumen“ will:

git gc --prune=now --aggressive

Einzelne Commits aus den letzten Commits entfernen

z.B die letzten 5 Mit git rebase -i (interaktiv)

Man kann die letzten Commits durchgehen und gezielt entfernen oder ändern git rebase -i HEAD~5

Es öffnet sich ein Editor mit so etwas wie:

pick d4e5f6 Add logo
pick 123abc Large debug file (REMOVE THIS)
pick 789def Update README

Ändere pick → drop oder lösche die Zeile: drop 123abc Large debug file

Nur bei Commits, die nicht bereits gepusht wurden, ist das gefahrlos. Wenn sie bereits gepusht sind, muss man danach git push --force machen.