Heim > Web-Frontend > js-Tutorial > „.git-blame-ignore-revs', um Massenformatierungsänderungen zu ignorieren.

„.git-blame-ignore-revs', um Massenformatierungsänderungen zu ignorieren.

Barbara Streisand
Freigeben: 2024-09-25 06:21:02
Original
890 Leute haben es durchsucht

.git-blame-ignore-revs ist eine Git-Funktion, die in Version 2.23 eingeführt wurde und es Ihnen ermöglicht, bestimmte Commits in Git-Blamme-Ergebnissen zu ignorieren. Dies ist besonders nützlich für Massen-Commits, die eine große Anzahl von Zeilen ändern, ohne die eigentliche Funktionalität des Codes zu verändern, wie z. B. Formatierungsänderungen, Umbenennungen oder die Anwendung von Codierungsstandards in einer Codebasis. Durch das Ignorieren dieser nichtfunktionalen Änderungen kann sich Git Blame auf sinnvolle Änderungen konzentrieren, die den Kontext und die Argumentation hinter dem Code erklären.

Warum .git-blame-ignore-revs ist wichtig

Wenn Sie Git Blame für eine Datei verwenden, wird Ihnen angezeigt, welcher Commit zuletzt jede Zeile der Datei geändert hat, zusammen mit dem Autor und dem Zeitstempel. Dies ist nützlich, um herauszufinden, warum eine bestimmte Zeile geändert wurde. Wenn jedoch ein großer Commit, der reine Formatierungsänderungen vornimmt, wie z. B. das Anwenden von „Prettier“, Teil des Verlaufs ist, kann Git Blame für viele Zeilen auf diesen Commit verweisen. Dies macht es schwierig, den tatsächlichen funktionalen Änderungsverlauf zu finden.

Wenn Ihr Team beispielsweise ein Tool wie Prettier oder ESLint verwendet, um die gesamte Codebasis neu zu formatieren, kann der resultierende Commit Tausende von Codezeilen betreffen. Ohne .git-blame-ignore-revs würde Git Blame diesen Commit als für jede betroffene Zeile verantwortlich anzeigen, was den aussagekräftigeren Verlauf hinter jeder Zeile verschleiern könnte.

Durch die Verwendung von .git-blame-ignore-revs können Sie Git Blame anweisen, diese Commits zu überspringen und sich auf die Änderungen zu konzentrieren, die wichtig sind.

So verwenden Sie .git-blame-ignore-revs

Um zu verstehen, wie diese Funktion verwendet wird, gehen wir ein Beispiel aus dem React-Repository durch.

Schritt 1: Identifizieren Sie die Massenformatierungs-Commits

Der React-Quellcode enthält Massen-Commits, bei denen Tools wie Prettier im gesamten Projekt ausgeführt wurden. Hier sind zwei solcher Commits:

`.git-blame-ignore-revs` to ignore bulk formatting changes.

  1. Commit: c998bb1 Nachricht: [Compiler] Prettier ausführen, Snap beheben Dieser Commit wendet Prettier-Formatierung auf die gesamte Codebasis an und ändert viele Zeilen, ohne die Funktionalität zu ändern.

`.git-blame-ignore-revs` to ignore bulk formatting changes.

2. Commit: fd2b3e1

Nachricht: Compiler: Entfork Prettier Config

Dieses Commit enthält weitere Aktualisierungen der Prettier-Konfiguration, die sich auf alle .ts- und .tsx-Dateien im Repository auswirken.

`.git-blame-ignore-revs` to ignore bulk formatting changes.

Diese Commits befassen sich nur mit der Formatierung und liefern keinen aussagekräftigen Kontext, wenn untersucht wird, warum eine Codezeile so geschrieben wurde, wie sie war.

Schritt 2: Erstellen Sie die .git-blame-ignore-revs-Datei

Damit Git Blame diese Massenformatierungs-Commits ignoriert, können wir eine .git-blame-ignore-revs-Datei im Stammverzeichnis des Repositorys erstellen.

  1. Erstellen Sie die .git-blame-ignore-revs-Datei:
touch .git-blame-ignore-revs
Nach dem Login kopieren

2. Fügen Sie der Datei die relevanten Commit-Hashes hinzu und erklären Sie, warum jedes Commit ignoriert wird. In diesem Fall fügen wir die beiden zuvor identifizierten Commits hinzu:

# Prettier formatting changes 
c998bb1ed4b3285398c9c7797135d3f060243c6a 
fd2b3e13d330a4559f5aa21462e1cb2cbbcf144b
Nach dem Login kopieren

3. Speichern Sie die Datei .git-blame-ignore-revs im Repository. Diese Datei kann zusammen mit Ihrem Code versioniert werden, sodass das gesamte Team dieselbe Liste ignorierter Commits verwenden kann.

Schritt 3: Git für die Verwendung konfigurieren .git-blame-ignore-revs

