Verwendung von Git: Ein Referenzhandbuch

Git Spickzettel

Einführung

Entwicklerteams und Open-Source-Softwarewarter verwalten ihre Projekte normalerweise über Git, ein verteiltes Versionskontrollsystem, das die Zusammenarbeit unterstützt.

Diese Anleitung im Cheat Sheet-Stil enthält eine kurze Referenz zu Befehlen, die für die Arbeit und Zusammenarbeit in einem Git-Repository nützlich sind. Lesen Sie zum Installieren und Konfigurieren von Git „https://www.digitalocean.com/community/tutorials/how-to-contribute-to-open-source-getting-started-with-git[How To Contribute to Open“ Quelle: Erste Schritte mit Git]. ”

Verwendung dieses Handbuchs:

  • Dieser Leitfaden ist im Spickzettelformat mit in sich geschlossenen Befehlszeilenausschnitten.

  • Wechseln Sie zu einem Abschnitt, der für die Aufgabe relevant ist, die Sie ausführen möchten.

  • Wenn Siehighlighted text in den Befehlen dieses Handbuchs sehen, beachten Sie, dass dieser Text auf die Commits und Dateien im Repository vonyour ownverweisen sollte.

Einrichten und Initialisieren

Überprüfen Sie Ihre Git-Version mit dem folgenden Befehl, der auch bestätigt, dass Git installiert ist.

git --version

Sie können Ihr aktuelles Arbeitsverzeichnis als Git-Repository mitinit initialisieren.

git init

Um ein vorhandenes Git-Repository zu kopieren, das remote gehostet wird, verwenden Siegit clone mit der URL oder dem Serverstandort des Repos (im letzteren Fall verwenden Siessh).

git clone https://www.github.com/username/repo-name

Zeigen Sie das Remote-Repository Ihres aktuellen Git-Verzeichnisses an.

git remote

Verwenden Sie für eine ausführlichere Ausgabe das Flag-v.

git remote -v

Fügen Sie den Git-Upstream hinzu, der eine URL sein oder auf einem Server gehostet werden kann (im letzteren Fall stellen Sie eine Verbindung mitssh her).

git remote add upstream https://www.github.com/username/repo-name

Inszenierung

Wenn Sie eine Datei geändert und für die nächste Übergabe markiert haben, wird sie als gestaffelte Datei betrachtet.

Überprüfen Sie den Status Ihres Git-Repositorys, einschließlich der hinzugefügten und nicht bereitgestellten Dateien.

git status

Verwenden Sie zum Bereitstellen geänderter Dateien den Befehladd, den Sie vor einem Commit mehrmals ausführen können. Wenn Sie nachfolgende Änderungen vornehmen, die im nächsten Commit enthalten sein sollen, müssen Sieadd erneut ausführen.

Sie können die spezifische Datei mitadd angeben.

git add my_script.py

Mit. können Sie alle Dateien im aktuellen Verzeichnis hinzufügen, einschließlich Dateien, die mit. beginnen.

git add .

Sie können eine Datei aus dem Staging entfernen, während Sie die Änderungen in Ihrem Arbeitsverzeichnis mitreset beibehalten.

git reset my_script.py

Begehen, verpflichten

Sobald Sie Ihre Aktualisierungen bereitgestellt haben, können Sie sie festschreiben. Dabei werden die Änderungen aufgezeichnet, die Sie am Repository vorgenommen haben.

Um bereitgestellte Dateien festzuschreiben, führen Sie den Befehlcommit mit Ihrer aussagekräftigen Festschreibungsnachricht aus, damit Sie Festschreibungen verfolgen können.

git commit -m "Commit message"

Sie können die Bereitstellung aller nachverfolgten Dateien in einem Schritt komprimieren, indem Sie sie festschreiben.

git commit -am "Commit message"

Wenn Sie Ihre Festschreibungsnachricht ändern müssen, können Sie dies mit dem Flag--amendtun.

git commit --amend -m "New commit message"

Geäst

Ein Zweig in Git ist ein verschiebbarer Zeiger auf einen der Commits im Repository, mit dem Sie die Arbeit isolieren und die Funktionsentwicklung und -integration verwalten können. Sie können mehr über Zweige erfahren, indem SieGit documentation lesen.

