git kann mehr als ich mir merken kann. Daher hier ein paar Dinge, die ich für wichtig oder interessant halte:
((Work in progress – Ideen und Vorschläge erwünscht…))
Änderungen bei jedem git-Commit-Log anzeigen
git log --stat
Zeigt zu jedem commit neben Autor und Datum auch die geänderten Dateien mit einer groben Statistiken über die Anzahl der Änderungen.
lokales File aus Repo löschen aber lokal behalten
z.B. um sie in die .gitignore aufzunehmen
git rm --cached zuLöschendesFile
Repo URL anzeigen und ändern
Nur anzeigen:
git remote -v
Ändern:
git remote set-url origin https://blabla...
git history als bunter Graph
alias glg='git log --graph --pretty=format:"%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cd) %C(bold blue)<%an>%Creset" --abbrev-commit'
alias glga='glg --all'
Anzupassen mit git log --help
und dann /placeholder
Arbeitsverzeichnis „aufräumen“
git clean -fdi
-> lokal aufräumen (remove untracked files etc.)
-i
= interactive
git clean -fdx
-> -x
= außerdem ignored-files aufräumen.
VORSICHT: löscht auch z.B. IntelliJ-Files.
Wenn man IntelliJ-Files aufheben will, dann besser excluden:
git clean -fdx -e '*.iml' -e '.idea'
Ehemals eingecheckte Dateien nun ignorieren
Als Beispiel ignorieren wir *.tmp
-Dateien, welche – angenommen – fälschlich eingecheckt wurden.
vi .gitignore
->*.tmp
eintragen-
Dateien löschen (vereinfachtes Beispiel – nur im akt. Verzeichnis):
git -C rm --cached *.tmp
- Den Löschvorgang einchecken (ein letztes Mal – nun werden sie ja ignoriert):
git commit -m "delete accidently commited tmp-files" git push
git diff zeichenweise (wortweise)
Zeigt auch Unterscheide innerhalb einer Zeile an. Dann sieht man schneller, was man geändert hat, wenn es nur weniger Zeichen oder Wörte innerhalb einer längeren Zeile waren:
git diff --word-diff=plain --word-diff-regex=.