在分支上git变化的简短手牌

时间:2017-01-15 16:37:59

标签: git

git diff $(git merge-base origin/master HEAD)

给出我想要的输出。那有一个简短的版本吗?

git diff origin/master...

将更改提供给HEAD(不包括第一个命令所做的工作目录更改)

如果没有其他简写方法

,我可以使用top命令

1 个答案:

答案 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 diffUNINTERESTING - 标记的提交(它是合并基础)与positive-ref提交区分开来。 (如果没有恰好有1个合并基础,则会中断:What is the difference between `git diff topic1 topic2 ^master` and `git diff topic1..topic2 ^master`?