Listen Sie alle aktuellen Zweige mit dem Befehlbranch auf. Neben Ihrem derzeit aktiven Zweig wird ein Sternchen (*) angezeigt.

git branch

Erstellen Sie eine neue Niederlassung. Sie bleiben in Ihrem derzeit aktiven Zweig, bis Sie zu dem neuen wechseln.

git branch new-branch

Wechseln Sie zu einem vorhandenen Zweig und checken Sie ihn in Ihr aktuelles Arbeitsverzeichnis aus.

git checkout another-branch

Sie können die Erstellung und das Auschecken eines neuen Zweigs mithilfe des Flags-bkonsolidieren.

git checkout -b new-branch

Benennen Sie Ihren Filialnamen um.

git branch -m current-branch-name new-branch-name

Führen Sie den Verlauf des angegebenen Zweigs mit demjenigen zusammen, in dem Sie gerade arbeiten.

git merge branch-name

Brechen Sie die Zusammenführung ab, falls Konflikte auftreten.

git merge --abort

Sie können auch ein bestimmtes Commit auswählen, das mitcherry-pick mit der Zeichenfolge zusammengeführt werden soll, die auf das bestimmte Commit verweist.

git cherry-pick f7649d0

Wenn Sie einen Zweig zusammengeführt haben und ihn nicht mehr benötigen, können Sie ihn löschen.

git branch -d branch-name

Wenn Sie einen Zweig nicht zum Master zusammengeführt haben, aber sicher sind, dass Sie ihn löschen möchten, können Sieforce einen Zweig löschen.

git branch -D branch-name

Zusammenarbeiten und aktualisieren

Zum Herunterladen von Änderungen aus einem anderen Repository, z. B. dem Remote-Upstream, verwenden Siefetch.

git fetch upstream

Führen Sie die abgerufenen Commits zusammen.

git merge upstream/master

Übertragen oder pushen Sie Ihre lokalen Zweig-Commits an den Remote-Repository-Zweig.

git push origin master

Abrufen und Zusammenführen von Commits aus der Remote-Zweigstelle für die Verfolgung.

git pull

Inspektion

Anzeigen des Festschreibungsverlaufs für den derzeit aktiven Zweig.

git log

Zeigen Sie die Commits an, die eine bestimmte Datei geändert haben. Dies folgt der Datei unabhängig vom Umbenennen.

git log --follow my_script.py

Zeigen Sie die Commits an, die sich in einem Zweig und nicht in dem anderen befinden. Dies zeigt Commits füra-branch an, die nicht fürb-branch sind.

git log a-branch..b-branch

Sehen Sie sich die Referenzprotokolle (reflog) an, um festzustellen, wann die Tipps von Zweigen und anderen Referenzen zuletzt im Repository aktualisiert wurden.

git reflog

Zeigen Sie jedes Objekt in Git über seinen Festschreibungs-String oder Hash in einem besser lesbaren Format an.

git show de754f5

Änderungen anzeigen

Der Befehlgit diff zeigt Änderungen zwischen Commits, Zweigen und mehr an. Sie können mehr darüber inGit documentationlesen.

Vergleichen Sie geänderte Dateien, die sich im Staging-Bereich befinden.

git diff --staged

Zeigen Sie den Unterschied zwischena-branch, jedoch nichtb-branch an.

git diff a-branch..b-branch

Zeigen Sie den Unterschied zwischen zwei spezifischen Commits an.

git diff 61ce3e6..e221d9c

Verstauen

Manchmal werden Sie feststellen, dass Sie Änderungen an einem Code vorgenommen haben, aber bevor Sie fertig sind, müssen Sie mit der Arbeit an etwas anderem beginnen. Sie sind noch nicht bereit, die von Ihnen vorgenommenen Änderungen zu übernehmen, möchten aber Ihre Arbeit nicht verlieren. Mit dem Befehlgit stash können Sie Ihre lokalen Änderungen speichern und zum Arbeitsverzeichnis zurückkehren, das dem letzten Commit vonHEADentspricht.

Verstaue deine aktuelle Arbeit.

git stash

Sehen Sie, was Sie gerade verstaut haben.

git stash list

Ihre Verstecke werdenstash@{0},stash@{1} usw. genannt.

Informationen zu einem bestimmten Stash anzeigen.

git stash show stash@{0}

