Heim > Entwicklungswerkzeuge > Idiot > Git extrahiert Zeitintervall-Änderungsdateien

Git extrahiert Zeitintervall-Änderungsdateien

WBOY
Freigeben: 2023-05-20 09:48:37
Original
757 Leute haben es durchsucht

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:

  1. Git-Übermittlungsdatensatz

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.

  1. Git-Übermittlungsverlauf

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.

  1. Git-Zeitintervall

In Git können wir Zeitintervalle verwenden, um einen Zeitraum darzustellen. Es gibt verschiedene Möglichkeiten, Zeitintervalle auszudrücken, wie zum Beispiel:

  • Datum: 01.01.2019
  • Relative Zeit: vor 2 Wochen
  • Zeitraum: 01.01.2019..31.12.2019

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
Nach dem Login kopieren

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'
Nach dem Login kopieren

Befehlsanalyse:

  • git log: Einreichungsverlauf anzeigen
  • --since=2021-02-18: Nur Einreichungen vom 2021-02-18
  • --bis =2021 anzeigen -02-21: Anzeige auf Einsendungen bis zum 21.02.2021 beschränken
  • --pretty=format: "%h - %an, %ar : %s": Geben Sie das Druckformat an, einschließlich des übermittelten Hash-Werts. Autor, Einreichungszeit und Einreichungsinformationen
  • --name-only: zeigt nur den geänderten Dateinamen an, nicht den geänderten Inhalt der Datei
  • --grep='README.md': sucht nur nach Dateien, die README.md enthalten. Senden Datensätze

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
Nach dem Login kopieren

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
Nach dem Login kopieren

Befehlsanalyse:

  • --stat: Zeigt die Liste der durch jede Übermittlung geänderten Dateien und die Gesamtsituation der Datei an Änderung

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(+)
Nach dem Login kopieren

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
Nach dem Login kopieren

Befehlsanalyse:

  • Git Blame: Änderungsverlauf der Datei anzeigen
  • README.md: Geben Sie die anzuzeigende Datei an
  • --since=2021-02-18: Beschränken Sie die Anzeige auf nur diejenigen ab 18.02.2021 Änderungsverlauf
  • --until=21.02.2021: Beschränkung auf die Anzeige nur des Änderungsverlaufs bis zum 21.02.2021

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.
Nach dem Login kopieren

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!

Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage