509 Stimmen

Wie kann ich eine Vorschau einer Zusammenführung in Git anzeigen?

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 y git 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.

1voto

Chugaister Punkte 354

Vielleicht kann Ihnen das helfen? git-diff-Baum - Vergleicht den Inhalt und den Modus von Blobs, die über zwei Baumobjekte gefunden wurden

1voto

Laura Punkte 525

Ich möchte den Git-Merge-Befehl nicht als Vorstufe zur Überprüfung widersprüchlicher Dateien verwenden. Ich möchte keine Zusammenführung durchführen, sondern mögliche Probleme vor der Zusammenführung erkennen - Probleme, die die automatische Zusammenführung vor mir verbergen könnte. Die Lösung, nach der ich gesucht habe, ist, wie ich Git dazu bringen kann, eine Liste von Dateien auszuspucken, die in beiden Zweigen geändert wurden, die in der Zukunft zusammengeführt werden, relativ zu einem gemeinsamen Vorgänger. Sobald ich diese Liste habe, kann ich andere Dateivergleichstools verwenden, um die Dinge weiter auszukundschaften. Ich habe mehrfach gesucht und noch immer nicht gefunden, was ich in einem nativen Git-Befehl suche.

Hier ist meine Lösung, falls sie jemandem da draußen hilft:

In diesem Szenario habe ich einen Zweig namens QA, der seit der letzten Produktionsversion viele Änderungen enthält. Unsere letzte Produktionsversion ist mit "15.20.1" gekennzeichnet. Ich habe einen weiteren Entwicklungszweig namens new_stuff, den ich mit dem QA-Zweig zusammenführen möchte. Sowohl QA als auch new_stuff verweisen auf Commits, die dem Tag 15.20.1 "folgen" (wie von gitk gemeldet).

git checkout QA
git pull
git diff 15.20.1 --name-only > QA_files
git checkout new_stuff
git pull
git diff 15.20.1 --name-only > new_stuff_files
comm -12 QA_files new_stuff_files

Hier sind einige Diskussionen, die aufzeigen, warum ich an diesen speziellen Dateien interessiert bin:

Wie kann ich Git Merge vertrauen?

https://softwareengineering.stackexchange.com/questions/199780/how-far-do-you-trust-automerge

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X