4 fortgeschrittene Git-Befehle, von denen Sie wahrscheinlich noch nicht gehört haben

Indeks
  1. Verwenden Sie git clean, um Ihren Arbeitsbaum zu reinigen
  2. Verwenden Sie git bisect, um herauszufinden, welcher Commit einen Fehler eingeführt hat
  3. Entdecken Sie git cherry-pick und führen Sie weniger als einen Branch zusammen
  4. Git Revert, um unerwünschte Commits rückgängig zu machen

Verbessern Sie Ihre Programmiererfahrung mit fortgeschrittenen Git-Befehlen wie git clean, bisect, cherry-pick und revert, um Ihre Workflows effizienter und reibungsloser zu gestalten.

Git ist ein enormes Programm mit fast 200 Unterbefehlen und unzähligen Optionen. Wahrscheinlich nutzen Sie nur eine Handvoll, die zuverlässigen Klassiker wie init, add, commit und branch. Aber einige Befehle gehen weit über die Grundlagen hinaus und können Ihr Programmiererlebnis radikal verbessern, wenn Sie sie kennenlernen.

Verwenden Sie git clean, um Ihren Arbeitsbaum zu reinigen

Wir beginnen relativ einfach mit einem pragmatischen Befehl, der Ihnen helfen kann, Ihr Repository sauber zu halten. Im Nachhinein klingt es offensichtlich, aber Sie haben das wahrscheinlich schon manuell gemacht, also bereiten Sie sich darauf vor, viel Zeit zu sparen mit:

git clean 

Der git clean Befehl entfernt nicht verfolgte Dateien aus dem Arbeitsbaum. Alles, was kompilierte Dateien, Backups, .DS_Store Mac-Dateien oder irgendetwas anderes betrifft, das tatsächlich nicht Teil Ihres Repositories ist, wird entfernt. Zum Beispiel hat dieses einfache Repository eine nicht verfolgte Datei:

Das Ausführen von git clean entfernt diese Datei, lässt jedoch andere, einschließlich der git-ignorierten hello Datei, unberührt:

Standardmäßig lässt git clean nicht verfolgte Verzeichnisse unberührt, aber Sie können die -d Option verwenden, um in sie hinein zu rekursieren. Ich empfehle die Verwendung der -n Option, um zunächst einen Trockentest durchzuführen, bei dem git Ihnen die Dateien anzeigt, die es entfernt hätte, ohne sie tatsächlich zu löschen. Sie können auch die -i Option für den interaktiven Modus verwenden, der Ihnen genauere Optionen zur Handhabung der Dateien bietet:

Verwenden Sie git bisect, um herauszufinden, welcher Commit einen Fehler eingeführt hat

Der bisect Befehl hilft Ihnen, den Commit einzugrenzen, der einen bestimmten Fehler oder eine Regression eingeführt hat. Ohne ihn wäre so eine Aufgabe mit wiederholtem Überprüfen jeder einzelnen Revision verbunden, vielleicht mit ein wenig educated guess, welche der Übeltäter sein könnte. In einem kleinen Codebase oder einem, den Sie vollständig verstehen, ist dies vielleicht nicht so eine Qual. Bei größeren, kollaborativen Projekten könnte es jedoch leicht viel zu viel kostbare Zeit in Anspruch nehmen.

Um klar zu sein, git bisect ist alles andere als Magie. Tatsächlich bietet es eine triviale Lösung für das Problem: binäre Suche. Die binäre Suche ist eine Form des „Teilen und Herrscht“ Problemlösens. Im Falle von git bisect umfasst es einen einfachen Prozess:

  • Identifizieren Sie die früheste fehlerhafte Revision, die definitiv das Problem enthält. Oft ist dies die aktuelle (oder HEAD) Revision.
  • Identifizieren Sie die neueste gute Revision. Dies ist normalerweise etwas kniffliger, aber Sie können immer viel früher beginnen, als Sie müssen, selbst mit Ihrer ersten Revision.
  • Überprüfen Sie eine Revision in der Mitte dieser beiden. Wenn sie gut ist, muss der Bug neuer sein; andernfalls ist er älter.
  • Wiederholen Sie Schritt 3, bis Sie den Commit identifiziert haben, der den Fehler eingeführt hat.

