1

自从我开始使用功能分支以来,我可以要求差异:

git diff upstream-branch...

但它要求我知道上游分支是什么。是否有上游分支的参考,无论它可能是我事先不知道或不得不挖掘它吗?比如,我不知道:

git diff UPSTREAM...
4

1 回答 1

3

作为一个班轮:git diff @{u}...


分支的上游由两部分组成,两者都可以用 设置和检索git config远程部分很简单,因为给定一个名为 的分支,B它是. 如果你使用,后半部分会更难。1 幸运的是,自从 Git 版本 1.8 左右以来,该后缀适用于所有解析分支名称的事物:branch.B.remotegit config@{upstream}

foo@{upstream}

是分支的上游foo@{u}是 的简写@{upstream},独立的意思是HEAD@{upstream}

要获取上游的符号名称,如果这是您需要的,请使用git rev-parse --symbolic-full-nameor git rev-parse --abbrev-ref。请注意,如果没有为当前或给定分支设置上游,您将收到来自git rev-parse.


1它是,但这必须通过给定遥控器的映射来找到正确的远程跟踪名称。也就是说,假设分支有和。然后,您必须运行规则以找到对应于远程的远程跟踪名称 remote 。没有命令行命令可以为您执行此操作。branch.B.mergefetch =brbranch.br.remote = rbranch.br.merge = xyzrefs/heads/xyzremote.r.fetchxyzr

于 2021-05-24T22:26:10.963 回答