git diff $(git merge-base origin/master HEAD)
给出我想要的输出。那有一个简短的版本吗?
git diff origin/master...
将更改提供给HEAD(不包括第一个命令所做的工作目录更改)
如果没有其他简写方法
,我可以使用top命令答案 0 :(得分:1)
这里没有简写语法来获取HEAD与origin / master的合并基础,然后将该合并基础与工作树区分开来。您也可以使用别名或脚本。 (顺便说一句,请注意@{u}
或@{upstream}
语法,它允许您使用HEAD
分支的已配置上游而不是硬编码origin/master
。这是当然,如果那是真正的上游,那就恰到好处。:-))
注意:它的git diff
本身接管...
语法,内部解析为三个或更多条目集:
$ git rev-parse A...B
6557bf269bcd52a6a925d5b6af6f487fa281a215
457cac425f167ad32d14bb82abcf1eb9a3663569
^05ff1e9e04a60268403a064963e18a399421cb38
(名称被更改,提交ID是真实的 - 但请注意,git rev-parse
不会打印此处的所有标志),带有一个SYMMETRIC_LEFT
标志,多个SYMMETRIC_LEFT|UNINTERESTING
标志(每个合并基数一个) ),和一个普通的正面参考。在您的情况下,使用git diff origin/master...
,正常的正面引用是(HEAD的提交ID)。然后,git diff
将UNINTERESTING
- 标记的提交(它是合并基础)与positive-ref提交区分开来。 (如果没有恰好有1个合并基础,则会中断:What is the difference between `git diff topic1 topic2 ^master` and `git diff topic1..topic2 ^master`?)