Когда вы делаете свой первый клон, используя синтаксис
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:]]
в регулярном выражении.
Команда \1
sed сообщает, что нужно заменить все только совпадающими символами.
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'