git init|add|rm|commit|status|log|config
mkdir git-hallo-welt
cd git-hallo-welt
git init
ls -la # Windows: dir
git status
echo "hallo welt" >> hallowelt.txt # nur unix
git add hallowelt.txt
git status
git rm hallowelt.txt
git rm --cached hallowelt.txt
git add hallowelt.txt
git commit -m "mein erster commit"
git config --global user.email "myemail@example.com"
git config --global user.name "My Username"
# Commit mit neuem Namen ändern
git commit --amend --reset-author
# Konfiguration anzeigen
git config --local --list
git config --global --list
git help log
git log # Wo ist die Revisionsnummer? (Short Hash)
# Kurze Anzeige
git log --oneline
# Nach Autor filtern
git log --author="Tilman Potthof"
# Benutzerdefinierte Formattierung
git log --pretty=format:"%h %s"
git help log
git add|reset|checkout|diff
git status
# Datei bearbeiten
git status
git diff
# Datei hinzufügen
git add <dateiname>
git status
git diff
git diff -r head
git diff -r <hash>
git status
# Zurücksetzen
git reset <dateiname>
git status
# Dateiinhalt prüfen
# Varianten
git reset head -- <dateipfad>
git status
# Zurückholen
git checkout <dateiname>
git status
# Dateiinhalt prüfen
# Varianten
git checkout head <dateiname>
git checkout -r <hash> .
# Alle überwachten Dateien committen
git commit -a -m "Wichtiger commit"
# Partielles/Interaktives Hinzufügen
git add -p
git clone|pull|push|(fetch)|remote
git clone https://github.com/tilmanpotthof/git-workshop
Besonderheit, um Änderungen privat zu halten. Normalerweise nicht notwendig.
# Vorbereitung: Änderungen hinzufügen und committen
# Auf den Server pushen
git push origin master
git push ## Kurzform
# Änderungen vom Server holen
git pull # (origin master)
git remote -v
git remote add github-public https://github.com/tilmanpotthof/git-workshop
git pull github-public master
git fetch -p
git fetch -p github-public
git branch|merge|rebase
git checkout -b mein-neuer-branch
# Lange Fassung
git branch mein-neuer-branch
git checkout mein neuer-branch
# Branches anzeigen
git branch
git branch -a
git checkout name-des-remote-branches
# Mapping auf anderen Namen
git checkout -b mein-lokaler-branch origin/mein-neuer-branch
# Neuen lokalen Branch pushen
git checkout -b noch-ein-neuer-branch
git push -u origin noch-ein-neuer-branch
git branch -d mein-neuer-branch
git branch -D mein-neuer-branch
git checkout master
git merge mein-neuer-branch
git merge --no-ff noch-ein-neuer-branch
git checkout -b rebase-test
# 3 Dateien anlegen A, B, C und einzeln Committen
git rebase -i HEAD~3
# Commits aus squash ändern und Kommentar anpassen