Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.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 - Fatal编程技术网

Git:给定的远程跟踪分支-如何找到它正在跟踪的远程/分支

Git:给定的远程跟踪分支-如何找到它正在跟踪的远程/分支,git,Git,我有特殊规格的遥控器 [remote "devall"] url = https://BNahum90789@dcilpa670/scm/devops/dev4all.git fetch = +refs/heads/dev/BNahum90789_2/*:refs/remotes/dev_BNahum90789/* 现在我推到remote: git push -u devall my:dev/BNahum90789_2/my_on_remote 因此,我的远程跟踪分支如下所示: git re

我有特殊规格的遥控器

[remote "devall"]
url = https://BNahum90789@dcilpa670/scm/devops/dev4all.git
fetch = +refs/heads/dev/BNahum90789_2/*:refs/remotes/dev_BNahum90789/*
现在我推到remote:

git push -u devall my:dev/BNahum90789_2/my_on_remote
因此,我的远程跟踪分支如下所示:

git rev-parse --symbolic-full-name dev_BNahum90789/my_on_remote
refs/remotes/dev_BNahum90789/my_on_remote
鉴于这个远程跟踪分支 'refs/remotes/dev_BNahum90789/my_on_remote' 如何在remote上找到remote和branch的名称?? 请注意,它不包含远程名称或本地跟踪分支

我能想到的唯一办法就是仔细检查所有遥控器的规格,找出哪一个匹配

谢谢
Boaz

您是正确的,对于这种非常困难的情况,您必须迭代所有远程设备的所有获取规范。这类似于Git在获取时在内部执行的操作:它获取另一个Git提供的每个引用,如Git ls remote url所示,并在该特定远程的所有获取行中运行它,以查看它映射到的名称。如果多个输入名称映射到该输出名称,则为错误。1

在本例中,您没有输入名称,而是输出名称。无法保证从输出名称到可能的输入名称之间存在唯一的映射。当然,您可以在该远程设备上运行gitlsremote,以查看它们有哪些输入名称,从而重复git所做的工作

从本地分支名称出发要简单得多,它们要么将远程跟踪名称设置为上游名称,要么不设置

1在某些版本的Git中,不会出现任何实际错误,只会出现奇怪的行为

默认情况下,Git将远程名称嵌入远程跟踪分支名称中。当你把它拿出来的时候,你没有打碎任何东西, 所有跟踪r-t-b的东西都在跟踪他们,没有这个,fetch仍然在更新他们,一切都还在运行。这只会让你更难理解

我如何在remote上找到remote和branch的名称

查找映射到您的r-t-b名称的参照规范

git config --get-regexp fetch refs/remotes/dev_BNahum90789
查看映射到该r-t-b名称的所有参照规范。在你的情况下,你至少会得到

remote.devall.fetch +refs/heads/dev/BNahum90789_2/*:refs/remotes/dev_BNahum90789/*
对于一次性的,很容易观察地图。如果您将多个遥控器映射到同一个跟踪前缀,可能会造成麻烦,我认为这不会是您的第一个指示,因此我将忽略这种可能性

顺便说一下,我有

git config alias.grl '!f() { git config --local --get-regexp "${@-.}"; }; f' 
git config alias.gr '!f() { git config --get-regexp "${@-.}"; }; f'

默认情况下,搜索会显示所有内容并使搜索更容易键入,git grl fetch BNahum可能会这样做。

可能的重复不是重复,而是查找跟踪特定本地远程跟踪分支的分支,但branch-vvv会显示正在跟踪的实际远程分支,不是本地跟踪代理。分支跟踪实际的上游分支引用名称,而不是远程跟踪名称。这也让我很惊讶。@torek谢谢。有什么理由去参加所有的比赛吗?@jthill:我相信这是在命名遥控器之前的遗留下来的。博阿兹纳姆:我不知道你的意思。我认为这很有用:切换遥控器不会使跟踪分支失效,本地跟踪只是使用。作为遥控器。
git config alias.grl '!f() { git config --local --get-regexp "${@-.}"; }; f' 
git config alias.gr '!f() { git config --get-regexp "${@-.}"; }; f'