Проверьте, действительно ли "remote" является git remote

Скажем, у меня есть список строк примерно так:

remotes/origin/master
remotes/origin
origin/master
origin

Как я могу узнать, является ли начало строки допустимым удаленным? Например,

remotes/origin
origin

Должны ли оба быть действительными пультами, в общем, верно? Как определить это хотя?

3 ответа

Hokay, чтобы ответить на фактический вопрос (вместо того, что я видел, что я ожидал увидеть из примеров):

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,

origin настоящий git remote - конструкция, содержащая URI удаленного хранилища, с которым взаимодействует ваш локальный клон.

origin/master ИЛИ ЖЕ remotes/origin/master обратитесь к версии master ветка доступна на удаленном originэти два могут использоваться взаимозаменяемо согласно этому ответу.

Я бы рекомендовал проверить этот ответ для более подробной информации (ваш вопрос может быть дубликатом?).

Что касается ответа на вопрос "как я могу проверить, является ли это действительным удаленным устройством" - я не знаю встроенного способа, но этот поток перечисляет некоторые хорошие идеи, как связать команды git для проверки.

Это странный способ взглянуть на имена в git... Любое имя идет. Все ваши примеры могут быть местными филиалами. Это было бы излишне запутанным, но ничто не мешает вам назвать местный филиал

remotes/something

Затем, если вы добавите его в свой апстрим, ваш список удаленных устройств покажет что-то вроде

remotes/remotes/something

Я бы сказал из строки без контекста, что вы ничего не можете предположить.

Чтобы проверить, соответствует ли какая-либо строка одному из пультов вашего репо

git branch -r | grep yourString

должен сделать свое дело.

Другие вопросы по тегам