Wie wird Git normalerweise verwendet? Ein Paar grundlegender Befehle zum "
Synchronisieren aller ". Git-Frustration tritt oft bei denen auf, die dieses oberflächliche Verständnis nie überschreiten. Allerdings wird sich das Mastering von Git sicherlich auszahlen. Wie viel Zeit verbringst du mit Git? Ich würde vorschlagen, dass sich an Ihrem Gürtel viele Werkzeuge befinden, die Sie halb so oft verwenden und doppelt so viel Zeit mit Lernen verbringen.
Wenn Sie mehr über Git erfahren möchten, empfehle ich, mit
Kapitel 10 von
Pro Git zu beginnen (es ist kostenlos!), Dann mit den Kapiteln 2, 3 und 7. Der Rest ist optional. In diesem Artikel werden wir diskutieren, wie die im Buch beschriebenen Tools für diszipliniertes und produktives Arbeiten in Git verwendet werden.
Die Grundlagen: gute Commit-Beschreibungen
Sie haben das vielleicht schon einmal gehört, aber seien Sie geduldig. Im Allgemeinen müssen Sie
git commit -m " "
Beginnen Sie mit der Konfiguration von git für die Verwendung Ihres bevorzugten Editors:
git config --global core.editor vim
, und führen Sie dann einfach
git commit
. Der Editor wird geöffnet und Sie können Ihre Beschreibung des Commits darin schreiben. Die erste Zeile sollte auf 50 Zeichen begrenzt und mit einem Satz abgeschlossen sein:
Nach dem Anwenden dieses Commits ... "wird das Text-Rendering in CJK-Sprachen korrigiert", "wird die Unterstützung für das v3-Protokoll hinzufügen", "wird die CRTC-Verarbeitung umgestalten" usw. Fügen Sie dann eine leere Zeile und hinzu Fahren Sie mit der
erweiterten Beschreibung des Commits fort , die in 72 Spalten fest codiert sein sollte und Details wie Begründung des Commits, Kompromisse, Ansatzbeschränkungen usw. enthält.
Wir verwenden 72 Zeichen, da dies die
Standardbreite einer E-Mail-Nachricht ist und E-Mail ein wichtiges Werkzeug für Git ist. Eine Beschränkung auf 50 Zeichen wird verwendet, da die erste Zeile zum Betreff Ihrer E-Mail wird und Sie
“[PATCH linux-usb v2 0/13]”
viel Text wie
“[PATCH linux-usb v2 0/13]”
hinzufügen können. Diese Formatierungsbeschränkungen sind möglicherweise ärgerlich und lästig. Beachten Sie jedoch, dass andere Benutzer die Protokolle in einem anderen Kontext als Sie lesen. Ich lese häufig Festschreibungsprotokolle auf einem vertikalen Monitor und er drückt nicht so viel Text in eine Zeile wie Ihr 4K 16: 9-Display.
Jedes Commit sollte eine autonome Änderung sein
Jedes Commit sollte nur eine Änderung enthalten - vermeiden Sie kleine, nicht verwandte Änderungen in einem Commit (in dieser Hinsicht könnte ich häufiger auf meine eigenen Tipps hören). Vermeiden Sie es auch, eine Änderung in mehrere Commits aufzuteilen, es sei denn, die Idee ist in separate Schritte unterteilt, von denen jeder eine vollständige Änderung darstellt. Wenn Ihr Arbeitsbaum mehrere Änderungen enthält und Sie nur einige davon
git add -i
müssen, versuchen Sie es mit
git add -i
oder
git add -p
. Darüber hinaus sollte jedes Commit kompiliert werden, alle Tests erfolgreich bestehen und bekannte Fehler vermeiden, die in zukünftigen Commits behoben werden.
Jetzt können Sie jedes Commit ausführen und erwarten, dass der Code ordnungsgemäß funktioniert. Dies wird später nützlich sein, beispielsweise während der selektiven Aufnahme von Commits in den Release-Zweig. Dieser Ansatz erhöht auch die Nützlichkeit von
Git-Bisekt 1 Wenn Sie erwarten, dass der Code die Tests für jedes Commit erfolgreich kompiliert und besteht, können Sie ein
git-bisect
Skript übergeben, das den Baum programmgesteuert auf Fehler überprüft und Fehlalarme vermeidet. Diese eigenständigen, gut beschriebenen Commits vereinfachen die Erstellung von
Versionsbeschreibungen mithilfe von
git-shortlog , wie dies
Linux bei Linux-Versionen tut .
Es ist schwer, es beim ersten Mal richtig zu machen
Wir kommen zu einer der wichtigsten Funktionen von git, die es von seinen Vorgängern unterscheidet: der Bearbeitung von Geschichten. Alle Versionskontrollsysteme sind mit einer Art "Zeitmaschine" ausgestattet, waren jedoch zuvor meist schreibgeschützt. Die Git-Zeitmaschine ist jedoch anders: Sie können die Vergangenheit ändern. Sie werden sogar dazu ermutigt! Aber ich warne Sie: Ändern Sie nur die Vergangenheit, die noch nicht in eine stabile öffentliche Filiale eingetreten ist.
Das Endergebnis ist wie folgt. Das Schreiben von Commits ohne Fehler, autonome Commits mit einer guten Beschreibung ist beim ersten Versuch schwierig. Im Gegensatz dazu ist das Bearbeiten einer Story einfach und Teil des git-effizienten Workflows. Schauen Sie sich
git-rebase an und verwenden Sie es frei. Mit rebase können Sie Commits neu anordnen, zusammenführen, löschen, bearbeiten und aufteilen. Zum Beispiel nehme ich normalerweise einige Änderungen an der Datei vor, sende ein Fixup-Commit (
git commit -m fixup
) und verwende dann
git rebase -i
, um es mit einem früheren Commit zusammenzuführen.
Verschiedene Tipps
- Lies Mana! Wählen Sie eine zufällige Git-Manpage und lesen Sie sie jetzt. Wenn Sie die git-Manpage der obersten Ebene (nur
man git
) nicht gelesen haben, tun Sie dies auch.
- Am Ende jedes Manas für einen Git-Befehl auf hoher Ebene befindet sich normalerweise eine Liste von Git-Befehlen auf niedriger Ebene, auf die sich der Befehl auf hoher Ebene stützt. Wenn Sie mehr über die Funktionsweise des übergeordneten Befehls git erfahren möchten, lesen Sie diese Manpages.
- Erfahren Sie, wie Sie mit der Drehzahlauswahl die richtigen Commits auswählen.
- Zweige sind nützlich, aber Sie müssen lernen, ohne sie zu arbeiten, und Sie müssen auch ein gutes Werkzeugset am Gürtel haben. Verwenden Sie Befehle wie
git pull --rebase
, git send-email -1 HEAD~2
und git push origin HEAD~2:master
.
1. Kurz gesagt, Git Bisect ist ein Tool, das eine binäre Suche zwischen zwei Commits in Ihrem Verlauf durchführt und die Commits zwischen ihnen nacheinander überprüft, damit Sie nach einem Fehler suchen können. Auf diese Weise können Sie das Commit berechnen, das das Problem verursacht hat.
↑