suchen
HeimEntwicklungswerkzeugeIdiot3 Schritte, um es zu schaffen! Führen Sie einen sauberen Git-Commit-Datensatz

Dieser Artikel vermittelt Ihnen relevantes Wissen über das Sauberhalten von GitCommit-Datensätzen, einschließlich Fragen im Zusammenhang mit „git commit –amend“, „git rebase -i“ und „rebase“.

3 Schritte, um es zu schaffen! Führen Sie einen sauberen Git-Commit-Datensatz

Empfohlene Studie: „Git Tutorial

Jeder hat gelernt, wie man Code auf standardisierte und prägnante Weise schreibt, aber selten lernt man, Code auf standardisierte und prägnante Weise einzureichen. Heutzutage verwendet jeder Git als Quellcode-Verwaltungstool. Wir übermitteln/zusammenführen Code gemäß verschiedenen Arbeitsabläufen. Wenn diese Flexibilität nicht gut kontrolliert wird, verursacht dies auch viele Probleme Unordentlicher Git-Log-Verlauf, der wirklich der Fußwickel einer alten Dame ist, stinkend und lang. Ich persönlich mag diese Art von Log nicht. Die Hauptursache für dieses Problem ist die zufällige Codeübermittlung.

Der Code wurde übermittelt. Gibt es eine Möglichkeit, ihn zu speichern? Drei Tipps können das Problem perfekt lösen

Machen Sie git commit –amend gut aus3 Schritte, um es zu schaffen! Führen Sie einen sauberen Git-Commit-Datensatz

Das Hilfedokument dieses Befehls wird wie folgt beschrieben:

--amend               amend previous commit
Mit anderen Worten, es kann uns helfen, den

letzten Commit zu ändern

beides Wir können die von uns übermittelte Nachricht und die von uns übermittelte Datei ändern und schließlich die letzte Commit-ID ersetzen. Wir können beim Senden eine bestimmte Datei übersehen, und wenn wir sie erneut senden, kann es zu mehreren nutzlosen Fehlern kommen commit-id, das macht jeder, und das Git-Protokoll wird nach und nach zu chaotisch, um die gesamte Funktion zu verfolgen

Angenommen, wir haben so eine Protokollinformation

* 98a75af (HEAD -> feature/JIRA123-amend-test) feat: [JIRA123] add feature 1.2
* 119f86e feat: [JIRA123] add feature 1.1
* 5dd0ad3 feat: [JIRA123] add feature 1
* c69f53d (origin/main, origin/feature/JIRA123-amend-test, origin/HEAD, main) Initial commit
Angenommen, wir möchten die letzte Protokollnachricht ändern Folgender Befehl:
git commit --amend -m "feat: [JIRA123] add feature 1.2 and 1.3"
Schauen wir uns noch einmal die Protokollinformationen an. Wir können feststellen, dass wir die alte Commit-ID 98a75af durch die neue Commit-ID 5e354d1 ersetzt, die Nachricht geändert und keine Knoten hinzugefügt haben

* 5e354d1 (HEAD -> feature/JIRA123-amend-test) feat: [JIRA123] add feature 1.2 and 1.3
* 119f86e feat: [JIRA123] add feature 1.1
* 5dd0ad3 feat: [JIRA123] add feature 1
* c69f53d (origin/main, origin/feature/JIRA123-amend-test, origin/HEAD, main) Initial commit
Jetzt Dateien in unserem Repo lauten wie folgt:

.
├── README.md
└── feat1.txt

0 directories, 2 files
Angenommen, wir haben beim Senden von Feature 1.3 eine Konfigurationsdatei config.yaml vergessen und möchten das Protokoll nicht ändern oder eine neue Commit-ID hinzufügen, dann ist der folgende Befehl sehr einfach use

echo "feature 1.3 config info" > config.yaml
git add .
git commit --amend --no-edit
git commit --amend --no-edit ist die Seele. Werfen wir einen Blick auf die aktuelle Repo-Datei:

.
├── README.md
├── config.yaml
└── feat1.txt

0 directories, 3 files
Werfen wir einen Blick auf das Git-Protokoll

* 247572e (HEAD -> feature/JIRA123-amend-test) feat: [JIRA123] add feature 1.2 and 1.3
* 119f86e feat: [JIRA123] add feature 1.1
* 5dd0ad3 feat: [JIRA123] add feature 1
* c69f53d (origin/main, origin/feature/JIRA123-amend-test, origin/HEAD, main) Initial commit
Wenn wir diese Technik kennen, können wir das sicherstellen Jede unserer Einsendungen enthält gültige Informationen. Ein Bild, das den Prozess beschreibt, sieht so aus:

Mit dem Buff-Bonus von --no-edit ist es leistungsfähiger

Machen Sie Git Rebase -i gut aus

Sie können sich das Protokoll oben ansehen Wir entwickeln Feature 1. Bevor wir den Feature-Zweig mit dem Hauptzweig zusammenführen, sollten wir mit dem Zusammenführen der Protokoll-Commit-Knoten fortfahren. Dies wird verwendet

