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'