Skip to content

Git-Befehle Cheat Sheet

Git ist ein Open-Source-System zur verteilten Versionsverwaltung, das die Versionsverwaltung von Projekten von sehr klein bis sehr groß effizient und mit hoher Geschwindigkeit bewältigen kann. Git ist eine Open-Source-Software zur Versionsverwaltung, die von Linus Torvalds entwickelt wurde, um die Entwicklung des Linux-Kernels zu unterstützen.

Git-Grundlagen

git init <directory>

Erstellt ein leeres Git-Repository im angegebenen Verzeichnis. Wenn ohne Parameter ausgeführt, wird das aktuelle Verzeichnis als Git-Repository initialisiert.

git clone <repo>

Klont das Repository unter <repo> auf den lokalen Rechner. Das ursprüngliche Repository kann sich auf dem lokalen Dateisystem oder auf einem entfernten Rechner über HTTP oder SSH befinden.

git config user.name <name>

Definiert den Autorennamen, der für alle Commits im aktuellen Repository verwendet werden soll.

git add <directory>

Fügt die Änderungen im Verzeichnis <directory> für den nächsten Commit hinzu.

git commit -m "<message>"

Übernimmt den Snapshot der Staging-Area, wobei <message> als Commit-Nachricht verwendet wird.

git status

Listet auf, welche Dateien gestaget, nicht gestaget und nicht verfolgt sind.

git log

Zeigt die gesamte Commit-Historie im Standardformat an.

git diff

Vergleicht die Unterschiede zwischen dem Arbeitsverzeichnis (noch nicht mit git add hinzugefügt) und der Staging-Area (nach git add).

Änderungen rückgängig machen

git revert <commit>

Erstellt einen neuen Commit, der alle in <commit> vorgenommenen Änderungen rückgängig macht, und wendet ihn auf den aktuellen Branch an.

git reset <file>

Entfernt <file> aus der Staging-Area, lässt aber das Arbeitsverzeichnis unverändert. Dies hebt das Staging einer Datei auf, ohne Änderungen zu überschreiben.

git clean -n

Zeigt an, welche Dateien aus dem Arbeitsverzeichnis entfernt werden. Verwenden Sie das Flag -f anstelle von -n, um die Bereinigung tatsächlich durchzuführen.

Historie umschreiben

git commit --amend

Ändert das letzte Git-Commit-Ereignis. Wenn das Arbeitsverzeichnis commit-fähige Änderungen enthält, werden diese Änderungen ebenfalls mit dem Befehl git commit –amend übernommen.

git rebase <base>

Setzt den aktuellen Branch auf <base> zurück. <base> kann eine Commit-ID, ein Branchname, ein Tag oder HEAD sein.

git reflog

Ermöglicht das Anzeigen aller Aufzeichnungen aller Branches (einschließlich gelöschter Commits und Reset-Operationen).

Git-Branching

git branch

Listet alle Branches auf. Fügen Sie einen Parameter <branch> hinzu, um einen neuen Branch mit dem Namen <branch> zu erstellen.

git checkout -b <branch>

Erstellt und wechselt zu einem neuen Branch namens <branch>. Lassen Sie -b weg, um zu einem bestehenden Branch zu wechseln.

git merge <branch>

Führt den Branch <branch> in den aktuellen Branch zusammen.

Remote-Repositorys

git remote add <name> <url>

Fügt ein neues Remote-Repository hinzu. Nach dem Hinzufügen des Remotes können Sie <name> als Abkürzung für <url> in anderen Befehlen verwenden.

git fetch <remote> <branch>

Ruft alle Aktualisierungen des angegebenen <branch> vom Repo ab, führt sie aber nicht mit dem lokalen Branch zusammen.

git pull <remote>

Ruft die angegebene Remote-Kopie des aktuellen Branches ab und führt sie sofort in die lokale Kopie zusammen.

git push <remote> <branch>

Überträgt den Branch nach <remote>, zusammen mit den erforderlichen Commits und Objekten. Wenn das Remote-Repo nicht existiert, wird ein benannter Branch im Remote-Repo erstellt.

git config

git config --global user.name <name>

Definiert den Autorennamen für alle Commits des aktuellen Benutzers.

git config --global user.email <email>

Definiert die E-Mail-Adresse des Autors für alle Commits des aktuellen Benutzers.

git config --global alias.<alias-name> <git-command>

Erstellt eine Abkürzung (Alias) für einen Git-Befehl.

git config --system core.editor <editor>

Legt den Texteditor fest, der von Befehlen für alle Benutzer auf dem Computer verwendet wird.

git config --global --edit

Öffnet die globale Konfigurationsdatei zur manuellen Bearbeitung in einem Texteditor.

git log

git log -<limit>

Zeigt die letzten <limit> Einträge der Commit-Historie an.

git log --oneline

Zeigt die Commit-Historie an, wobei jeder Commit auf eine Zeile komprimiert wird.

git log -p

Zeigt die Commit-Historie an und zeigt den vollständigen Diff für jeden Commit.

git log --stat

Zeigt die Commit-Historie an, einschließlich der geänderten Dateien und der relativen Anzahl der hinzugefügten oder gelöschten Zeilen in jeder Datei.

git log --author="<pattern>"

Sucht nach Commits eines bestimmten Autors.

git log --grep="<pattern>"

Durchsucht die Commit-Historie mittels regulärer Ausdrücke.

git log <since>..<until>

Zeigt Commits an, die zwischen <since> und <until> stattgefunden haben.

git log -- <file>

Zeigt nur Commits an, die die angegebene Datei enthalten.

git diff

git diff HEAD

Vergleicht die Unterschiede zwischen dem Arbeitsverzeichnis (noch nicht mit git add hinzugefügt) und dem Repository (nach git commit).

git diff --cached

Vergleicht die Unterschiede zwischen der Staging-Area (nach git add) und dem Repository (nach git commit).

git reset

git reset

Setzt die Staging-Area auf den Stand des letzten Commits zurück, lässt aber das Arbeitsverzeichnis unverändert.

git reset --hard

Setzt sowohl die Staging-Area als auch das Arbeitsverzeichnis auf den Stand des letzten Commits zurück und überschreibt alle Änderungen im Arbeitsverzeichnis.

git reset <commit>

Setzt den Zeiger des aktuellen Branches auf <commit> zurück und setzt die Staging-Area zurück, ändert aber das Arbeitsverzeichnis nicht.

git reset --hard <commit>

Gleich wie oben, setzt aber sowohl die Staging-Area als auch das Arbeitsverzeichnis zurück. Löscht nicht committete Änderungen und alle Commits nach <commit>.

git pull

git pull --rebase <remote>

Ruft die Remote-Kopie des aktuellen Branches ab und führt ein Rebase auf die lokale Kopie durch. Verwendet git rebase anstatt Merge, um Branches zu integrieren.

git push

git push <remote> --force

Erzwingt das Hochladen (Force Push).

git push <remote> --all

Überträgt alle lokalen Branches in das angegebene Remote-Repository.

git push <remote> --tags

Überträgt alle lokalen Tags in das Remote-Repository.