Git

Git vergleicht zwei Branches

Git vergleicht zwei Branches

Fast alle Versionskontrollsysteme haben Verzweigungsoptionen. Aber Git ist bekannt für seine schnellen Verzweigungsfunktionen. Git Branches sind leicht. Daher sind die Leistungseinbußen für Verzweigungen minimal und Entwicklungsteams werden ermutigt, so viel wie möglich zu verzweigen und zusammenzuführen. Wenn Sie jedoch mit mehreren Zweigen arbeiten, ist es wichtig, die Unterschiede vergleichen und gegenüberstellen zu können. In diesem Tutorial werden wir einen Workflow durchlaufen, um zu sehen, wie wir verschiedene Branches und Commits vergleichen können.Stellen wir zunächst folgende Situation auf:

C00  =>  C01 => C03  => C06 (Master)

      \

       C02 => C04 => C05 (Entwicklung)

Folgende Schritte wurden unternommen:

Nach all den Commits enthält der Zweig 'master' die folgenden Dateien:

Hallo Welt.py
Liesmich.TXT

Und der Zweig "Entwicklung" enthält die folgenden Dateien:

Hallo Welt.py
die Info.TXT


Vergleich der Köpfe von zwei Zweigen

Sie können den Namen der Zweige verwenden, um die Köpfe zweier Zweige zu vergleichen:

$ git diff master… Entwicklung
diff --git a/hello_world.py b/hello_world.py
Index e27f806… 3899ed3 100644
--- a/hello_world.py
+++ b/hello_world.py
@@ -2,7 +2,7 @@
def main():
print("Erstes Hallo!")
- print("Zweites Hallo!")
-
+ print("Entwicklungszweig sagt Hallo")
+ print("Entwicklungszweig sagt nochmal Hallo")
if __name__ == "__main__":
Main()
diff --git a/info.txt b/info.TXT
neuer Dateimodus 100644
Index 0000000… 0ab52fd
--- /dev/null
+++ b/info.TXT
@@ -0,0 +1 @@
+Neue Informationen
diff --git a/readme.txt b/readme.TXT
Modus für gelöschte Dateien 100644
Index e29c296… 0000000
--- a/readme.TXT
+++ /dev/null
@@ -1,2 +0,0 @@
-1 Erste Zeile der Readme.TXT
-2 Zweite Zeile der Readme.TXT

Der diff-Befehl betrachtet die Änderungen rekursiv. Es hat die folgenden Diffs gelaufen:

diff -git a/hello_world.py b/hello_world.py
diff -git a/info.txt b/info.TXT
diff -git a/readme.txt b/readme.TXT

Hier steht 'a' für den 'Master'-Zweig und 'b' steht für den Entwicklungs-Zweig. Das 'a' wird immer dem ersten Parameter und 'b' dem zweiten Parameter zugewiesen.  Das /dev/null bedeutet, dass der Zweig die Datei nicht enthält.


Vergleich zwischen Commits

In unserem Beispiel hat der 'master'-Zweig die folgenden Commits:

$git-Status
Auf Zweigmeister
nichts zu begehen, Arbeitsverzeichnis sauber
$ git log --oneline
caa0ddd C06: Geänderte Readme.txt, um die zweite Zeile hinzuzufügen (Master-Zweig)
efaba94 C03: Readme hinzugefügt.txt (Master-Zweig)
ee60eac C01: hello_world geändert.py, um ein zweites Hallo hinzuzufügen (Master-Zweig)
22b4bf9 C00: hello_world hinzugefügt.py (Master-Zweig)

Der Entwicklungszweig hat die folgenden Commits:

$git-Status
Zur Branchenentwicklung
nichts zu begehen, Arbeitsverzeichnis sauber
$ git log --oneline
df3a4ee C05: Info hinzugefügt.txt (Entwicklungszweig)
0f0abb8 C04: hello_world geändert.py zum Hinzufügen des Entwicklungszweigs sagt noch einmal Hallo (Entwicklungszweig)
3f611a0 C02: hello_world geändert.py zum Hinzufügen des Entwicklungszweigs sagt Hallo (Entwicklungszweig)
22b4bf9 C00: hello_world hinzugefügt.py (Master-Zweig)

Angenommen, wir möchten die hello_world vergleichen.py für C01- und C02-Commits. Sie können die Hashes verwenden, um zu vergleichen:

$ git diff ee60eac:hello_world.py 3f611a0:hello_world.py
diff --git a/ee60eac:hello_world.py b/3f611a0:hello_world.py
Index e27f806… 72a178d 100644
--- a/ee60eac:hello_world.py
+++ b/3f611a0:hello_world.py
@@ -2,7 +2,7 @@
def main():
print("Erstes Hallo!")
- print("Zweites Hallo!")
+ print("Entwicklungszweig sagt Hallo")
if __name__ == "__main__":
Main()

Sie können das gleiche Prinzip auch verwenden, um Commits innerhalb desselben Branchs zu vergleichen.


Tools zur visuellen Zusammenführung

Textbasierte Vergleiche zu betrachten kann schwierig sein. Wenn Sie das Git-Difftool mit einer visuellen Zusammenführungsanwendung wie DiffMerge oder BeyondCompare einrichten, können Sie Unterschiede besser sehen see.

Weitere Studie:

Verweise:

Top 10 Spiele zum Spielen auf Ubuntu
Die Windows-Plattform war eine der dominierenden Plattformen für Spiele aufgrund des großen Prozentsatzes von Spielen, die heute entwickelt werden, um...
Die 5 besten Arcade-Spiele für Linux
Heutzutage sind Computer ernsthafte Maschinen, die zum Spielen verwendet werden. Wenn du den neuen Highscore nicht bekommst, weißt du was ich meine. I...
Schlacht um Wesnoth 1.13.6 Entwicklung veröffentlicht
Schlacht um Wesnoth 1.13.6, das letzten Monat veröffentlicht wurde, ist die sechste Entwicklungsversion im 1.13.x-Serie und bietet eine Reihe von Verb...