{"id":18585202,"url":"https://github.com/programmierenm/git-cheat-sheet","last_synced_at":"2025-05-16T06:08:36.939Z","repository":{"id":153346326,"uuid":"584691867","full_name":"ProgrammierenM/git-cheat-sheet","owner":"ProgrammierenM","description":"Git Cheat Sheet mit deutschen Bemerkungen","archived":false,"fork":false,"pushed_at":"2023-01-03T09:18:31.000Z","size":4,"stargazers_count":8,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-17T16:52:27.179Z","etag":null,"topics":["git","gitcommands"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ProgrammierenM.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-03T09:12:54.000Z","updated_at":"2024-06-10T20:47:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"184ff95a-6eff-40aa-9145-a15548d2b38a","html_url":"https://github.com/ProgrammierenM/git-cheat-sheet","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProgrammierenM%2Fgit-cheat-sheet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProgrammierenM%2Fgit-cheat-sheet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProgrammierenM%2Fgit-cheat-sheet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProgrammierenM%2Fgit-cheat-sheet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ProgrammierenM","download_url":"https://codeload.github.com/ProgrammierenM/git-cheat-sheet/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254478193,"owners_count":22077676,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["git","gitcommands"],"created_at":"2024-11-07T00:31:48.795Z","updated_at":"2025-05-16T06:08:31.930Z","avatar_url":"https://github.com/ProgrammierenM.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Git in der Shell // Befehle und Workflow\n\nGit Tutorial Deutsch in der Shell. Grundlegende Anwendung der Git Befehle und Workflows um verschiedene Schritte wieder Rückgängig zu machen oder Konflikte zu beheben. Happy Coding!\n\n[![Tutorial bei Youtube](http://img.youtube.com/vi/v1ibwg3zaQQ/0.jpg)](https://youtu.be/v1ibwg3zaQQ)\n\n## git init\n\nInitialisieren eines neuen Git Repository’s\n\n## git status\n\nPrüft den Zustand aller Projektdateien\n\n```\ngit status // Gibt den Zustand aller Dateien zurück\ngit status -s // Kompaktere Auflistung\n```\n\n## git add\n\nFügt Dateien zum Staging hinzu, welche für den nächsten Commit vorgesehen werden.\n\n```\ngit add \u003cDatei\u003e // Setzt eine einzelne Datei auf Staging\ngit add . // Setzt den aktuellen Zustand aller Dateien auf Staging\n\ngit add --patch \u003cDatei\u003e // Einzelne Hunks auswählen\n```\n\n## git commit\n\nErstellt eine neue Version aus den Dateien welche sich im Staging befinden\n\n```\ngit commit -m \"Nachricht\" // Erstellt eine neue Version aus den Dateien im Staging\ngit commit -am \"Nachricht\" // Überspringt Staging, Neue Dateien werden ignoriert\n```\n\n---\n\n## git log\n\nZeigt die letzten Commits an\n\n```\ngit log // Zeigt die letzten Commits an\ngit log -n 3 // Zeigt die letzten 3\ngit log --graph // Commits mit Graphen\ngit log --oneline --decorate --graph --all\n\ngit reflog // Zeigt alle Referenzen an\n```\n\n## git diff\n\nZeigt alle Unterschiede an zwischen Workspace und Lokales Repository\n\n```\ngit diff // Unterschiede anzeigen lassen\ngit diff --staged // Für Dateien im Staging\n```\n\n---\n\n## git reset\n\nÄnderungen einer/mehreren Dateien und Commits Rückgängig machen\n\n```\ngit reset // Holt alle Dateien aus Staging und behält alle Änderungen\ngit reset \u003cDatei\u003e // gleiches, nur auf angegebene Datei\n```\n\n## git restore\n\nÄnderungen einer Datei Rückgängig machen\n\n```\ngit restore --staged \u003cDatei\u003e // Holt eine Datei aus Staging und behält alle Änderungen.\ngit restore \u003cDatei\u003e // Setzt alle Änderungen einer Datei zurück\n\ngit restore --staged --patch \u003cDatei\u003e // Einzelne Hunks auswählen\n```\n\n## Letzte Commit-Message ändern\n\n```\ngit commit --amend\n// Anschließend öffnet sich dein normaler Editor und\n// du kannst eine neue Commit-Message eingeben\n```\n\n## Eine Änderung dem letzten Commit hinzufügen\n\n```\n// Mach deine Änderung\ngit add . // oder füge einzelne Dateien hinzu\ngit commit --amend --no-edit\n// Jetzt enthält dein letzter Commit auch die neuen Änderungen!\n// WARNUNG: Niemals solltest du \"--amend\" bei einem\n// Commit verwenden, der schon gepusht wurde (es sei denn\n// du bist der einzige Entwickler in dem Repo)\n```\n\n## Letzten Commit Rückgängig machen\n\n```\ngit reset --soft HEAD~ // Macht den letzten Commit rückgängig, --\u003e Staging\ngit reset HEAD~ // letzter Commit Rückgangig, --\u003e Workspace\ngit reset --mixed HEAD~ // gleiches wie zuvor\ngit reset --hard HEAD~ // Löscht alle Änderungen des letzten Commits\n```\n\n## Älteren Commit Rückgängig machen\n\n```\n// Finde den betreffenden Commit\ngit log\n// Verwende die Pfeiltasten um in der History zu scrollen\n// und kopiere dir den Hash des betreffenden Commits\ngit revert [betreffender hash]\n// git erstellt einen neuen Commit, der den gewählten\n// Commit rückgängig macht. Du musst dafür noch eine\n// Commit-Message eingeben oder einfach abspeichern\n```\n\n## Änderungen einer einzelnen Datei Rückgängig machen\n\n```\n// Finde den Hash eines Commits vor deinen Änderungen\ngit log\n// Verwende die Pfeiltasten um in der History zu scrollen\n// und kopiere dir den entsprechenden Hash\ngit checkout [gewählter hash] -- pfad/zur/datei\n// Die alte Version ist jetzt wiederhergestellt\ngit commit -m \"Änderungen an Datei XY Rückgängig gemacht\"\n```\n\n## Etwas komplett verkackt?\n\nDamit kannst du Dateien zurückholen, die du gelöscht hast, oder Dinge rückgängig machen, die dein Repo zerstört haben, oder einen nicht geglückten Merge oder einfach zu einem Stand zurückkehren, als bestimmte Dinge noch funktioniert haben\n\n```\ngit reflog\n// Du siehst eine Liste mit allem, was du in\n// git getan hast, in allen Branches.\n// Jeder Eintrag hat einen Index: HEAD@{index}\n// Finde den Eintrag VOR demjenigen, der alles\n// kaputt gemacht hat\ngit reset HEAD@{index}\n// Alles ist jetzt wieder wie es vorher war\n```\n\n---\n\n## git branch\n\nAnzeigen, Erstellen und Löschen von Branches\n\n```\ngit branch \u003cName\u003e // Erstellt einen neuen Branch\ngit branch -l // Listet alle Branches auf\ngit branch -d \u003cName\u003e // Branch löschen\n```\n\n## git checkout\n\nErstellen und switchen von Branches\n\n```\ngit checkout -b \u003cName\u003e // Erstellen eines neuen Branches\ngit checkout \u003cName\u003e // Wechseln in den angegeben Branch\n```\n\n## git merge\n\nFührt mehrere Entwicklungsstände zusammen\n\n```\ngit merge \u003cBranch\u003e // Merged angegeben Branch in den aktuellen hinein\n\n```\n\n## Ausversehen auf den master commited\n\n```\n// Erstelle einen neuen Branch mit dem Stand des master\ngit branch neuer-branch-name\n// Entferne den letzten Commit vom master\n// und wechsel zum neuen Branch\ngit reset HEAD~ --hard\ngit checkout neuer-branch-name\n// Dein Commit lebt jetzt in dem neuen Branch weiter :)\n```\n\n## Im falschen Branch commited\n\n```\n// Mach den letzten Commit rückgängig, aber erhalte die\n// Änderungen\ngit reset HEAD~ --soft\ngit stash\n// Navigiere zum richtigen Branch\ngit checkout name-des-richtigen-branch\ngit stash pop\ngit add . // oder füge einzelne Dateien hinzu\ngit commit -m \"Deine Nachricht hier\"\n// Jetzt sind die Änderungen auf dem richtigen Branch\n```\n\n```\ngit checkout name-des-richtigen-branch\n// Wähle den letzten Commit vom master\ngit cherry-pick master\n// Und lösche den Commit vom master\ngit checkout master\ngit reset HEAD~ --hard\n```\n\n---\n\n## git remote\n\nMit Remote-Repositories arbeiten.\n\n```\ngit remote add origin \u003cURL\u003e // fügt den remote origin hinzu\ngit remote // zeigt den aktuellen remote origin\ngit remote get-url origin // zeigt die Remote URL\ngit remote show origin // Zeigt alle Informationen zu einem Remote\ngit remote -v // Alle Remotes mit URL's anzeigen\ngit remote rename origin mario // Remote umbenennen\ngit remote remove \u003cname\u003e // entfernt den remote origin\n```\n\n## git clone\n\nEin Remote-Repository lokal klonen/herunterladen. Gesamte git history von jeder Datei des Projektes wird heruntergeladen - .git Ordner initialisiert. Die aktuellste Arbeitskopie wird automatisch ausgecheckt. Somit kann auch ein Projekt welches Online beschädigt wird wiederhergestellt werden.\n\n```\ngit clone \u003curl\u003e // klont das Remote-Repository\ngit clone \u003curl\u003e \u003cverzeichnis\u003e // Name des Projektverzeichnisses bestimmen\ngit clone \u003curl\u003e ./ // aktuelles Vereichnis verwenden\n\ngit remote -v // Schauen was drin steht nach dem klonen\n```\n\n## git push\n\n```\ngit push // push mit default Werten\ngit push -u origin // pushed das lokale Repository ins remote. -u ist der upstream\n```\n\n## git fetch\n\nHolt den Stand aus dem Online Repository\n\n```\ngit fetch origin // Stand holen\n\ngit merge origin/master // merged den lokalen Stand mit dem neuen Stand\ngit rebase origin/master // Falls lokal Commits vorhanden sind\n```\n\n## git pull\n\nHolt den Online-Stand und merged ihn automatisch mit dem lokalen Stand\n\n```\ngit pull origin // Holt den Online Stand\ngit pull origin \u003cBranch\u003e // Holt einen bestimmten Online Branch\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprogrammierenm%2Fgit-cheat-sheet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprogrammierenm%2Fgit-cheat-sheet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprogrammierenm%2Fgit-cheat-sheet/lists"}