Der Spickzettel für GIT-Befehle 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 platzieren können, einschließlich Code, Zips, Text oder das gesamte Projekt.
Es verfügt über mehrere Funktionen wie Zusammenarbeit, Versionskontrolle, Prozesskontrolle usw. GIT speichert Dateien effizienter und bietet eine bessere Integrität als andere Versionskontrollsysteme. Git ist ein Befehlszeilentool.
Was ist GitHub?
Mit seiner übersichtlichen Benutzeroberfläche GitHub, eine Drehscheibe für Entwickler, ist zum am weitesten verbreiteten Versionskontrollsystem geworden und kann von jedem und überall aufgerufen werden.
Git-Arbeitsablauf
Git ist anders workflows, und jedes Projekt sollte basierend auf seinen Anforderungen eine haben. Der Git-Workflow ist nichts anderes als ein einfacher, branchenbasierter Workflow, der Teams hilft, die regelmäßig Projekte bereitstellen.
Beispielsweise erstellt ein Forking-Git-Workflow eine lokale Kopie des Repositorys. Jeder Entwickler hat also einen lokalen Arbeitsbereich und ein zentrales Repository. Diese Art von Workflow ist gut, wenn mehrere Entwickler beteiligt sind, und ermöglicht es Entwicklern, an der gegabelten Kopie zusammenzuarbeiten, 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 alle Änderungen am Git-Repository müssen Entwickler die richtigen Befehle für die richtige Aktion kennen. Nachfolgend finden Sie eine Liste der wichtigsten und häufig verwendeten Git-Befehle:
Allgemeine Git-Befehle
git add
Zum Hinzufügen der angegebenen Datei(en) zum Staging
git add <file> -- add a specific file
git add * -- add all the files
git archive
Erstellt Archive von Commits, Zweigen und Bäumen und kombiniert mehrere Dateien zu einer. Sie können den Inhalt abrufen, indem Sie die Dateien bei Bedarf extrahieren
git archive HEAD
— Erstellen Sie ein Archiv aus der HEAD-Ref des Repos
git archive output = ‘.tar’
— Speichern Sie die archivierten Dateien am angegebenen Ort
git archive --format=tar.gz
— gibt das Format der archivierten Datei an, z. B. tar, zip, tar.gz
git branch
Listet alle Branches im Repository auf. Wenn eine Verzweigung angegeben wird, wird eine neue Verzweigung mit dem Namen erstellt. Verwenden Sie zum Löschen einer Verzweigung die Option -d mit dem Verzweigungsnamen. Um einen aktuellen Zweig umzubenennen, verwenden Sie -m.
git branch
— Listet alle Zweige aufgit branch <branch_name
> — erstellt einen neuen Branch mit dem Namen „branch_name“, checkt den neuen Branch aber nicht aus.git branch -d <branch_name>
— löscht den Zweig, verhindert das Löschen, wenn nicht zusammengeführte Änderungen vorhanden sindgit branch -D <branch_name>
— Erzwingen Sie das Löschen des Zweigs, auch wenn nicht zusammengeführte Änderungen vorhanden sindgit branch -m <branch2>
— Benennen Sie den aktuellen Zweig um
git cat-file
Anzeigen von Inhalts- oder Größen-/Typinformationen von Repository-Objekten
git cat-file <object>
— Zeigt den Inhalt des Objekts angit cat-file -t <object>
— Zeigt den Objekttyp angit cat-file -s <object>
— Zeigt die Größe des Objekts angit cat-file -p <object>
— Drucken Sie den Objekttyp auf hübsche Weise ausgit cat-file -e <object>
— zeigt den Fehler auf stderr, wenn das Objekt ein ungültiges Format hat oder nicht existiertgit cat-file <type> <object>
— zeigt den Rohinhalt eines Objekts
git checkout
Um zwischen verschiedenen Zweigen eines Repositorys zu wechseln, verwenden Sie es mit Bedacht, da es dafür kein "Rückgängigmachen" gibt.
git checkout <branch_name>
— Checkt den angegebenen Zweig ausgit checkout -b <branch_name>
— Erstellen Sie einen neuen Zweig und wechseln Sie zu diesem Zweig
Beispielsweise:
C:\Users\geekflare>git checkout -b development_branch
Switched to a new branch 'development_branch'
git clean
Bereinigen Sie den Arbeitsdirektor. Festgeschriebene Dateien werden nicht entfernt
git clean -n
— Listet die Dateien auf, die entfernt werdengit clean -f
— entfernt die Dateien
git clone
Erstellen Sie eine Kopie des vorhandenen Repos in einem neuen Verzeichnis. Nützlich, um eine Entwicklungskopie eines zentralen Repos zu erhalten.
git clone <central_repo> <new_dir>
— Erstellen Sie eine Kopie des zentralen Repos in einem neuen Verzeichnis
Beispielsweise:
C:\Users\geek>git clone geekflare master
Cloning into 'master'…
done.
git clone -branch <branch> <repo>
— klont einen Branch aus dem erwähnten Repository
git commit
Speichert die Änderungen in einer Staging-Umgebung, damit andere sie sehen können.
git commit
— Änderungen an der Bereitstellung festschreibengit commit -m <useful_msg>
— Gibt beim Commit eine Nachricht aus, um die vorgenommenen Änderungen hervorzuhebengit commit -a
— Übertragen Sie die Änderungen direkt, ohne Staging
Angenommen, Sie haben Ihrem Arbeitsverzeichnis eine Datei namens samplefile.txt hinzugefügt und möchten die Datei festschreiben. Wenn Sie den obigen Befehl eingeben, erhalten Sie die Ausgabe:
Please enter the commit message for your changes. Lines starting
with '#' will be ignored, and an empty message aborts the commit.
On branch master
Initial commit
Changes to be committed:
new file: samplefile.txt
Sobald Sie die Nachricht geben, werden die Änderungen festgeschrieben:
C:\Users\geekflare>git commit -m 'samplemsg'
[integration_branch (root-commit) ed52dd0] 'samplemsg'
1 files changed, 24 insertions(+)
create mode 100644 samplefile.txt
git config
Gibt die Konfigurationsebene an, in die ein Eigenschaftswert geschrieben werden soll. Die Ebene „Lokal“ ist die Standardeinstellung (wenn nichts angegeben ist).
git config –local
— speichert die Konfiguration im .git-Verzeichnis des Reposgit config –global
— speichert die Konfiguration im Home-Verzeichnis des Benutzersgit config –system
— enthält die Konfiguration aller Benutzer und Repositories und befindet sich in der Git-Konfigurationsdatei des Stammverzeichnisses.
git diff
Vergleichen Sie die Änderungen im Git-Repository, die vor dem Staging, beim Staging und nach dem Staging (Commit) vorgenommen werden können.
git diff
— Repo-Änderungen nachverfolgen, die noch nicht bereitgestellt wurdengit diff --staged
— Änderungen von bereitgestellten Dateien nachverfolgen (die nicht festgeschrieben sind)git diff HEAD
— Dateiänderungen nach dem Commit verfolgengit diff <commit1_id> <commit2_id>
— Änderungen zwischen zwei Commits verfolgen; du kannst die commit_ids herausfinden mit 'git log -p --follow --filename
'
git fetch
Rufen Sie einen Zweig oder ein gesamtes Remote-Repository ab
git fetch <remote-url>
— Holen Sie sich das gesamte Repository von der Remote-Repository-URLgit fetch <branch_url> <branchname>
— Holen Sie sich den spezifischen Zweiggit fetch -all
— Alle Zweige eines entfernten Repos abrufengit fetch origin
— Aktualisieren und synchronisieren Sie das lokale Repo mit den neuen Änderungen im Remote-Repo
git fsck
Fs System ChecK Der Befehl prüft die Gültigkeit und Konnektivität von Datenbankobjekten. Es überprü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 die Garbage Collection im aktuellen Repository aus 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 durch Ignorieren der Groß-/Kleinschreibung [Mensch und Mensch werden gleich sein]git grep -f <file_name>
— Übereinstimmungsmuster einer bestimmten Datei anzeigengit grep -e ‘search-term’
— Verwenden Sie -e für den Musterabgleichgit grep -E ‘regexp|multiple_exp’
–Suche nach regulären Ausdrücken, wir können mehrere suchen, indem wir den Pipe-Operator (OR) verwendengit grep -n ‘expr’
— vorangestellte Zeilennummer der übereinstimmenden Zeilegit grep -c ‘expr’
— Zeigen Sie die Anzahl der übereinstimmenden Zeilen anstelle jeder Zeile an
git ls-tree
Um den Inhalt eines Baumobjekts aus dem aktuellen Verzeichnis aufzulisten.
git ls -tree -d <path>
— zeigt nur den angegebenen Baumeintrag, nicht die Kindergit ls -tree -r
— Rekursion in Teilbäumegit ls -tree -l
— Zeigt die Größe von Dateiobjekten (Blobs) angit ls -tree --name-only
— Nur Dateinamen anzeigen und nicht die lange Ausgabegit ls -tree --full-name
— vollständige Pfadnamen anzeigen 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. Es ist der erste Befehl, den Sie ausführen, um ein Git-Projekt zu erstellen.
git init
— erstellt ein .git-Repository im Arbeitsverzeichnis,
Um beispielsweise ein neues Repo namens „geekflare“ zu erstellen, geben Sie den Befehl wie folgt ein:
$ git init geekflare
Initialized empty Git repository in C:/Users/geek/geekflare/.git/
git instaweb
Benutzeroberfläche zum Durchsuchen des Git-Repositorys über einen Browser. Verwendet dafür das CGI-Skript GitWeb.
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 Commits angit log --oneline
— zeigt die Ausgabe als die ersten 7 Zeichen von SHA und die Commit-Nachricht mit einem Commit pro Zeilegit log stat
— zeigt weitere Informationen über die geänderten Dateien an, wie die Anzahl der hinzugefügten/entfernten Zeilen, eine Zusammenfassung der Gesamtzahl geänderter Datensätze, hinzugefügte/entfernte Zeilengit log --patch (or -p)
— Zeigt die geänderten Dateien, die spezifischen Änderungen und ihren Speicherort angit log --graph
— Anzeigen von Protokollergebnissen in Diagrammformgit log -<n>
— Anzeige der letzten 'n' Anzahl von Commitsgit log --after=<date/x days/yesterday>
— zeigt alle Commits nach einem bestimmten Datum an. Sie können verwenden --before
um Commits vor dem angegebenen Datum anzuzeigengit log --author=<author_name>
— Commits eines bestimmten Autors (Benutzers) anzeigen.git log --grep=<commit message>
— Commits basierend auf der Commit-Nachricht filtern
git merge
Integriert alle Entwicklungsdateien in einen einzigen Zweig, kombiniert zwei Zweige und führt mehrere Commits zu einem einzigen Verlauf zusammen. Die Zusammenführung stoppt, wenn es einen Konflikt gibt, und git präsentiert die Konfliktdateien. Sobald die Konflikte gelöst sind, wird die Zusammenführung fortgesetzt.
git checkout -b
— Checke zuerst den Branch aus, der zusammengeführt werden soll
git add <file>
git commit
— Fügen Sie die Dateien hinzu und übertragen Sie sie
git checkout master
git merge
— Führen Sie den Zweig mit dem Master zusammen
git prune
Löscht (Prunes) die Dateien, die vom aktuellen Zweig nicht erreichbar sind. Es ist ein Reinigungsprozess, um nicht verwendete Dateien aus dem Zweig zu entfernen
git prune -n
— nicht beschneiden, nur zeigen, was alles beschnitten werden kanngit prune -v
— zeigt die Ausgabe der vom Prune durchgeführten Aktionengit prune --progress
— zeigt den Fortschritt der Pflaume angit fetch --prune
— Beschneidet alle veralteten Zweige
git pull
Es empfängt Daten von einem entfernten Server zu einem funktionierenden Repository. Es aktualisiert den lokalen (funktionierenden) Zweig mit den neuesten Dateien aus dem Remote-Repo.
git pull
— Ziehen Sie das Remote-Repogit pull <repo URL>
— Ziehen Sie einen bestimmten Remote-Zweig
git push
Pusht alle lokalen Änderungen in das Remote-Repository. Es ist ein Upload-Prozess, der genau entgegengesetzt zu den Pull- und Abrufbefehlen ist
git checkout master
— Auschecken des Zweigs mit den neuesten Änderungen
git push origin master
— Pushen Sie die Änderungen in das Remote-Repo
Beispiel:
C:\Users\geek>git checkout development_branch
Switched to branch 'development_branch'
C:\Users\geek>git push master development_branch
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 4 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4), 612 bytes | 204.00 KiB/s, done.
Total 4 (delta 0), reused 0 (delta 0), pack-reused 0
To master
[development_branch] development_branch -> development_branch
Wir können auch push verwenden, um einen Remote-Zweig mit dem Befehl zu löschen git push --delete <branch>
.
Beispielsweise:
C:\Users\geek>git push master --delete development_branch
To master
[deleted] development_branch
git rebase
Kombiniert mehrere Commits aus verschiedenen Zweigen, um ein neues endgültiges Basis-Commit zu erstellen. Nützlich vor dem Zusammenführen aller Änderungen, um Änderungen aus verschiedenen Zweigen einzeln (linear) zu übernehmen.
git rebase <branch name>
— Kombinieren Sie die Commits zu einer endgültigen Basis
Wenn es Konflikte gibt, lösen Sie sie und fahren Sie mit dem Rebase fort:git rebase --continue
Um Änderungen zu überspringen:git rebase --skip
git remote
Überprüft die Konfiguration des Remote-Servers und ermöglicht den Verbindungszugriff zwischen Remote und Lokal.
git remote
– standardmäßig gibt es „origin“ zurück, den von Git vorgegebenen Standardnamen des Remote-Serversgit remote -v
— listet Kurznamen und URLs aller verfügbaren Remote-Verbindungen aufgit remote add <short name> <remote url>
— Fügen Sie 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/short name>
— entfernt den Remote-Server aus dem Repository
git reset
Gehen Sie zurück zu einem vorherigen Commit und verwerfen Sie Änderungen, die nach diesem Commit vorgenommen wurden
git reset <hash of the commit>
— stellt das Repo mit dem angegebenen Commit wieder her. Git behält den Commit-Verlauf bei, sodass Sie einen weiteren Reset mit einem anderen Commit (Hash) durchführen können, um einen Reset rückgängig zu machen.
git rm
Entfernt die spezifische Datei aus Git. Sie können die Wirkung von rm mit dem Befehl reset oder checkout rückgängig machen
git rm <file_ name>
— Entfernen Sie die spezifische Datei
Um Dateien aus Git zu entfernen, sie aber in Ihrem lokalen (Staging) zu behalten, verwenden Sie:
git rm --cached
git show
Zeigen Sie ein beliebiges Objekt wie Blob, Baum, Commit oder Tag an, indem Sie seinen SHA1 angeben
git show
— ohne Angabe der zeigt die Details des letzten Commits auf dem Zweig an.git show <SHA1_id>
— Zeigt den Inhalt des Objekts an, der durch seine SHA1-ID angegeben ist, z. B. Blob-ID, Baum-ID usw. Verwenden Sie den Befehl, um den Objekttyp zu überprüfen git cat-file -t
git show –pretty
— zeigt die Ausgabe in einem hübschen Format.
Sie können ein benutzerdefiniertes Format bereitstellen:
git show --pretty = ‘format:Name: <format>’
Oder Sie können eines der kurzen, vollständigen, einzeiligen, mittleren oder vollständigeren Formate verwenden, zum Beispiel:
git show --pretty= ‘medium’
– Dies zeigt den Autor, das Datum, den Titel und die vollständige Commit-Nachricht
git show --abbrev-commit
— um SHA1 abzukürzen
git stash
Um Branches ohne Commit im aktuellen Branch zu wechseln, speichern Sie die nicht festgeschriebenen Daten sicher
git stash
— speichert den Arbeits- und Indexstatusgit stash save <message>
— Geben Sie beim Speichern eine Nachricht eingit stash list
— Zeigen Sie die Liste der gespeicherten Inhalte angit stash apply
— Übertragen Sie die gespeicherten Änderungen. Um die Änderungen eines bestimmten Stashs anzuwenden, verwenden Sie die Stash-Index-ID zusammen mit applygit stash show
— Zeigen Sie den Inhalt der gespeicherten Dateien angit stash drop
— entfernt den neuesten Stash aus der Warteschlange
git status
Zeigen Sie den Status des Repositorys und des Staging an, dh den Status vor der Commit-Phase. Sie können diesen Befehl nach jedem anderen Git-Befehl verwenden, wie z. B. dem Hinzufügen, Aktualisieren oder Entfernen einer Datei
git status
— Zeigt die Änderungen an, die festgeschrieben werden sollen, oder nicht nachverfolgte (keine inszenierte) Änderungen
Wenn Sie beispielsweise eine Datei mit dem Namen samplefile.txt in Ihrem Arbeitsverzeichnis hinzufügen und prüfen, ob sie hinzugefügt wurde, können Sie den obigen Befehl eingeben. Es ergibt sich die Ausgabe wie folgt:
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached …" to unstage)
new file: samplefile.txt
git tag
Freundliche Referenzen werden verwendet, um Meilensteine oder Referenzpunkte im Code anzuzeigen
git tag <tag_name>
— Erstellen Sie ein Tag mit dem angegebenen Namengit tag
— listet alle verfügbaren Tags aufgit tag show <tag_name>
— Details des angegebenen Tags anzeigengit tag -l “.*”
— Tags anzeigen, die dem angegebenen Muster oder den angegebenen Zeichen entsprechen
gitk
Startet die Git-Benutzeroberfläche, die den Inhalt, Commits, vollständige Unterschiede und andere Details in einem Fenster anzeigt
gitk
— Öffnen Sie das Git-Repo 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
Final Words
Dieser Beitrag hat die am häufigsten verwendeten Git-Befehle mit ihren Optionen aufgelistet.
Als nächstes können Sie die GitHub-Scanner für Anmeldeinformationen.