如何从本地分支获取远程名称?
请注意,我不想要远程跟踪分支名称,只需要远程名称。
考虑这个人为的例子。我如何获得prefix/github
?
$ git status -b
## dev...prefix/github/rm/dev
$ git remote
github
prefix
prefix/github
所以prefix/github
是远程和本地分支dev
正在跟踪远程分支rm/dev
。
到目前为止,我知道这种方式,但它并不完全。
$ git rev-parse --abbrev-ref @{u} 2>/dev/null | cut -d'/' -f1
prefix
prefix/github
远程名称是故意的。我可以忍受保持我的遥控器没有正斜线(在这种情况下上面会工作),但想知道我是否遗漏了什么。
fyi:我有一个bash脚本,最终会使用它。
更新
请参阅此评论,了解为什么这个问题不是骗局: Get remote name from local branch
答案 0 :(得分:1)
这很有效。
git config --get branch.dev.remote
本地git配置文件(.git/config
)应该包含以下branch
部分:
[branch "dev"]
remote = prefix/github
merge = refs/heads/dev
我真的很惊讶这是人为的。
答案 1 :(得分:0)
在为分支设置跟踪后,您要查找的信息将存储在.git/config
文件中。您应该可以轻松地从那里提取它(例如,grep -B ... | grep ...
- 请在查看该文件后自己填写点。)
请注意,可能存在没有远程跟踪信息的分支。