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