Git ist ein sehr beliebtes Versionskontrolltool, mit dem wir Codeänderungen und Zusammenarbeit einfach verwalten können. Und wenn wir den Änderungsverlauf einer bestimmten Datei innerhalb eines bestimmten Zeitraums extrahieren müssen, wie sollen wir das tun? Heute stellen wir vor, wie Sie Git-Befehle verwenden, um Dateiänderungsdatensätze innerhalb eines Zeitintervalls zu extrahieren.
Zunächst müssen wir einige Grundkenntnisse von Git verstehen:
In Git wird jede Codeübermittlung aufgezeichnet und als Übermittlungsdatensatz gespeichert, was ein Commit darstellt. Jeder Commit verfügt über einen eindeutigen Hashwert, der zur Unterscheidung verschiedener Commit-Datensätze verwendet wird.
Alle Übermittlungsdatensätze werden im Git-Repository gespeichert und bilden einen Übermittlungsverlauf. Wir können Git-Befehle verwenden, um den Übermittlungsverlauf anzuzeigen, einschließlich Hash-Wert, Autor, Übermittlungszeitpunkt, geänderte Dateien und andere Informationen zu jeder Übermittlung.
In Git können wir Zeitintervalle verwenden, um einen Zeitraum darzustellen. Es gibt verschiedene Möglichkeiten, Zeitintervalle auszudrücken, wie zum Beispiel:
Verstanden Nach diesem Grundwissen wollen wir untersuchen, wie Dateiänderungsdatensätze innerhalb eines Zeitintervalls extrahiert werden.
Angenommen, wir haben den folgenden Einreichungsverlauf:
commit 2942849f3f44e6da111d2b58fe6c24c156835c90 Author: John Doe <john@example.com> Date: Mon Feb 22 11:27:23 2021 +0800 Add README.md commit e0fdb2b0364a73f347f1a1b46c13bfbd5ac07a08 Author: John Doe <john@example.com> Date: Sat Feb 20 14:52:32 2021 +0800 Fix typo in index.html commit 71f6be88b1562fe596c69b88ac9f72dbeac78786 Author: Alice Zhang <alice@example.com> Date: Fri Feb 19 22:33:12 2021 +0800 Update index.html commit 275711456d94c307b6416d94da74e5c8b98497c7 Author: Bob Chen <bob@example.com> Date: Thu Feb 18 09:45:43 2021 +0800 Add new feature commit fd9bf6e768bb58d2a1ebf0b604805d7cca34c563 Author: Alice Zhang <alice@example.com> Date: Wed Feb 17 15:18:02 2021 +0800 Initial commit
Wir möchten alle geänderten README.md-Dateien extrahieren, deren Einreichungszeitpunkt zwischen dem 18. und 21. Februar lag. Sie können den folgenden Befehl verwenden:
git log --since=2021-02-18 --until=2021-02-21 --pretty=format:"%h - %an, %ar : %s" --name-only --grep='README.md'
Befehlsanalyse:
Nach dem Ausführen des obigen Befehls werden die folgenden Ergebnisse ausgegeben:
2942849 - John Doe, 29 minutes ago : Add README.md e0fdb2b - John Doe, 2 days ago : Fix typo in index.html
Wie Sie sehen können, erfüllen nur zwei Übermittlungsdatensätze die Zeitintervall- und Grep-Bedingungen. Wenn wir die spezifischen Dateien sehen möchten, die in diesen Übermittlungen geändert wurden, können wir eine Option --stat hinzufügen:
git log --since=2021-02-18 --until=2021-02-21 --pretty=format:"%h - %an, %ar : %s" --name-only --grep='README.md' --stat
Befehlsanalyse:
Nach dem Ausführen des obigen Befehls werden die folgenden Ergebnisse ausgegeben:
2942849 - John Doe, 29 minutes ago : Add README.md README.md | 1 + 1 file changed, 1 insertion(+) e0fdb2b - John Doe, 2 days ago : Fix typo in index.html README.md | 2 ++ 1 file changed, 2 insertions(+)
Wie Sie sehen können, besteht die erste Übermittlung darin, die Datei README.md hinzuzufügen, und die zweite Übermittlung besteht darin, die Datei README.md zu ändern und zwei Zeilen hinzugefügt.
Zusätzlich zu den oben genannten Methoden zum Anzeigen des Übermittlungsverlaufs können wir auch den Befehl git Blame verwenden, um den Änderungsverlauf von Dateien anzuzeigen, einschließlich des Hash-Werts und des Autors der Übermittlung.
git blame README.md --since=2021-02-18 --until=2021-02-21
Befehlsanalyse:
Nach der Ausführung des obigen Befehls werden die folgenden Ergebnisse ausgegeben:
2942849f (John Doe 2021-02-22 11:27:23 +0800 1) This is a README file. e0fdb2b0 (John Doe 2021-02-20 14:52:32 +0800 2) It contains information about the project. e0fdb2b0 (John Doe 2021-02-20 14:52:32 +0800 3) e0fdb2b0 (John Doe 2021-02-20 14:52:32 +0800 4) Update: fix typo.
Wie Sie sehen können, handelt es sich bei den ersten Zeilen 1 und 4 um zwei verschiedene Einsendungen, beide von John Doe.
Zusammenfassend können wir Git-Befehle verwenden, um Dateiänderungsdatensätze innerhalb eines Zeitintervalls zu extrahieren. Diese Befehle sind leicht zu beherrschen und erfordern lediglich das Verständnis einiger grundlegender Konzepte und Parameter. Wenn wir den Code-Änderungsverlauf innerhalb eines bestimmten Zeitraums anzeigen müssen, können uns diese Befehle dabei helfen, schnell die relevanten Übermittlungsdatensätze zu finden und die geänderten Dateien und Inhalte anzuzeigen.
Das obige ist der detaillierte Inhalt vonGit extrahiert Zeitintervall-Änderungsdateien. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!