假设我有这样一个字符串列表:
remotes/origin/master
remotes/origin
origin/master
origin如何判断字符串的开头是否是有效的遥控器?例如,
remotes/origin
origin一般来说,两者都应该是有效的遥控器,对吗?如何确定这一点?
发布于 2018-08-11 07:08:31
好了,为了回答实际的问题(而不是我从示例中看到的那个我期望看到的):
git config --local --get-regexp "^remote\\.$yourname\\.url" >&- \
&& echo it\'s a remote应该能很好的服务。我为常用的选项组合提供了别名,我在这里使用的是
git config --global alias.grl '!f() { git config --local --get-regexp "${@-.}"; }; f'所以我在自己的工作中实际使用的测试应该是
git grl "^remote\\.$yourname\\.url" >&- && echo it\'s a remote为了测试远程跟踪分支的名称,我在第一次尝试时回答的问题是
[[ `git rev-parse --symbolic-full-name $anything` = refs/remotes/* ]] \
&& echo it\'s a remote或
case `git rev-parse --symbolic-full-name $anything` in
refs/remotes/*) echo yes ;;
esac如果你没有使用bash。
发布于 2018-08-11 06:39:31
origin是一个真正的git remote -一个包含本地克隆与之交互的远程存储库的URI的结构。
origin/master或remotes/origin/master是指远程origin上可用的master分支版本,根据this answer,这两种分支可以互换使用。
我建议查看this answer以了解更多细节(您的问题可能是重复的?)。
至于“我如何检查这是否是一个有效的遥控器”的答案--据我所知没有内置的方法,但this thread列出了一些很好的想法,如何将git命令链接起来进行检查。
发布于 2018-08-11 06:39:33
这是一种在git中查看姓名的奇怪方式...任何名字都行。您的所有示例都可以是本地分支。这可能会造成不必要的混乱,但没有什么可以阻止您命名本地分支机构
remotes/something然后,如果您将其推送到上游,您的远程列表将显示如下内容
remotes/remotes/something我会说,从一个没有上下文的字符串中,你不能假设任何东西。
检查某个字符串是否与您的存储库的某个遥控器匹配
git branch -r | grep yourString应该能行得通。
https://stackoverflow.com/questions/51794673
复制相似问题