Проверьте, действительно ли "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
должен сделать свое дело.