Der GIT-Befehls-Spickzettel ist eine praktische Referenz für Entwickler und enthält die am häufigsten verwendeten Befehle für GIT-Projekte.
Was ist GIT?
GIT ist ein Open-Source-Repository, in dem Benutzer ihre Dateien ablegen können, darunter Code, Zips, Text oder das gesamte Projekt.
Es verfügt über verschiedene Funktionen, wie Zusammenarbeit, Versionskontrolle, Prozesskontrolle, usw. GIT speichert Dateien effizienter und bietet eine bessere Integrität als andere Versionskontrollsysteme. Git ist ein Befehlszeilen-Tool.
Was ist GitHub?
Mit seiner übersichtlichen Benutzeroberfläche hat sich GitHub, ein Knotenpunkt für Entwickler, zum am weitesten verbreiteten Versionskontrollsystem entwickelt und ist für jedermann und überall zugänglich.
Git Arbeitsablauf
Git verfügt über verschiedene Workflows, und jedes Projekt sollte einen auf seine Anforderungen abgestimmten Workflow haben. Der Git-Workflow ist nichts anderes als ein leichtgewichtiger, verzweigungsbasierter Workflow, der Teams hilft, die regelmäßig Projekte bereitstellen.
Ein Git-Workflow mit Forking erstellt beispielsweise eine lokale Kopie des Repositorys. Jeder Entwickler hat also einen lokalen Arbeitsbereich und ein zentrales Repository. Diese Art von Arbeitsablauf ist gut, wenn mehrere Entwickler beteiligt sind und ermöglicht es den Entwicklern, gemeinsam an der Fork-Kopie zu arbeiten, bevor sie Änderungen am Haupt-Repository vornehmen.
Warum brauchen wir Git?
Da Git ein Versionskontrollsystem ist, arbeiten Entwickler ständig daran, ihre Änderungen zu speichern, sie für andere sichtbar zu machen, ihre Änderungen mit anderen zusammenzuführen und vieles mehr.
Für jede Änderung am Git-Repository müssen die Entwickler die richtigen Befehle für die richtige Aktion kennen. Im Folgenden finden Sie eine Liste der wichtigen und häufig verwendeten Git-Befehle:
Allgemeine Git-Befehle
git add
Um die angegebene(n) Datei(en) zum Staging hinzuzufügen
git add <Datei> -- eine bestimmte Datei hinzufügen
git add * -- alle Dateien hinzufügen
git archivieren
Erzeugt Archive von Commits, Branches und Trees und fasst mehrere Dateien zu einer zusammen. Sie können den Inhalt abrufen, indem Sie die Dateien bei Bedarf extrahieren
git archive HEAD
— erstellt ein Archiv aus der HEAD-Referenz des Repo
git archive output = '.tar'
— speichert die archivierten Dateien an dem angegebenen Ort
git archive --format=tar.gz
— gibt das Format der archivierten Datei an, wie tar, zip, tar.gz
git branch
Listet alle Zweige des Repositorys auf. Ein neuer Zweig mit dem Namen wird erstellt, wenn ein Zweig angegeben wird. Um einen Zweig zu löschen, verwenden Sie die Option -d mit dem Namen des Zweigs. Um einen aktuellen Zweig umzubenennen, verwenden Sie -m.
git branch
— listet alle Zweige auf<a href="https://geekflare.com/how-to-create-a-new-git-branch/">git branch</a> <branch_name> -- erstellt einen neuen Zweig mit dem Namen 'branch_name', checkt den neuen Zweig aber nicht aus.<br><br><code>git branch -d <branch_name>
— löscht die Verzweigung, verhindert aber das Löschen, wenn es noch nicht gemerkte Änderungen gibtgit branch -D <branch_name>
— erzwingt das Löschen der Verzweigung, auch wenn noch nicht gemerkte Änderungen vorhanden sindgit branch -m <branch2>
— benennt den aktuellen Zweig um
git cat-file
Inhalt oder Größe/Typ-Informationen von Repository-Objekten anzeigen
git cat-file <Objekt>
— zeigt den Inhalt des Objekts angit cat-file -t <Objekt>
— zeigt den Typ des Objekts angit cat-file -s <Objekt>
— zeigt die Größe des Objekts angit cat-file -p <Objekt>
— gibt den Typ des Objekts in einer hübschen Art und Weise ausgit cat-file -e <Objekt>
— zeigt den Fehler auf stderr an, wenn das Objekt ein ungültiges Format hat oder nicht existiertgit cat-file <Typ> <Objekt>
— zeigt den Rohinhalt eines Objekts an
git checkout
Um zwischen verschiedenen Zweigen eines Repositorys zu wechseln, verwenden Sie diese Funktion mit Bedacht, da es dafür kein ‘Undo’ gibt.
git checkout <branch_name>
— checkt den angegebenen Zweig ausgit checkout -b <branch_name>
— erstellt einen neuen Zweig und wechselt zu diesem Zweig
Zum Beispiel:
C:\Users\geekflare>git checkout -b development_branch
Zu einem neuen Zweig 'development_branch' gewechselt
git clean
Räumt das Arbeitsverzeichnis auf. Dateien, die übertragen wurden, werden nicht entfernt
git clean -n
— listet die Dateien auf, die entfernt werden sollengit clean -f
— Entfernt die Dateien
git clone
Erstellt eine Kopie des bestehenden Repos in ein neues Verzeichnis. Nützlich, um eine Entwicklungskopie eines zentralen Repo zu erhalten.
git clone <zentrales_repo> <neues_verzeichnis>
— erstellt eine Kopie des zentralen Repos in ein neues Verzeichnis
Zum Beispiel:
C:\Users\geek>git clone geekflare master
Klonen in 'master'...
erledigt.
git clone -branch <branch> <repo>
— klont einen Zweig aus dem genannten Repository
git commit
Speichert die Änderungen in einer Staging-Umgebung, damit andere sie sehen können.
git commit
— überträgt die Änderungen in die Staging-Umgebunggit commit -m <nutz_msg>
— gibt bei der Übergabe eine Nachricht aus, um die vorgenommenen Änderungen hervorzuhebengit commit -a
— überträgt die Änderungen direkt, ohne Staging
Nehmen wir an, Sie haben eine Datei mit dem Namen samplefile.txt zu Ihrem Arbeitsverzeichnis hinzugefügt und möchten die Datei übertragen. Wenn Sie den obigen Befehl eingeben, erhalten Sie die folgende Ausgabe:
Bitte geben Sie die Commit-Nachricht für Ihre Änderungen ein. Zeilen, die
mit '#' beginnen, werden ignoriert, und eine leere Nachricht bricht die Übergabe ab.
Auf Zweig master
Erste Übergabe
Zu übergebende Änderungen:
neue Datei: samplefile.txt
Sobald Sie die Nachricht eingeben, werden die Änderungen übertragen:
C:\Users\geekflare>git commit -m 'samplemsg'
[integration_branch (root-commit) ed52dd0] 'samplemsg'
1 Dateien geändert, 24 Einfügungen( )
create mode 100644 samplefile.txt
git-Konfiguration
Gibt die Konfigurationsebene an, in die ein Eigenschaftswert geschrieben werden soll. Die Ebene ‘Local’ ist die Standardeinstellung (wenn nichts angegeben wird).
git config -local
— speichert die Konfiguration im .git Verzeichnis des Repogit config -global
— speichert die Konfiguration im Heimatverzeichnis des Benutzersgit config -system
— enthält die Konfiguration aller Benutzer und Repositories und befindet sich in der git config Datei des Stammverzeichnisses.
git diff
Vergleicht die Änderungen im Git Repo, was vor dem Staging, beim Staging und nach dem Staging (Commit) möglich ist.
git diff
— Verfolgt die Änderungen im Projektarchiv, die noch nicht ins Staging gestellt wurdengit diff --staged
— Verfolgt die Änderungen an den bereitgestellten Dateien (die nicht übertragen werden)git diff HEAD
— verfolgt die Datei-Änderungen nach dem Commitgit diff <commit1_id> <commit2_id>
— verfolgt Änderungen zwischen zwei Commits; Sie können die commit_ids mit'git log -p --follow --filename
‘ herausfinden
git fetch
Holen Sie einen Zweig oder das gesamte entfernte Repository
git fetch <remote-url>
— holt das gesamte Repository von der URL des entfernten Repositorysgit fetch <branch_url> <branchname>
— holt einen bestimmten Zweiggit fetch -all
— holt alle Zweige eines entfernten Projektarchivsgit fetch origin
— aktualisiert und synchronisiert das lokale Projektarchiv mit den neuen Änderungen im entfernten Projektarchiv
git fsck
DerBefehl File System ChecKprüft die Gültigkeit und Konnektivität von Datenbankobjekten. Er prüft die SHA-1ID der Objekte und die Verbindungen, die sie herstellen. Fsck ist nützlich, um verlorene Commits und Dateien wiederherzustellen.
git fsck -full
git gc
Führt eine Garbage Collection für das aktuelle Repository durch und bereinigt nicht verwendete Dateien.
git gc
git grep
Sucht nach bestimmten Inhalten im Repository. Git bietet viele Optionen, um auf unterschiedliche Weise zu suchen
git grep -i 'search_term'
— Suche ohne Berücksichtigung der Groß- und Kleinschreibung [Man und man sind gleich]git grep -f <Dateiname>
— zeigt übereinstimmende Muster einer bestimmten Datei angit grep -e 'Suchbegriff'
— verwendet -e für den Mustervergleichgit grep -E 'regexp|multiple_exp'
–Sucht nach regulären Ausdrücken, wir können mehrere suchen, indem wir den Pipe (OR) Operator verwendengit grep -n 'expr'
— Präfix Zeilennummer der passenden Zeilegit grep -c 'expr'
— Zeigt die Anzahl der übereinstimmenden Zeilen anstelle der einzelnen Zeilen
git ls-tree
Um den Inhalt eines Baumobjekts aus dem aktuellen Verzeichnis aufzulisten.
git ls -tree -d <Pfad>
— zeigt nur den angegebenen Baumeintrag an, nicht die Kindergit ls -tree -r
— rekursiert in Unterbäumegit ls -tree -l
— zeigt die Größe von Datei-(Blob-)Objekten angit ls -tree --name-only
— zeigt nur die Dateinamen und nicht die lange Ausgabe angit ls -tree --full-name
— zeigt die vollständigen Pfadnamen an und nicht nur den Pfad relativ zum aktuellen Verzeichnis
Beispiel:
C:\Users\geek>git ls-tree --full-tree -r HEAD
100644 blob e883e60087e84f1660a9673ccb86eb0adc4f004d samplefile.txt
100644 blob 1426dc6fbff0677a484b248983a8740ff30fbb80 sample_jsindex.js
git init
Erstellen Sie ein neues leeres Repository. Dies ist der erste Befehl, den Sie ausführen, um ein Git-Projekt zu erstellen.
git init
— erstellt ein .git-Repository im Arbeitsverzeichnis,
Um zum Beispiel ein neues Repository mit dem Namen ‘geekflare’ zu erstellen, geben Sie den folgenden Befehl ein:
$ git init geekflare
Initialisiertes leeres Git-Repository in C:/Users/geek/geekflare/.git/
git instaweb
Benutzeroberfläche zum Durchsuchen des Git-Repositorys über einen Browser. Verwendet das CGI-Skript GitWeb für dasselbe.
git instaweb --httpd=webrick
— startet den Server (httpd) und öffnet den Webbrowser auf der Seite.
Um den Server zu stoppen, verwenden Sie den obigen Befehl mit der Option –stop.
git log
Zeichnet jede Aktivität im Git-Repository auf.
git log
— zeigt die letzten Übertragungen angit log --oneline
— zeigt die Ausgabe als die ersten 7 Zeichen von SHA und die Commit-Nachricht mit einem Commit pro Zeile angit log stat
— zeigt weitere Informationen über die geänderten Dateien an, wie die Anzahl der hinzugefügten/entfernten Zeilen, eine Zusammenfassung der insgesamt geänderten Datensätze, hinzugefügte/entfernte Zeilengit log --patch (oder -p)
— zeigt die geänderten Dateien, die spezifischen Änderungen und deren Speicherort angit log --graph
— Zeigt die Log-Ergebnisse in grafischer Form angit log -<n>
— zeigt die letzte ‘n’ Anzahl von Übertragungen angit log --after=<date/x days/yesterday>
— zeigt alle Übertragungen nach einem bestimmten Datum an. Sie können --before
verwenden, um Commits vor dem angegebenen Datum anzuzeigengit log --author=<author_name>
— zeigt Commits eines bestimmten Autors (Benutzers) an.git log --grep=<commit message>
— filtert Commits anhand der Commit-Nachricht
git merge
Integriert alle Entwicklungsdateien in einen einzigen Zweig, fasst zwei Zweige zusammen und führt mehrere Übertragungen in einem einzigen Verlauf zusammen. Die Zusammenführung hält an, wenn es einen Konflikt gibt, und git präsentiert die Konfliktdateien. Sobald die Konflikte behoben sind, wird die Zusammenführung fortgesetzt.
git checkout -b
— checken Sie zuerst den Zweig aus, der zusammengeführt werden soll
git hinzufügen <Datei>
git commit
— Hinzufügen und Übertragen der Dateien
git checkout master
git merge
— Zusammenführen der Verzweigung mit master
git prune
Löscht (Prunes) die Dateien, die aus dem aktuellen Zweig nicht erreichbar sind. Es handelt sich um einen Aufräumprozess, um nicht verwendete Dateien aus dem Zweig zu entfernen
git prune -n
— löscht nicht, zeigt nur an, was gelöscht werden kanngit prune -v
— zeigt die Ausgabe der vom Prune durchgeführten Aktionen angit prune --progress
— zeigt den Fortschritt des Prune-Vorgangs angit fetch --prune
— löscht alle veralteten Zweige
git pull
Es empfängt Daten von einem entfernten Server in ein Arbeits-Repository. Es aktualisiert den lokalen (Arbeits-)Zweig mit allen aktuellen Dateien aus dem entfernten Repository.
git pull
— holt das entfernte Repositorygit pull <repo URL>
— zieht einen bestimmten entfernten Zweig
git push
Pusht alle lokalen Änderungen in das entfernte Repository. Es handelt sich um einen Upload-Vorgang, der den Befehlen pull und fetches genau entgegengesetzt ist
git checkout master
— checkt den Zweig mit den neuesten Änderungen aus
git push origin master
— verschiebt die Änderungen in das entfernte Repository
Beispiel:
C:\Users\geek>git checkout development_branch
Zum Zweig 'development_branch' gewechselt
C:\Users\geek>git push master development_branch
Aufzählung der Objekte: 4, erledigt.
Zähle Objekte: 100% (4/4), fertig.
Delta-Komprimierung mit bis zu 4 Threads
Komprimierung der Objekte: 100% (3/3), erledigt.
Objekte schreiben: 100% (4/4), 612 Bytes | 204.00 KiB/s, fertig.
Insgesamt 4 (delta 0), wiederverwendet 0 (delta 0), pack-reused 0
An Master
[development_branch] development_branch -> development_branch
Wir können push auch verwenden, um einen entfernten Zweig zu löschen, indem wir den Befehl git push --delete <branch> verwenden.
Zum Beispiel:
C:\Users\geek>git push master --delete development_branch
To master
[deleted] development_branch
git rebase
Kombiniert mehrere Commits aus verschiedenen Zweigen, um einen neuen endgültigen Basis-Commit zu erstellen. Nützlich vor dem Zusammenführen aller Änderungen, um Änderungen aus verschiedenen Zweigen nacheinander (linear) zu übertragen.
git rebase <Zweigname>
— Kombiniert die Commits zu einer endgültigen Base
Falls es Konflikte gibt, lösen Sie diese auf und setzen Sie das rebase fort:git rebase --continue
Um eine Änderung zu überspringen:git rebase --skip
git remote
Überprüft die Konfiguration des entfernten Servers und erlaubt den Verbindungsaufbau zwischen dem entfernten und dem lokalen Server.
git remote
— gibt standardmäßig ‘origin’ zurück, den von Git vorgegebenen Namen des entfernten Serversgit remote -v
— listet Kurznamen und URLs aller verfügbaren Remote-Verbindungen aufgit remote add <Kurzname> <remote url>
— fügt den Remote-Server explizit zu den verfügbaren Verbindungen hinzu. Der Kurzname kann für Git-Befehle verwendet werden, anstatt die gesamte URL anzugeben.git remote remove <remote url/kurzer Name>
— entfernt den entfernten Server aus dem Repository
git zurücksetzen
Geht zu einem früheren Commit zurück und verwirft Änderungen, die nach diesem Commit vorgenommen wurden
git reset <Hash des Commits>
— stellt das Repository auf den angegebenen Commit zurück. Git behält den Commit-Verlauf bei, so dass Sie ein weiteres Reset mit einem anderen Commit (Hash) durchführen können, um ein Reset rückgängig zu machen.
git rm
Entfernt die angegebene Datei aus Git. Sie können die Wirkung von rm mit dem Befehl reset oder checkout rückgängig machen
git rm <Dateiname>
— entfernt die betreffende Datei
Um Dateien aus Git zu entfernen, sie aber in Ihrem lokalen (Staging) zu behalten, verwenden Sie:
git rm --cached
git show
Zeigen Sie jedes Objekt wie Blob, Tree, Commit oder Tag an, indem Sie dessen SHA1 angeben
git show
— ohne Angabe des <Objekts> zeigt die Details der letzten Übertragung auf dem Zweig an.git show <SHA1_id>
— zeigt den Inhalt des Objekts an, der durch seine SHA1-ID spezifiziert wird, z.B. Blob-ID, Tree-ID usw. Um den Typ des Objekts zu überprüfen, verwenden Sie den Befehl git cat-file -t
git show -pretty
— zeigt die Ausgabe in einem hübschen Format an.
Sie können ein eigenes Format angeben:
git show --pretty = 'format:Name: <format>'
Oder Sie können z.B. eines der Formate kurz, vollständig, einzeilig, mittel oder ausführlicher verwenden:
git show --pretty= 'medium'
— dies zeigt den Autor, das Datum, den Titel und die vollständige Commit-Nachricht an
git show --abbrev-commit
— um SHA1 abzukürzen
git stash
Um den Zweig zu wechseln, ohne im aktuellen Zweig zu committen, speichern Sie die nicht-committed Daten sicher
git stash
— speichert den Arbeits- und Indexstandgit stash save <Meldung>
— gibt beim Speichern eine Meldung ausgit stash list
— Zeigt die Liste der gespeicherten Inhalte angit stash apply
— Überträgt die versteckten Änderungen. Um die Änderungen eines bestimmten Stashs zu übernehmen, verwenden Sie die Index-ID des Stashs zusammen mit applygit stash show
— zeigt den Inhalt der versteckten Dateien angit stash drop
— entfernt den letzten Stash aus der Warteschlange
git status
Zeigt den Status des Repositorys und des Stagings an, d.h. den Status vor der Übergabephase. Sie können diesen Befehl nach jedem anderen Git-Befehl, wie dem Hinzufügen, Aktualisieren oder Entfernen einer Datei, verwenden
git status
— zeigt die Änderungen an, die übertragen werden sollen, oder nicht verfolgte (keine Staged) Änderungen
Wenn Sie zum Beispiel eine Datei mit dem Namen samplefile.txt in Ihrem Arbeitsverzeichnis hinzufügen und überprüfen möchten, ob sie hinzugefügt wurde, können Sie den obigen Befehl eingeben. Die Ausgabe sieht dann wie folgt aus:
Auf dem Zweig master
Noch keine Übertragungen
Änderungen, die übertragen werden sollen:
(verwenden Sie "git rm --cached ...", um die Übertragung aufzuheben)
neue Datei: samplefile.txt
git tag
Freundliche Verweise werden verwendet, um Meilensteine oder Referenzpunkte im Code zu kennzeichnen
git tag <tag_name>
— erstellt ein Tag mit dem angegebenen Namengit tag
— listet alle verfügbaren Tags aufgit tag show <tag_name>
— zeigt Details zu dem angegebenen Tag angit tag -l ".*"
— zeigt Tags an, die mit dem angegebenen Muster oder Zeichen übereinstimmen
gitk
Startet die Git-Benutzeroberfläche, die den Inhalt, die Commits, das vollständige Diff und andere Details in einem Fenster anzeigt
gitk
— öffnet das Git-Projektarchiv in einem Fenster zur Visualisierung
git version
Verwenden Sie den Befehl git version, um die Version des von Ihnen verwendeten git zu überprüfen.
C:\Users\geekflare>git version
git version 2.38.0.windows.1
Letzte Worte
In diesem Beitrag haben wir die am häufigsten verwendeten Git-Befehle mit ihren Optionen aufgeführt.
Als Nächstes können Sie sich den GitHub-Anmeldescanner ansehen.