Коли ви робите перший клон, використовуючи синтаксис
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 host, як github чи gitlab.
Це працює для мене:
git config --get remote.origin.url | sed -e 's/^git@.*:\([[:graph:]]*\).git/\1/'
Він використовує sed
для заміни результату git config
команди просто назвою організації та репо.
Щось подібне github/scientist
було б відповідати класу символів [[:graph:]]
у звичайному виразі.
\1
Розповідає СЕД , щоб замінити всі з тільки що збіглися символів.
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'