Выяснение названия исходного репозитория, с которого вы клонировали в 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'