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 Sie
highlighted 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--amend
tun.
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-b
konsolidieren.
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 vonHEAD
entspricht.
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.gitignore
hinzuzufü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.