Git Repo Management

Historie anzeigen

jeder Commit wird über einen Hash identifiziert

git log

HEAD bezeichnet den aktuellsten Stand der Datei

Ausgabe einer Ausführlichen Version des logs, anzeige der Änderungen

git log -p

Ausgabe in einer komprimierten Darstellung, Änderungsbeschreibungen bleiben erhalten

git log --oneline

letzten commit überschreiben (nur local verwenden!)

somit ist das erstellen eines neuen commits nicht erforderlich

git commit --amend

Änderungen des working directory zur staging area anzeigen lassen

git diff

Änderungen der staging area zum aktuellen Datenstandes des Repo anzeigen lassen

git diff --cached

unterschiede zwischen zwei commits anzeigen lassen

git diff <hash1> <hash2>

unterschiede zwischen zwei commits anzeigen, nur auf eine Datei beziehen!

git diff <hash1> <hash2> --uebung.cpp

…für mehrere Dateiarten

git diff <hash1> <hash2> --uebung.*

NICHT ONLINE ANWENDEN

Alle Änderungen aus der staging area herausnehmen

git reset

Änderung aus der staging area herausnehmen

git reset <filename>

NICHT ONLINE ANWENDEN

alle commits nach <commit hash>, alle Änderungen bleiben im working directory bestehen

git reset <commit>

löscht alle commits —hard <commit hash>, alle änderungen werden verworfen!

git reset --hard <commit hash>

ACHTUNG: aktuelles Working directory wird dabei überschrieben! zuvor git status zur Überprüfung

zu einem commit springen: checkout

stellt einen Zustand von einem bestimmten commit wieder her

git checkout <commit hash>

git versucht lokale Änderungen zu übernehmen, vorher working directory leeren!

im log werden spätere commits temporär nicht mehr angezeigt

zurück zum Master springen

git checkout master

Änderungen rückgängig machen

erstellt einen neuen commit, der die Änderungen rückgängig macht:

git revert <commit hash>

liste von pfaden die von git ignoriert werden

→ Änderungen an diesen Dateien haben keine Auswirkung auf git diff, git add, etc.


nano .gitignore
leer.txt
*.txt

.gitignore selber muss mit commitet werden!

→ auf github gibt es bereits configurierte Standdarddateien

Dateinen löschen (aus Working directory und staging area)

git rm

Datei bewegen (z.B. umbennen), versionsverlauf wird getracked

git mv

zeile für zeile anzeigen, in welchem commit diese zuletzt geändert wurde

git blame <filename>

gleiche commits farblich hervorheben

git blame --color-lines <filename>