Ich bin auf Zweig A
und Zweig B
ist davor. Ich möchte die Änderungen in B
von A
sehen, aber wenn ich rufe git diff B
zeigt es seine Ergänzungen als Löschungen und umgekehrt, und wenn ich B
's Änderungen in die Arbeitskopie von A
setzen möchte (wünschenswert, wenn ich einen Test habe Abzweigung Zweig), versucht git diff B > Bfile
zu laufen, dann git apply Bfile
wirft nur eine Reihe von Fehlern.Seltsames git diff Verhalten
Wenn ich stattdessen git diff A..B
(ich bin bereits auf A
) eingeben, zeigt es die richtigen Änderungen.
Warum zeigt der erste Befehl die Änderungen als Löschungen an, wenn sie hinzugefügt werden? Es scheint redundant und kontraintuitiv zu sein, den Zweig, in dem ich bereits bin, zu tippen, wenn ich nur die genauen Änderungen mit einem anderen Zweig haben möchte.
Sie können HEAD auch als '@' abkürzen, z. B. 'git diff @ B'. Und Sie können '-R' verwenden, um die Richtung eines Diffs umzukehren, so dass Sie dies als' git diff-R B' schreiben können. (Ich schreibe einfach HEAD, es ist nicht so schwer zu tippen und es scheint am klarsten :-)) – torek