Dieses Beispiel zeigt ein Repository mit fünf Commits und die bisect start, bad und good Befehle, die den Rahmen festlegen:

Bei jedem Schritt überprüft git bisect einen neuen Commit, den Sie dann testen können, um zu sehen, ob er den Fehler enthält oder nicht:

Sobald es alle Möglichkeiten erschöpft hat, berichtet git bisect den frühesten fehlerhaften Commit, den es gemäß Ihrer ursprünglichen Auswahl gefunden hat. Sie können jetzt git bisect reset ausführen, um den Prozess abzuschließen und den fehlerhaften Commit entsprechend zu beheben.

Das mag immer noch nach einem mühsamen Prozess klingen, aber das ist das Bugfixing für Sie. Es ist viel besser, als zufällig in Revisionen zu springen und zu versuchen, das Problem einzugrenzen. git bisect beschleunigt die Aufgabe erheblich und schützt Sie davor, git-Protokolle zu inspizieren und einzelne Commits zu überprüfen.

Entdecken Sie git cherry-pick und führen Sie weniger als einen Branch zusammen

Normalerweise, wenn Sie Arbeiten aus zwei verschiedenen Branches kombinieren, handelt es sich um eine Alles-oder-Nichts-Operation. Der git merge Befehl erstellt einen neuen Commit, bei dem jeder Commit von einem anderen Branch auf den aktuellen angewendet wird. Das macht für viele Workflows viel Sinn, aber manchmal möchten Sie etwas nuancierter sein.

Der cherry-pick Befehl ermöglicht es Ihnen, einen bestimmten Commit auszuwählen und dessen Änderungen als neuen Commit auf Ihren aktuellen Branch anzuwenden. Sie führen cherry-pick normalerweise auf einem Commit von einem anderen Branch aus, sodass es eine großartige Möglichkeit ist, eine einzelne Änderung aus einem viel größeren Feature-Branch hereinzuholen, zum Beispiel.

Standardmäßig wiederverwendet cherry-pick die Commit-Nachricht, wodurch dies eine sehr schnelle Operation ist. Wenn Sie möchten, können Sie jedoch die neue Commit-Nachricht mit git cherry-pick -e commit-id bearbeiten.

Wenn der Commit nicht sauber angewendet werden kann, wird cherry-pick ein ähnliches Verfahren wie git merge folgen und Sie bitten, die Konflikte manuell zu beheben.

Git Revert, um unerwünschte Commits rückgängig zu machen

Haben Sie jemals bereut, einen Commit gemacht zu haben? Wenn ja und Sie ihn früh genug entdecken, kann git reset helfen. Für isolierte Commits oder wenn Sie die Historie Ihres Repositories nicht beschädigen möchten, ist git revert das Werkzeug, auf das Sie zurückgreifen sollten.

Verwenden Sie git revert gegen einen spezifischen Commit, um effektiv genau diesen einzelnen Commit zu entfernen. Das Repository wird genau so aussehen, als wäre dieser Commit niemals erfolgt. Alle seine Änderungen werden verschwunden sein.

Führen Sie es aus wie folgt:

git revert <commit>

Als Antwort wird Git einen brandneuen Commit erstellen, der das Gegenteil von Ihrem ursprünglichen Commit darstellt und die ursprünglichen Änderungen rückgängig macht. Sie werden auch aufgefordert, die Nachricht des neuen Commits zu bearbeiten, wobei diese bereits mit einer Notiz vorgefüllt ist, dass sie den spezifischen Commit zurücksetzt.

Wie bei cherry-pick, müssen Sie, falls Ihr Revert Konflikte erzeugt, diese manuell lösen, bevor Sie git revert --continue ausführen, um zu bestätigen.

Bist du neugierig auf weitere Artikel wie 4 fortgeschrittene Git-Befehle, von denen Sie wahrscheinlich noch nicht gehört haben? Entdecke spannende Inhalte in der Kategorie System.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Go up