CyborgBeta
Banned
- Registriert
- Jan. 2021
- Beiträge
- 3.958
Ich habe schon im Internet gesucht, aber bislang keine praktikable Lösung gefunden. 
Der Main-Branch hat folgende Commits:
A, B, ... Y, Z
In B kam ein Feature hinzu, das in Z wieder entfernt wurde. Leider wurden aber einige Änderungen beim Entfernen übersehen. 👀
Ich möchte nun B und Z vergleichen, aber dabei alle Änderungen, die zwischenzeitlich kamen, ignorieren.
Mathematisch gesehen: (Z-A) + B - Z
Folgendes funktioniert leider nicht:
git checkout Z
git cherry-pick -n B
git diff --cached
denn beim cherry-pick Merge treten lauter Konflikte auf, die ich jedes Mal manuell lösen muss, also in der Kette zurück von Y bis C ... (gelöschte Dateien).
Gleiches auch bei einem Revert.
Versucht hatte ich auch:
(das erste ist das normale Gnu diff) Aber das listet nur bestimmte Dateinamen auf, in denen es Änderungen gab, die in Z noch nicht wieder rückgängig gemacht bzw. entfernt wurden - und nicht die eigentlichen Änderungen.
Danke für Hilfe.

Der Main-Branch hat folgende Commits:
A, B, ... Y, Z
In B kam ein Feature hinzu, das in Z wieder entfernt wurde. Leider wurden aber einige Änderungen beim Entfernen übersehen. 👀
Ich möchte nun B und Z vergleichen, aber dabei alle Änderungen, die zwischenzeitlich kamen, ignorieren.
Mathematisch gesehen: (Z-A) + B - Z
Folgendes funktioniert leider nicht:
git checkout Z
git cherry-pick -n B
git diff --cached
denn beim cherry-pick Merge treten lauter Konflikte auf, die ich jedes Mal manuell lösen muss, also in der Kette zurück von Y bis C ... (gelöschte Dateien).
Gleiches auch bei einem Revert.
Versucht hatte ich auch:
diff <(sort <(git diff --name-only A Z)) <(sort <(git diff --name-only B Z)) | grep '^< '
(das erste ist das normale Gnu diff) Aber das listet nur bestimmte Dateinamen auf, in denen es Änderungen gab, die in Z noch nicht wieder rückgängig gemacht bzw. entfernt wurden - und nicht die eigentlichen Änderungen.
Danke für Hilfe.