$ git init # Grundlegende Config-Variablen ausgeben und setzen $ git config --global user.email $ git config --global user.name $ git config --global user.email "MyEmail@Zoho.com" $ git config --global user.name "My Name" # Übersicht gängiger Befehle $ git help # Übersicht aller verfügbaren Befehle $ git help -a # Befehlspezifische Hilfe - Bedienungsanleitung # git help $ git help add $ git help commit $ git help init # Zeigt den Branch, nicht-verfolgte Dateien, Änderungen und andere Unterschiede an $ git status # Anderes Wissenswertes über git status anzeigen $ git help status # Fügt eine Datei deinem aktuellen Arbeitsverzeichnis hinzu $ git add HelloWorld.java # Fügt eine Datei aus einem verschachtelten Verzeichnis hinzu $ git add /path/to/file/HelloWorld.c # Reguläre Ausdrücke werden unterstützt! $ git add ./*.java # Liste alle bestehenden Branches und Remotes auf $ git branch -a # Erstelle einen neuen Branch $ git branch myNewBranch # Lösche einen Branch $ git branch -d myBranch # Benenne einen Branch um # git branch -m $ git branch -m myBranchName myNewBranchName # Ändere die Beschreibung eines Branchs $ git branch myBranchName --edit-description # Ein Repo auschecken - wenn nicht anders angegeben ist das der master $ git checkout # Eine Datei auschecken - sie befindet sich dann auf dem aktuellen Stand im Repository $ git checkout /path/to/file # Einen bestimmten Branch auschecken $ git checkout branchName # Erstelle einen neuen Branch und wechsle zu ihm. Wie: "git branch ; git checkout " $ git checkout -b newBranch # Klone learnxinyminutes-docs $ git clone https://github.com/adambard/learnxinyminutes-docs.git # Commit mit Beschreibung erstellen. $ git commit -m "Added multiplyNumbers() function to HelloWorld.c" # Alle veränderten oder gelöschten Dateien außer neue Dateien werden gestaged und dann wird ein Commit erstellt. $ git commit -a -m "Modified foo.php and removed bar.php" # Ändert den letzten Commit (der letzte Commit wird mit einem neuen Commit ersetzt) $ git commit --amend -m "Correct message" # Unterschiede zwischen deinem Arbeitsverzeichnis und dem Index anzeigen $ git diff # Unterschiede zwischen dem Index und dem aktuellsten Commit anzeigen $ git diff --cached # Unterschiede zwischen deinem Arbeitsverzeichnis und dem aktuellsten Commit anzeigen $ git diff HEAD # Unterschiede zwischen dem Index und dem aktuellsten Commit (betrifft nur Dateien im Index) $ git diff --staged # Vielen Dank an Travis Jeffery für die Hinweise. # Zeilennummerierung in grep-Suchergebnissen $ git config --global grep.lineNumber true # Suchergebnisse lesbarer gestalten, auch Gruppierungen sind möglich $ git config --global alias.g "grep --break --heading --line-number" # Suche nach "variableName" in allen java-Dateien $ git grep 'variableName' -- '*.java' # Suche nach eine Zeile, die "arrayListName" und "add" oder "remove" enthält $ git grep -e 'arrayListName' --and \( -e add -e remove \) # Zeige alle Commits $ git log # Zeige die Anzahl n an Commits $ git log -n 10 # Zeige nur Merges an $ git log --merges # Merge den angegebenen Branch in den aktuellen. $ git merge branchName # Erstelle immer einen Merge-Commit. $ git merge --no-ff branchName # Umbenennen $ git mv HelloWorld.c HelloNewWorld.c # Verschieben $ git mv HelloWorld.c ./new/path/HelloWorld.c # Umbenennung oder Verschieben erzwingen # "existingFile" besteht schon im Verzeichnis, wird überschrieben mit "myFile" $ git mv -f myFile existingFile # Update deines lokalen Repos, indem ein Merge der neuen Änderungen # von den remote-liegenden "origin"- und "master"-Branches durchgeführt wird. # git pull # git pull => impliziter Verweis auf origin und master $ git pull origin master # Führt einen Merge von Änderungen eines remote-Branch und ein Rebase # des Branch-Commits im lokalen Repo durch. Wie: pull , git rebase " $ git pull origin master --rebase # Führe Push und Merge von Änderungen des lokalen Repo zu einem # remote-Branch namens "origin" und dem "master"-Branch aus. # git push # git push => impliziter Verweis auf => git push origin master $ git push origin master # Rebase "experimentBranch" in den "master"-Branch # git rebase $ git rebase master experimentBranch # Setze die Staging-Area zurück, um dem letzten Commit zu entsprechen (das Verzeichnis bleibt unberührt) $ git reset # Setze die Staging-Area zurück, um dem letzten Commit zu entsprechen und überschreibe das Arbeitsverzeichnis $ git reset --hard # Bewegt die Spitze des Branches zu dem angegebenen Commit (das Verzeichnis bleibt unberührt) # Alle Änderungen bleiben im Verzeichnis erhalten $ git reset 31f2bb1 # Bewegt die Spitze des Branches zurück zu dem angegebenen Commit # und gleicht die Arbeitsverzeichnisse ab (löscht nicht vom Commit erfasste Änderungen und alle Commits, # die dem angegebenen Commit folgen). $ git reset --hard 31f2bb1 # Entferne HelloWorld.c $ git rm HelloWorld.c # Entferne eine Datei aus einem verschachtelten Verzeichnis $ git rm /pather/to/the/file/HelloWorld.c