git rebase -i HEAD~n

wobei n die letzten paar Commits darstellt. Oben haben wir drei Commits für Feature 1, also Sie kann Folgendes verwenden: 3 Schritte, um es zu schaffen! Führen Sie einen sauberen Git-Commit-Datensatz

git rebase -i HEAD~3
Nach dem Ausführen wird ein vim-Editor mit dem folgenden Inhalt angezeigt:

 1 pick 5dd0ad3 feat: [JIRA123] add feature 1
 2 pick 119f86e feat: [JIRA123] add feature 1.1
 3 pick 247572e feat: [JIRA123] add feature 1.2 and 1.3
 4
 5 # Rebase c69f53d..247572e onto c69f53d (3 commands)
 6 #
 7 # Commands:
 8 # p, pick <commit> = use commit
 9 # r, reword <commit> = use commit, but edit the commit message
10 # e, edit <commit> = use commit, but stop for amending
11 # s, squash <commit> = use commit, but meld into previous commit
12 # f, fixup <commit> = like "squash", but discard this commit's log message
13 # x, exec <command> = run command (the rest of the line) using shell
14 # d, drop <commit> = remove commit
15 # l, label <label> = label current HEAD with a name
16 # t, reset <label> = reset HEAD to a label
17 # m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]
18 # .       create a merge commit using the original merge commit's
19 # .       message (or the oneline, if no original merge commit was
20 # .       specified). Use -c <commit> to reword the commit message.
21 #
22 # These lines can be re-ordered; they are executed from top to bottom.
23 #
24 # If you remove a line here THAT COMMIT WILL BE LOST.
25 #
26 #   However, if you remove everything, the rebase will be aborted.
27 #
28 #
29 # Note that empty commits are commented out</commit></oneline></label></commit></commit></label></label></commit></command></commit></commit></commit></commit></commit>
Die am häufigsten verwendeten zusammengeführten Commit-IDs sind Squash und Fixup, letzteres nicht hier und dann :wq Exit

1 pick 5dd0ad3 feat: [JIRA123] add feature 1
2 fixup 119f86e feat: [JIRA123] add feature 1.1
3 fixup 247572e feat: [JIRA123] add feature 1.2 and 1.3

Schauen wir uns noch einmal das Protokoll an, es ist sehr klar

* 41cd711 (HEAD -> feature/JIRA123-amend-test) feat: [JIRA123] add feature 1
* c69f53d (origin/main, origin/feature/JIRA123-amend-test, origin/HEAD, main) Initial commit
Rebase gut nutzen

Das obige Feature1 wurde vollständig entwickelt, der Hauptzweig wurde auch von anderen aktualisiert, und dann das Feature wieder mit dem Hauptzweig zusammenführen. Im Falle von Codekonflikten müssen Sie zuerst den Inhalt des Hauptzweigs mit dem Feature zusammenführen. Wenn Sie den Zusammenführungsbefehl verwenden, gibt es dort einen zusätzlichen Zusammenführungsknoten wird auch ein Wendepunkt im Protokollverlauf sein, der nicht linear ist, also können wir hier den Rebase-Befehl für den Feature-Zweig verwenden

git pull origin main --rebase

Der Pull-Befehl hilft uns automatisch bei der Zusammenführung, aber hier in Form von rebase, werfen wir einen Blick auf das Protokoll

* d40daa6 (HEAD -> feature/JIRA123-amend-test) feat: [JIRA123] add feature 1
* 446f463 (origin/main, origin/HEAD) Create main.properties
* c69f53d (origin/feature/JIRA123-amend-test, main) Initial commit

Der Übermittlungsknoten unserer Funktion „feature1“ über main oder behält die Linearität bei, dann können Sie den Code pushen, dann eine PR senden und Ihr Feature mit dem Hauptzweig zusammenführen

Eine einfache Beschreibung des Unterschieds zwischen Merge und Rebase lautet:

3 Schritte, um es zu schaffen! Führen Sie einen sauberen Git-Commit-Datensatz

Ich verwende hier git pull origin main --rebase, um den Vorgang des Wechselns von main und des Zurückziehens des neuesten Inhalts und des anschließenden Zurückschaltens zu vermeiden. Das Prinzip dahinter ist wie im Bild oben dargestellt ist eine goldene Regel, die man bei der Verwendung von Rebase befolgen sollte. Ich habe das schon einmal gesagt, deshalb werde ich es nicht mehr wiederholen. Mit diesen drei Tipps ist meiner Meinung nach jedermanns Git-Protokoll äußerst klar Wenn Sie es noch nicht wissen, können Sie es auf jeden Fall bewerben. Diese Art von Repo wird gesünder aussehen. Empfohlenes Lernen: „

Git Tutorial“

