Git hinzugefügt
This commit is contained in:
@@ -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.
|
||||
Reference in New Issue
Block a user