Inhalte rund um Versionsverwaltung mit Git und die Plattform GitHub
| Kategorie / Kombination | Beschreibung / Funktion |
|---|---|
|
git init Terminalbefehle/ Optionen |
Initialisiert ein neues lokales Git-Repository |
|
git clone [url] Terminalbefehle/ Optionen |
Klont ein Remote-Repository (z.B. von GitHub) auf den lokalen Rechner |
|
git status Terminalbefehle/ Optionen |
Zeigt den Status des Arbeitsverzeichnisses und der Staging-Area an |
|
git add [datei] Terminalbefehle/ Optionen |
Fügt eine bestimmte Datei zur Staging-Area hinzu |
|
git add . Terminalbefehle/ Optionen |
Fügt alle geänderten Dateien zur Staging-Area hinzu |
|
git commit -m "[Nachricht]" Terminalbefehle/ Optionen |
Erstellt einen Commit mit den Dateien in der Staging-Area und einer Nachricht |
|
git commit -am "[Nachricht]" Terminalbefehle/ Optionen |
Fügt alle *verfolgten* geänderten Dateien hinzu und erstellt einen Commit |
|
git push Terminalbefehle/ Optionen |
Lädt lokale Commits auf das Remote-Repository hoch |
|
git pull Terminalbefehle/ Optionen |
Holt Änderungen vom Remote-Repository und integriert sie in den lokalen Branch |
|
git fetch Terminalbefehle/ Optionen |
Holt Änderungen vom Remote-Repository, ohne sie zu integrieren (mergen) |
|
git branch Terminalbefehle/ Optionen |
Zeigt alle lokalen Branches an. Der aktuelle Branch ist mit * markiert |
|
git branch [branch-name] Terminalbefehle/ Optionen |
Erstellt einen neuen Branch |
|
git checkout [branch-name] Terminalbefehle/ Optionen |
Wechselt zu einem anderen Branch |
|
git checkout -b [branch-name] Terminalbefehle/ Optionen |
Erstellt einen neuen Branch und wechselt direkt dorthin |
|
git merge [branch-name] Terminalbefehle/ Optionen |
Führt den angegebenen Branch mit dem aktuell ausgecheckten Branch zusammen |
|
git log Terminalbefehle/ Optionen |
Zeigt die Commit-Historie an |
|
git log --oneline Terminalbefehle/ Optionen |
Zeigt die Commit-Historie kompakt (ein Commit pro Zeile) an |
|
git diff Terminalbefehle/ Optionen |
Zeigt ungestagete Änderungen an (Unterschiede zwischen Arbeitsverzeichnis und Staging-Area) |
|
git diff --staged Terminalbefehle/ Optionen |
Zeigt gestagete Änderungen an (Unterschiede zwischen Staging-Area und letztem Commit) |
|
git remote -v Terminalbefehle/ Optionen |
Zeigt die verknüpften Remote-Repositories mit ihren URLs an |
|
git remote add origin [url] Terminalbefehle/ Optionen |
Verknüpft das lokale Repository mit einem Remote-Repository |
|
git reset [datei] Terminalbefehle/ Optionen |
Entfernt eine Datei aus der Staging-Area, behält aber die Änderungen im Arbeitsverzeichnis |
|
git reset --hard [commit-hash] Terminalbefehle/ Optionen |
Setzt Arbeitsverzeichnis und Index komplett auf einen bestimmten Commit zurück (Achtung: ungespeicherte Änderungen gehen verloren!) |
|
git revert [commit-hash] Terminalbefehle/ Optionen |
Erstellt einen neuen Commit, der die Änderungen eines früheren Commits rückgängig macht |
|
git stash Terminalbefehle/ Optionen |
Speichert unfertige Änderungen temporär, um ein sauberes Arbeitsverzeichnis zu erhalten |
|
git stash pop Terminalbefehle/ Optionen |
Stellt die zuletzt gespeicherten (gestashten) Änderungen wieder her und entfernt sie aus dem Stash |
|
git show [commit-hash] Terminalbefehle/ Optionen |
Zeigt die Metadaten und inhaltlichen Änderungen eines bestimmten Commits an |
|
git rm [datei] Terminalbefehle/ Optionen |
Löscht eine Datei aus dem Arbeitsverzeichnis und staget die Löschung |
|
git tag Terminalbefehle/ Optionen |
Zeigt alle vorhandenen Tags an (oft für Versionierung genutzt) |
|
git tag [tag-name] Terminalbefehle/ Optionen |
Erstellt ein Tag für den aktuellen Commit |
|
git rebase [branch-name] Terminalbefehle/ Optionen |
Wendet Commits des aktuellen Branches auf einen anderen Branch neu an (verändert die Historie) |
|
git config --global user.name "[Name]" Terminalbefehle/ Optionen |
Setzt den globalen Benutzernamen für Commits |
|
git config --global user.email "[Email]" Terminalbefehle/ Optionen |
Setzt die globale E-Mail-Adresse für Commits |
|
git switch [branch-name] Terminalbefehle/ Optionen |
Wechselt den Branch (neuere, sicherere Alternative zu git checkout) |
|
git switch -c [branch-name] Terminalbefehle/ Optionen |
Erstellt einen neuen Branch und wechselt dorthin (Alternative zu checkout -b) |
|
git restore [datei] Terminalbefehle/ Optionen |
Verwirft lokale, ungestagete Änderungen an einer Datei (neuere Alternative) |
|
git restore --staged [datei] Terminalbefehle/ Optionen |
Entfernt eine Datei aus der Staging-Area, behält aber die lokalen Änderungen (Unstage) |
|
git commit --amend Terminalbefehle/ Optionen |
Fügt gestagete Änderungen zum letzten Commit hinzu oder erlaubt das Ändern der letzten Commit-Nachricht |
|
git cherry-pick [commit-hash] Terminalbefehle/ Optionen |
Kopiert einen spezifischen Commit aus einem anderen Branch und wendet ihn auf den aktuellen Branch an |
|
git clean -fd Terminalbefehle/ Optionen |
Löscht alle unversionierten (untracked) Dateien und Verzeichnisse aus dem Arbeitsverzeichnis |
|
git stash list Terminalbefehle/ Optionen |
Zeigt eine Liste aller aktuell gespeicherten Stash-Einträge an |
|
git stash drop Terminalbefehle/ Optionen |
Löscht den zuletzt erstellten Stash-Eintrag aus der Liste |
|
git log --graph --oneline --all Terminalbefehle/ Optionen |
Zeigt eine kompakte, visuelle Text-Grafik aller Branches und ihrer Commits |
|
git rebase -i [commit-hash] Terminalbefehle/ Optionen |
Startet einen interaktiven Rebase, um vergangene Commits zu bearbeiten, zusammenzufassen (squash) oder zu löschen |
|
git blame [datei] Terminalbefehle/ Optionen |
Zeigt für jede Zeile einer Datei an, in welchem Commit und von wem sie zuletzt geändert wurde |
|
git grep "[suchbegriff]" Terminalbefehle/ Optionen |
Durchsucht alle von Git verfolgten Dateien nach dem angegebenen Text |
|
git push --force (oder -f) Terminalbefehle/ Optionen |
Erzwingt das Hochladen und überschreibt die Remote-Historie (Achtung: Kann Arbeit von Kollegen überschreiben!) |
|
git fetch --prune Terminalbefehle/ Optionen |
Holt neue Daten vom Remote und löscht gleichzeitig lokale Referenzen auf Branches, die auf dem Server bereits gelöscht wurden |