Verwenden Sieapply, um die Dateien in einem aktuellen Stash aus dem Stash zu entfernen, während der Stash beibehalten wird.

git stash apply stash@{0}

Wenn Sie Dateien aus einem Stash holen möchten und den Stash nicht mehr benötigen, verwenden Siepop.

git stash pop stash@{0}

Wenn Sie die in einem bestimmten Vorrat gespeicherten Dateien nicht mehr benötigen, können Sie den Vorratdrop.

git stash drop stash@{0}

Wenn Sie mehrere Stashes gespeichert haben und keine mehr verwenden müssen, können Sie sie mitclear entfernen.

git stash clear

Dateien ignorieren

Wenn Sie Dateien in Ihrem lokalen Git-Verzeichnis behalten möchten, diese aber nicht für das Projekt festschreiben möchten, können Sie diese Dateien zur.gitignore-Datei hinzufügen, damit sie keine Konflikte verursachen.

Verwenden Sie einen Texteditor wie nano, um Dateien zur Datei.gitignorehinzuzufügen.

nano .gitignore

Beispiele für.gitignore-Dateien finden Sie in GitHubs.gitignore template repo-Dateien.

Wiederablassen

Mit einer Rebase können wir Zweige verschieben, indem wir das Commit ändern, auf dem sie basieren. Mit Rebasing können Sie Commits quetschen oder neu formulieren.

Sie können eine Rebase starten, indem Sie entweder die Anzahl der Commits aufrufen, die Sie für die Rebase vorgenommen haben (5 im folgenden Fall).

git rebase -i HEAD~5

Alternativ können Sie basierend auf einer bestimmten Festschreibungszeichenfolge oder einem bestimmten Hash einen Rebase durchführen.

git rebase -i 074a4e5

Sobald Sie Commits gequetscht oder umformuliert haben, können Sie die Neugründung Ihrer Filiale über der neuesten Version des Upstream-Codes des Projekts abschließen.

git rebase upstream/master

Um mehr über das erneute Basieren und Aktualisieren zu erfahren, können SieHow To Rebase and Update a Pull Request lesen, was auch für jede Art von Festschreiben gilt.

Zurücksetzen

Manchmal, auch nach einem Rebase, müssen Sie Ihren Arbeitsbaum zurücksetzen. Sie können mit dem folgenden Befehl auf ein bestimmtes Commit unddelete all changes zurücksetzen.

git reset --hard 1fc6665

Um zu erzwingen, dass Ihr letztes bekanntes, nicht widersprüchliches Commit in das Ursprungs-Repository verschoben wird, müssen Sie--force verwenden.

[.warning] #Warning: Force Pushing to Master wird oft verpönt, es sei denn, es gibt einen wirklich wichtigen Grund dafür. Verwenden Sie es sparsam, wenn Sie an Ihren eigenen Repositorys arbeiten, und vermeiden Sie dies, wenn Sie zusammenarbeiten.
#

git push --force origin master

Um lokale nicht verfolgte Dateien und Unterverzeichnisse aus dem Git-Verzeichnis für einen sauber funktionierenden Zweig zu entfernen, können Siegit clean verwenden.

git clean -f -d

Wenn Sie Ihr lokales Repository so ändern müssen, dass es dem aktuellen Upstream-Master ähnelt (dh, es gibt zu viele Konflikte), können Sie einen Hard-Reset durchführen.

[.note] #Note: Wenn Sie diesen Befehl ausführen, sieht Ihr lokales Repository genauso aus wie das Upstream. Alle von Ihnen vorgenommenen Commits, die jedoch nicht in den Upstreamwill be destroyed.
# gezogen wurden

git reset --hard upstream/master

Fazit

Dieses Handbuch behandelt einige der gebräuchlichsten Git-Befehle, die Sie beim Verwalten von Repositorys und bei der Zusammenarbeit an Software verwenden können.

Weitere Informationen zu Open Source-Software und Zusammenarbeit finden Sie in unserenIntroduction to Open Source tutorial series:

Es gibt viele weitere Befehle und Variationen, die Sie als Teil Ihrer Arbeit mit Git nützlich finden können. Um mehr über alle verfügbaren Optionen zu erfahren, können Sie Folgendes ausführen:

git --help

Nützliche Informationen erhalten. Sie können auch mehr über Git lesen und sich die Dokumentation von Git unterofficial Git websiteansehen.