Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git-显示远程分支的远程名称_Git_Shell - Fatal编程技术网

Git-显示远程分支的远程名称

Git-显示远程分支的远程名称,git,shell,Git,Shell,是否有Git命令显示远程分支的远程名称 目前我坚持使用shell utils从远程分支引用中提取远程名称,如 $ echo "remote-name/branch-name" | sed -r 's;^([^/]+)/.*;\1;' remote-name 有时为了验证的目的传递它 $ git rev-parse --symbolic-full-name "remote-name/branch-name" | ... 我想知道是否有像这样的内置命令 $ git wanted-command

是否有Git命令显示远程分支的远程名称

目前我坚持使用shell utils从远程分支引用中提取远程名称,如

$ echo "remote-name/branch-name" | sed -r 's;^([^/]+)/.*;\1;'
remote-name
有时为了验证的目的传递它

$ git rev-parse --symbolic-full-name "remote-name/branch-name" | ...
我想知道是否有像这样的内置命令

$ git wanted-command [wanted options] "remote-name/branch-name"
remote-name

我已经看过了
revparse
remote
ls remote
的手册页,它们不是最漂亮的解决方案,但我认为它通常应该可以工作。(我觉得应该有更好的办法,但我现在想不起来了。)


而且,为了完整性和总结下面的一些评论,远程上的跟踪分支的名称(可能与本地存储库中的名称remote ref不同)可从
branch获得。$symref.merge

git branch-av
应该这样做不,它显示所有分支,包括它们的跟踪(远程)分支(如果有)。我想使用正式的GIt命令获取远程名称(比如“origin”),而不是通过解析分支名称。你说得对。我的错…这是正确的方法。但是,请注意,如果上面的输出是
,则“远程”是您自己的本地存储库,例如,您的本地分支
foo
可能正在“跟踪”您自己的本地分支
主库。另外,如果您想知道
branch.$symref.name
中的远程分支的名称,但由于
fetch=
行的工作方式,本地远程跟踪分支可能有其他名称(但这很少见,可能不存在,这只是可能的)@torek你能再解释一下最后一位吗(re:
fetch=
)?好:通常如果你看一个像
origin
(in.git/config)这样的遥控器,你会看到:
fetch=+refs/heads/*:refs/remotes/origin/*
。这就是他们的
母版
如何成为您的
原点/母版
,两个
*
是匹配的。但是如果您找到
fetch=+refs/heads/master:refs/remotes/origin/xyzy
,则它们的
master
将成为您的
origin/xyzy
。如果您想跟踪他们的,您应该有
branch.master.remote=origin
,但是
branch.master.merge=master
,即使您正在跟踪
origin/xyzy
。这在某种程度上是一个历史性的意外。(空间不足)
merge
行列出了在回购协议中已知的分支名称,因此要了解分支在您自己的回购协议中是如何被知道的,您必须通过与远程相关联的
fetch=
行对其进行映射。让该映射的输出不是
origin/master
,这是非常疯狂的,但这是允许的。如果你做了这么疯狂的事情,我不确定git的哪些部分表现得好还是不好。@torek啊,谢谢。是的,特定的
fetch
ref很奇怪。还有一个问题。什么设置分支$symref.name
,在哪里记录?我哪儿也看不到。
symref=$(git symbolic-ref --short HEAD)
git config --local "branch.$symref.remote"