Выяснение названия исходного репозитория, с которого вы клонировали в Git
Когда вы делаете свой первый клон, используя синтаксис
git clone [email protected]:gitRepo.git
Возможно ли использовать ваш локальный репозиторий, чтобы найти имя этого исходного клона?
(Так что в приведенном выше примере найдите gitRepo.git
.)
Ответы
Ответ 1
В корне хранилища файл .git/config
содержит всю информацию об удаленных хранилищах и ветвях. В вашем примере вы должны искать что-то вроде:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = server:gitRepo.git
Также команда Git git remote -v
показывает имя и URL удаленного репозитория. "Исходный" удаленный репозиторий обычно соответствует исходному репозиторию, из которого была клонирована локальная копия.
Ответ 2
git config --get remote.origin.url
Ответ 3
Это быстрая команда Bash, которую вы, вероятно, ищете,
напечатает только базовое имя удаленного хранилища:
Где вы получаете из:
basename $(git remote show -n origin | grep Fetch | cut -d: -f2-)
В качестве альтернативы, где вы нажимаете на:
basename $(git remote show -n origin | grep Push | cut -d: -f2-)
Особенно опция -n
делает команду намного быстрее.
Ответ 4
Я использую это:
basename $(git remote get-url origin) .git
Который возвращает что-то вроде gitRepo
. (Удалите .git
в конце команды, чтобы вернуть что-то вроде gitRepo.git
.)
(Примечание: требуется Git версии 2.7.0 или новее)
Ответ 5
git remote show origin -n | ruby -ne 'puts /^\s*Fetch.*(:|\/){1}([^\/]+\/[^\/]+).git/.match($_)[2] rescue nil'
Он был протестирован с тремя разными стилями URL:
echo "Fetch URL: http://[email protected]:gitservice.org:20080/owner/repo.git" | ruby -ne 'puts /^\s*Fetch.*(:|\/){1}([^\/]+\/[^\/]+).git/.match($_)[2] rescue nil'
echo "Fetch URL: Fetch URL: [email protected]: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'