Ich habe einen Git-Zweig (z. B. den Hauptzweig) und möchte einen anderen Entwicklungszweig einbinden. Oder muss ich das?
Um zu entscheiden, ob ich diesen Zweig wirklich zusammenführen möchte, würde ich gerne eine Art Vorschau sehen, was die Zusammenführung bewirken wird. Vorzugsweise mit der Möglichkeit, die Liste der Commits zu sehen, die angewendet werden.
Bislang ist das Beste, was mir einfällt merge --no-ff --no-commit
und dann diff HEAD
.
22 Stimmen
Ich würde nur
git merge
ygit reset --keep HEAD@{1}
wenn mir das Ergebnis nicht gefällt.4 Stimmen
Beachten Sie, dass die Liste der Commits mit ihrem Diff nicht notwendigerweise die ganze Geschichte erzählt - wenn die Zusammenführung nicht trivial ist, und besonders wenn es Konflikte gibt, könnte das tatsächliche Ergebnis der Zusammenführung ein wenig interessant sein.
0 Stimmen
Das Problem dabei ist, dass man nur schwer erkennen kann, welche Änderungen tatsächlich vorgenommen wurden.
2 Stimmen
Ihre ursprüngliche Methode tut genau das. Der Punkt meines Kommentars ist, dass es zwar schön und gut ist, einzelne Diffs zu betrachten, aber bei einem komplexen Merge kann es zu überraschenden Ergebnissen kommen, selbst wenn alle zusammengeführten Commits unabhängig voneinander gut sind.
3 Stimmen
@Jan: Aus einigen Gründen,
git reset --keep HEAD@{1}
zurückgegebenfatal: Cannot do a keep reset in the middle of a merge.
Hilfe?0 Stimmen
@Siku-Siku.Com: Der Befehl geht davon aus, dass die Zusammenführung abgeschlossen und das Ergebnis commited wurde. Ich glaube, die Meldung über Konflikte sagt Ihnen sowohl, wie Sie die Zusammenführung beenden als auch wie Sie sie abbrechen können.
1 Stimmen
Mögliche Duplikate von Gibt es eine Option git-merge --dry-run?
11 Stimmen
Warum gibt es nicht eine
--preview
Option in git-merge?0 Stimmen
Ich glaube, die korrekteste Antwort, die ich auf diese Frage gesehen habe, ist hier: stackoverflow.com/a/6283843/1695680