Das obige ist der detaillierte Inhalt von3 Schritte, um es zu schaffen! Führen Sie einen sauberen Git-Commit-Datensatz. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Dieser Artikel ist reproduziert unter:CSDN. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Github in Aktion: Beispiele und AnwendungsfälleGithub in Aktion: Beispiele und AnwendungsfälleApr 12, 2025 am 12:16 AM

GitHub ist ein leistungsstarkes Instrument zur Verbesserung der Effizienz und Qualität der Softwareentwicklung. 1) Versionskontrolle: Verwalten Sie Codeänderungen über Git. 2) PullRequests: Durchführen von Code -Überprüfung und Verbesserung der Codequalität. 3) Probleme: Verfolgen Sie Fehler und Projektfortschritte. 4) GitHubactions: Automatisieren Sie den Konstruktions-, Test- und Bereitstellungsprozess.

Git vs. GitHub: Versionskontrolle und Code -HostingGit vs. GitHub: Versionskontrolle und Code -HostingApr 11, 2025 am 11:33 AM

Git ist ein Versionskontrollsystem, und GitHub ist eine GIT-basierte Code-Hosting-Plattform. Git wird verwendet, um Codeversionen zu verwalten und unterstützt lokale Operationen. GitHub bietet Online -Zusammenarbeitstools wie das Problem mit der Ausgabe und PullRequest.

Was ist Git in einfachen Worten?Was ist Git in einfachen Worten?Apr 09, 2025 am 12:12 AM

Git ist ein Open -Source -Distributed -Versionskontrollsystem, mit dem Entwickler die Änderungen der Dateien verfolgen, zusammenarbeiten und Codeversionen verwalten können. Zu den Kernfunktionen gehören: 1) Modifikationen auf Datensätze, 2) Fallback in frühere Versionen, 3) kollaborative Entwicklung und 4) Niederlassungen für parallele Entwicklung erstellen und verwalten.

Ist Git das gleiche wie GitHub?Ist Git das gleiche wie GitHub?Apr 08, 2025 am 12:13 AM

Git und Github sind nicht dasselbe. Git ist ein Versionskontrollsystem, und GitHub ist eine GIT-basierte Code-Hosting-Plattform. Git wird verwendet, um Codeversionen zu verwalten, und GitHub bietet eine Online -Zusammenarbeit.

Wie benutze ich GitHub für HTML?Wie benutze ich GitHub für HTML?Apr 07, 2025 am 12:13 AM

Der Grund für die Verwendung von GitHub zur Verwaltung von HTML -Projekten ist, dass es eine Plattform für die Versionskontrolle, die kollaborative Entwicklung und die Präsentation von Werken bietet. Zu den spezifischen Schritten gehören: 1. Erstellen und initialisieren Sie das Git -Repository, 2. HTML -Dateien hinzufügen und senden. Darüber hinaus unterstützt GitHub auch Funktionen für die Code -Überprüfung, Ausgabe und PullRequest, um HTML -Projekte zu optimieren und zusammenzuarbeiten.

Soll ich mit Git oder GitHub beginnen?Soll ich mit Git oder GitHub beginnen?Apr 06, 2025 am 12:09 AM

Ausgehend von Git eignet sich besser für ein tiefes Verständnis der Prinzipien der Versionskontrolle. Ausgehend von GitHub eignet sich besser für die Konzentration auf Zusammenarbeit und Code -Hosting. 1.Git ist ein verteiltes Versionskontrollsystem, mit dem die Code -Versionsverlauf verwaltet wird. 2. GitHub ist eine Online -Plattform, die auf Git basiert und die Funktionen für Code -Hosting und Kollaboration bietet.

Besitzt Microsoft Git oder GitHub?Besitzt Microsoft Git oder GitHub?Apr 05, 2025 am 12:20 AM

Microsoft besitzt keinen Git, sondern besitzt GitHub. 1.Git ist ein verteiltes Versionskontrollsystem, das 2005 von Linus Torvaz erstellt wurde. 2. GitHub ist eine Online -Code -Hosting -Plattform, die auf Git basiert. Es wurde 2008 gegründet und 2018 von Microsoft übernommen.

Soll ich Git oder Github in meinen Lebenslauf setzen?Soll ich Git oder Github in meinen Lebenslauf setzen?Apr 04, 2025 am 12:04 AM

In Ihrem Lebenslauf sollten Sie sich dafür entscheiden, Git oder GitHub basierend auf Ihren Positionsanforderungen und persönlichen Erfahrungen zu schreiben. 1. Wenn die Position GIT -Fähigkeiten erfordert, markieren Sie Git. 2. Wenn die Position der Positionsbeteiligung bewertet, zeigen Sie GitHub. 3. Beschreiben Sie die Nutzungserfahrung und die Projektfälle im Detail und beenden Sie einen vollständigen Satz.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Leistungsstarke integrierte PHP-Entwicklungsumgebung

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools

Sicherer Prüfungsbrowser

Sicherer Prüfungsbrowser

Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.