Когда вы делаете свой первый клон, используя синтаксис
git clone username@server:gitRepo.git
Можно ли с помощью локального репозитория найти имя этого исходного клона?
(Так что в приведенном выше примере найдите gitRepo.git.)
Когда вы делаете свой первый клон, используя синтаксис
git clone username@server:gitRepo.git
Можно ли с помощью локального репозитория найти имя этого исходного клона?
(Так что в приведенном выше примере найдите gitRepo.git.)
Ответы:
В корне репозитория .git/configфайл содержит всю информацию об удаленных репозиториях и ветках. В вашем примере вы должны искать что-то вроде:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = server:gitRepo.git
Кроме того, команда Git git remote -vпоказывает имя и URL-адрес удаленного репозитория. "Исходный" удаленный репозиторий обычно соответствует исходному репозиторию, из которого была клонирована локальная копия.
git remote show originчтобы увидеть больше информации только об этом пульте.
git remote -vпросто читает и записывает .git/config.
git config --get remote.origin.url
git remote show originк сети.
Это быстрая команда Bash, которую вы, вероятно, ищете, будет печатать только базовое имя удаленного репозитория:
Где вы запрашиваете из :
basename $(git remote show -n origin | grep Fetch | cut -d: -f2-)
В качестве альтернативы , когда вы нажимаете на :
basename $(git remote show -n origin | grep Push | cut -d: -f2-)
Особенно эта -nопция делает команду намного быстрее.
Я наткнулся на этот вопрос, пытаясь понять organization/repo строку с хоста git, такого как github или gitlab.
Это работает для меня:
git config --get remote.origin.url | sed -e 's/^git@.*:\([[:graph:]]*\).git/\1/'
Он используется sedдля замены вывода git configкоманды только на название организации и репо.
Что-то вроде github/scientistэтого соответствовало бы классу символов [[:graph:]]в регулярном выражении.
Команда \1sed сообщает, что нужно заменить все только совпадающими символами.
git config --get remote.origin.url | sed -e 's/^git@.*:\([[:graph:]]*\).git/\1/'
git remote show origin -n | ruby -ne 'puts /^\s*Fetch.*(:|\/){1}([^\/]+\/[^\/]+).git/.match($_)[2] rescue nil'
Он был протестирован с тремя разными стилями URL:
echo "Fetch URL: http://user@pass:gitservice.org:20080/owner/repo.git" | ruby -ne 'puts /^\s*Fetch.*(:|\/){1}([^\/]+\/[^\/]+).git/.match($_)[2] rescue nil'
echo "Fetch URL: Fetch URL: git@github.com:home1-oss/oss-build.git" | ruby -ne 'puts /^\s*Fetch.*(:|\/){1}([^\/]+\/[^\/]+).git/.match($_)[2] rescue nil'
echo "Fetch URL: https://github.com/owner/repo.git" | ruby -ne 'puts /^\s*Fetch.*(:|\/){1}([^\/]+\/[^\/]+).git/.match($_)[2] rescue nil'