Um zu vermeiden, dass Sie bei jeder Verwendung von Git Blame die Option --ignore-revs-file eingeben müssen, können Sie Git so konfigurieren, dass die Datei .git-blame-ignore-revs automatisch verwendet wird.

  1. Richten Sie die Konfiguration auf Repository-Ebene ein:
git config blame.ignoreRevsFile .git-blame-ignore-revs
Nach dem Login kopieren

Dadurch wird sichergestellt, dass jedes Mal, wenn jemand Git Blame in diesem Repository ausführt, Git automatisch die in .git-blame-ignore-revs aufgeführten Commits ignoriert.

Schritt 4: Führen Sie „Git Blame“ mit den ignorierten Commits aus

Mal sehen, wie das in der Praxis funktioniert. Ohne die Massenformatierungs-Commits zu ignorieren, könnte Git Blame Folgendes anzeigen:

$ git blame src/someFile.tsx
c998bb1e (Joe Bloggs 2023-03-15 10:00:00 +0200 1) import React from 'react';
fd2b3e13 (Alan 2023-04-01 14:15:30 +0200 2) function App() {
c998bb1e (Joe Bloggs 2023-03-15 10:00:00 +0200 3)     return <div>Hello, world!</div>;
fd2b3e13 (Ben 2023-04-01 14:15:30 +0200 4) }
Nach dem Login kopieren

Diese Ausgabe zeigt an, dass die letzte Änderung an den Zeilen 1 und 3 auf den Prettier-Formatierungs-Commit (c998bb1e) zurückzuführen war und die Zeilen 2 und 4 in einem anderen Massen-Commit (fd2b3e13) geändert wurden. Da es sich um Formatierungsänderungen handelt, ist dies nicht hilfreich für das Verständnis, wer die eigentliche Logik hinter diesen Zeilen eingeführt hat.

Nach der Konfiguration von .git-blame-ignore-revs werden beim Ausführen von git Blame die Massen-Commits übersprungen und der tatsächliche Verlauf angezeigt:

$ git blame src/someFile.tsx
a23d9b34 (May 2022-12-01 09:30:00 +0200 1) import React from 'react';
b12e45a6 (JJ 2022-12-05 11:45:15 +0200 2) function App() {
a23d9b34 (Joe 2022-12-01 09:30:00 +0200 3)     return <div>Hello, world!</div>;
b12e45a6 (Ram 2022-12-05 11:45:15 +0200 4) }
Nach dem Login kopieren

Jetzt ordnet Git Blame die Zeilen den richtigen Commits zu und ignoriert dabei die unwichtigen Formatierungsänderungen. Dadurch erhalten wir nützliche Informationen, die zeigen, wer die tatsächlichen Funktionsänderungen vorgenommen hat.

Fazit

Die .git-blame-ignore-revs-Funktion in Git 2.23 ist ein Game-Changer für Projekte mit Massenformatierung oder Stiländerungen. Durch das Einrichten einer .git-blame-ignore-revs-Datei und die Konfiguration Ihres Repositorys können Sie Codierungsstandards anwenden, Tools wie Prettier ausführen oder Code umgestalten, ohne sich Sorgen machen zu müssen, dass der Schuldverschreibungsverlauf verunreinigt wird.

Mit diesem Ansatz kann Ihr Team die Qualität und Formatierung des Codes sicher verbessern, ohne dabei auf die Fähigkeit verzichten zu müssen, sinnvolle Änderungen zu verfolgen. So wird sichergestellt, dass Git Blame ein wertvolles Werkzeug bleibt, um den Verlauf und die Argumentation hinter jeder Codezeile zu verstehen.

Über uns:

Bei Think Throo haben wir die Mission, die fortgeschrittenen Codebasis-Architekturkonzepte zu vermitteln, die in Open-Source-Projekten verwendet werden.

Verzehnfachen Sie Ihre Programmierkenntnisse, indem Sie fortgeschrittene Architekturkonzepte in Next.js/React üben, die Best Practices erlernen und Projekte in Produktionsqualität erstellen.

Wir sind Open Source – https://github.com/thinkthroo/thinkthroo (Geben Sie uns einen Stern!)

Verbessern Sie die Fähigkeiten Ihres Teams mit unseren Fortgeschrittenenkursen basierend auf der Codebasis-Architektur. Kontaktieren Sie uns unter hello@thinkthroo.com, um mehr zu erfahren!

Referenzen:

  1. https://github.com/facebook/react/blob/main/.git-blame-ignore-revs

  2. https://gist.github.com/kateinoigakukun/b0bc920e587851bfffa98b9e279175f2

  3. https://github.com/facebook/react/commit/c998bb1ed4b3285398c9c7797135d3f060243c6a

  4. https://moxio.com/blog/ignoring-bulk-change-commits-with-git-blame/



Das obige ist der detaillierte Inhalt von„.git-blame-ignore-revs', um Massenformatierungsänderungen zu ignorieren.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage