Git hinzugefügt

This commit is contained in:
2026-04-28 18:46:04 +02:00
parent 919d115961
commit 8ac370e5a7
+57
View File
@@ -0,0 +1,57 @@
# 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 a1b2c3 Fix typo
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.