Git und GitHub

Inhalte rund um Versionsverwaltung mit Git und die Plattform GitHub


Source Control in VS Code
Visual Studio Code has integrated source control management (SCM) that lets you work with Git and other version control systems directly in your editor. Git support is built-in, and you can install extensions for other SCM providers from the Visual Studio Marketplace.

Terminalbefehle / Optionen

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