我在分支A
上,分支B
在它前面。我想看B
A
中的更改,但是当我运行git diff B
时,它会将其添加为删除,反之亦然,如果我想放B
更改为A
的工作副本(如果我有测试分支分支,则可取),尝试运行git diff B > Bfile
然后git apply Bfile
只会引发一堆错误。
如果我改为输入git diff A..B
(我已经在A
),则会显示正确的更改。
那么为什么第一个命令会在添加时将更改显示为删除?当我只想要与另一个分支进行准确的更改时,必须输入我已经开启的分支似乎是多余的和反直觉的。
答案 0 :(得分:1)
(请注意,git diff A B
与git diff A..B
同义,因此我将在此答案中互换使用。)
您所描述的行为是因为git diff B
等同于git diff B HEAD
,它显示了从 B
到 {{的更改 1}}。您的解决方法HEAD
有效(因为git diff A..B
)。要跳过指定git diff HEAD..B
分支(或A
)的要求,请执行:
HEAD
这会告诉Git在左侧填写git diff ..B
,因此它相当于HEAD
。