git - 是否有对上游分支的引用?

git - is there a reference to upstream branch?

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

git diff upstream-branch...

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

git diff UPSTREAM...

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


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

foo@{upstream}

是分支foo的上游。 @{u} 对于 @{upstream} 是 shorthand,并且独立时,意味着 HEAD@{upstream}

要获取上游的 符号名称,如果这是您需要的,请使用 git rev-parse --symbolic-full-namegit rev-parse --abbrev-ref。请注意,如果当前或给定分支没有上游集,您将从 git rev-parse.

收到错误消息

1branch.<em>B</em>.merge,但这必须是运行 通过给定远程的 fetch = 映射来找到正确的远程跟踪名称。也就是说,假设分支 brbranch.br.remote = rbranch.br.merge = xyz。然后,您必须 运行 refs/heads/xyz 通过 remote.r.fetch 规则得出与远程 r 上的 xyz 相对应的远程跟踪名称。没有可以为您执行此操作的命令行命令。