How can I retrieve the remote git address of a repo?
I tried git remote but that just lists the branches.
asked Jan 11, 2012 at 8:14
2
When you want to show an URL of remote branches, try:
git remote -v
answered Jan 11, 2012 at 8:17
Jan MarekJan Marek
10.2k3 gold badges21 silver badges19 bronze badges
2
If you have the name of the remote, you will be able with git 2.7 (Q4 2015), to use the new git remote get-url
command:
git remote get-url origin
(nice pendant of git remote set-url origin <newurl>
)
See commit 96f78d3 (16 Sep 2015) by Ben Boeckel (mathstuf
).
(Merged by Junio C Hamano — gitster
— in commit e437cbd, 05 Oct 2015)
remote: add get-url subcommand
Expanding
insteadOf
is a part ofls-remote --url
and there is no way
to expandpushInsteadOf
as well.
Add aget-url
subcommand to be able to query both as well as a way to get all configured urls.
answered Oct 7, 2015 at 12:10
VonCVonC
1.2m513 gold badges4329 silver badges5143 bronze badges
-v. Shows URLs of remote repositories when listing your current remote connections. By default, listing remote repositories only shows you their shortnames (e.g. “origin”). Using the “-v” option, you will also see the remote’s URLs in listings.
git remote -v
answered Nov 18, 2021 at 6:50
The long boring solution, which is not involved with CLI, you can manually navigate to:
your local repo folder ➡ .git folder (hidden) ➡ config file
then choose your text editor to open it and look for url located under the [remote “origin”] section.
answered Dec 2, 2020 at 12:26
A.I.A.I.
277 bronze badges
GitHub URL Tutorial
A Git repository is of very little use if it resides entirely on your remote GitHub or GitLab account. To actually work with the various files and resources stored in that repository, you need to pull or clone that code from the remote repo to your local machine. And to do that, you need to find the GitHub URL and use it.
To use a GitHub URL, follow these steps:
- On the GitHub website, click on you repository of interest.
- Locate the green button named Code and click on it. The GitHub URL will appear.
- Copy the GitHub URL.
- Open a Git client such as the BASH shell or GitHub Desktop on your local machine.
- Use the GitHub URL to clone the remote repo.
Once the remote repository is cloned, you can pretty much forget about the GitHub URL. Git saves the URL for you, so all future push and pull commands will know which remote repo to to interact with.
Once you fnd the GitHub URL of the remote repo you can use it to clone the repository locally.
GitHub URL examples
For most clone operations, the HTTPS based GitHub URL is all that is needed. That is the one that is shown by default on the repository page. But it actually comes in three flavors: HTTPS, SSL and GitHub CLI.
Git with SSH Keys Tutorials |
---|
Need to configure SSH Keys for GitHub, GitLab, BitBucket or CodeDeploy? These Git SSH Key examples will help:
Follow these tutorials and you’ll learn to Git over SSH fast. |
Here’s what the three GitHub URLs look like if you were to copy each of them:
-
https://github.com/cameronmcnz/rock-paper-scissors.git
-
[email protected]:cameronmcnz/rock-paper-scissors.git
-
gh repo clone cameronmcnz/rock-paper-scissors
Clone with the GitHub URL
With the GitHub URL in hand, the clone operation is relatively simple. Sometimes Windows developers are reluctant to open up the BASH shell that comes pre-packaged with a Git installation, but it’s really worth overcoming that fear with Git. Here’s the command you would use in BASH to clone the GitHub repository referenced by the HTTPS GitHub URL above:
git clone https://github.com/cameronmcnz/rock-paper-scissors.git
When that Git clone command executes, the GitHub URL will be used to copy all of the remote files, along with the entire commit history, to the local developer machine. From there, a developer can perform as many local commits, fetch and push operations as they need.
The GitHub URL is easily copied and used in Git GUI client tools.
And that’s how you find and use the GitHub URL.
When you do your first clone using the syntax
git clone username@server:gitRepo.git
Is it possible using your local repository to find the name of that initial clone?
(So in the above example, find gitRepo.git
.)
asked Nov 2, 2010 at 9:12
1
git config --get remote.origin.url
answered Jun 24, 2016 at 2:16
StraffStraff
5,4294 gold badges33 silver badges31 bronze badges
2
In the repository root, the .git/config
file holds all information about remote repositories and branches. In your example, you should look for something like:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = server:gitRepo.git
Also, the Git command git remote -v
shows the remote repository name and URL. The “origin” remote repository usually corresponds to the original repository, from which the local copy was cloned.
answered Nov 2, 2010 at 9:25
allaitallait
3,2493 gold badges24 silver badges9 bronze badges
2
This is quick Bash command, that you’re probably searching for,
will print only a basename of the remote repository:
Where you fetch from:
basename $(git remote show -n origin | grep Fetch | cut -d: -f2-)
Alternatively where you push to:
basename $(git remote show -n origin | grep Push | cut -d: -f2-)
Especially the -n
option makes the command much quicker.
answered Feb 27, 2013 at 17:12
CaseyCasey
1,4021 gold badge19 silver badges23 bronze badges
0
I use this:
basename $(git remote get-url origin) .git
Which returns something like gitRepo
. (Remove the .git
at the end of the command to return something like gitRepo.git
.)
(Note: It requires Git version 2.7.0 or later)
answered Sep 5, 2017 at 16:48
adzenithadzenith
7595 silver badges8 bronze badges
I stumbled on this question trying to get the organization/repo
string from a git host like github or gitlab.
This is working for me:
git config --get remote.origin.url | sed -e 's/^git@.*:([[:graph:]]*).git/1/'
It uses sed
to replace the output of the git config
command with just the organization and repo name.
Something like github/scientist
would be matched by the character class [[:graph:]]
in the regular expression.
The 1
tells sed to replace everything with just the matched characters.
answered Nov 20, 2019 at 19:00
jhnstnjhnstn
2,3781 gold badge18 silver badges9 bronze badges
2
Powershell version of command for git repo name:
(git config --get remote.origin.url) -replace '.*/' -replace '.git'
answered Aug 6, 2020 at 17:11
git remote show origin -n | ruby -ne 'puts /^s*Fetch.*(:|/){1}([^/]+/[^/]+).git/.match($_)[2] rescue nil'
It was tested with three different URL styles:
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'
answered Jun 21, 2017 at 8:37
haolunhaolun
3041 silver badge9 bronze badges
2
git ls-remote --get-url | xargs basename # gitRepo.git
git ls-remote --get-url | xargs basename -s .git # gitRepo
# zsh
git ls-remote --get-url | read
print $REPLY:t # gitRepo.git
print $REPLY:t:r # gitRepo
answered Aug 11, 2022 at 16:44
Daniel BayleyDaniel Bayley
1,4631 gold badge10 silver badges8 bronze badges
Edited for clarity:
This will work to to get the value if the remote.origin.url is in the form protocol://auth_info@git_host:port/project/repo.git. If you find it doesn’t work, adjust the -f5 option that is part of the first cut command.
For the example remote.origin.url of protocol://auth_info@git_host:port/project/repo.git the output created by the cut command would contain the following:
-f1: protocol:
-f2: (blank)
-f3: auth_info@git_host:port
-f4: project
-f5: repo.git
If you are having problems, look at the output of the git config --get remote.origin.url
command to see which field contains the original repository. If the remote.origin.url does not contain the .git string then omit the pipe to the second cut command.
#!/usr/bin/env bash
repoSlug="$(git config --get remote.origin.url | cut -d/ -f5 | cut -d. -f1)"
echo ${repoSlug}
answered Feb 24, 2020 at 19:52
joehepjoehep
1381 silver badge5 bronze badges
1
На сервере какая сборка гита у вас стоит? Есть варианты и могут быть нюансы при задании урла.
Попробуйте варианты:
ssh://user@server/d/git/repo.git
ssh://user@server:/d/git/repo.git
ssh://user@server:d/git/repo.git
ssh://user@server/d:/git/repo.git
По формату URL тут подробней.
У меня на гит на сервере из состава msys2 работает первый вариант URL.
На сколько помню на “Git for Windows” работает последний.
Кстати, я не так давно настраивал гит сервер на винде. По ssh так и не получилось завести – любая операция заканчивалась ошибкой. Грешу на плохой канал – сервер у черта на куличках, да еще и через ВПН, скорость не фантан, задержка при передаче приличная. Но сам ВПН работал, ssh то же, а гит отказывался. Пришлось поднять на сервере git-daemon и работать через протокол git, а не ssh.
Подход GitHub к разработке зависит от публикации фиксаций из вашего локального репозитория в GitHub для просмотра, извлечения и обновления другими людьми.
Сведения об удаленных репозиториях
Удаленный URL-адрес — это необычный способ указания “места, в котором хранится код”. Этот URL-адрес может быть вашим репозиторием в GitHub, вилкой репозитория другого пользователя или даже репозиторием на совершенно другом сервере.
Вы можете отправлять файлы только для двух типов URL-адресов:
- URL-адрес HTTPS, например,
https://github.com/user/repo.git
; - URL-адрес SSH, например,
git@github.com:user/repo.git
.
Git связывает удаленный URL-адрес с именем. Удаленный репозиторий по умолчанию обычно называется origin
.
Создание удаленных репозиториев
Для сопоставления удаленного URL-адреса с именем можно использовать команду git remote add
.
Например, вы ввели следующую команду в командной строке:
git remote add origin <REMOTE_URL>
Она связывает имя origin
с URL-адресом REMOTE_URL
.
Для изменения URL-адреса удаленного репозитория можно использовать команду git remote set-url
.
Выбор URL-адреса для удаленного репозитория
Существует несколько способов клонирования репозиториев, доступных в GitHub.com.
При просмотре репозитория во время входа в учетную запись под сведениями о репозитории отображаются URL-адреса, которые можно использовать для клонирования проекта на компьютер.
Сведения о настройке или изменении удаленного URL-адреса см. в разделе Управление удаленными репозиториями.
Клонирование с URL-адресами HTTPS
URL-адреса клонирования https://
доступны во всех репозиториях независимо от их видимости. URL-адреса клонирования https://
работают, даже если вы находитесь за брандмауэром или прокси-сервером.
При выполнении команд git clone
, git fetch
, git pull
или git push
для удаленного репозитория с использованием URL-адресов HTTPS в командной строке Git запросит ваши имя пользователя и пароль GitHub. Когда Git предложит ввести пароль, введите personal access token. Кроме того, можно использовать вспомогательное средство учетных данных, например диспетчер учетных данных Git. Проверка подлинности на основе пароля для Git была удалена в пользу более безопасных методов проверки подлинности. Дополнительные сведения см. в разделе Создание личного маркера доступа.
Если вы обращаетесь к организации, которая использует единый вход SAML и используете personal access token (classic), вы также должны авторизовать personal access token для доступа к организации перед аутентификацией. Дополнительные сведения см. в разделах Сведения о проверке подлинности с помощью единого входа SAML и Авторизация личного токена доступа для использования с документами единого входа SAML.
Совет.
- Вы можете использовать вспомогательное приложение учетных данных, чтобы Git запоминал ваши учетные данные GitHub каждый раз, когда он взаимодействует с GitHub. Дополнительные сведения см. в разделе Кэширование учетных данных GitHub в Git.
- Чтобы клонировать репозиторий без проверки подлинности в GitHub в командной строке, можно использовать GitHub Desktop для клонирования. Дополнительные сведения см. в разделе Клонирование репозитория из GitHub в GitHub Desktop.
Если вы предпочитаете использовать SSH, но не можете подключиться через порт 22, возможно, у вас получится использовать SSH через порт HTTPS. Дополнительные сведения см. в разделе Использование SSH через порт HTTPS.
Клонирование с URL-адресами SSH
URL-адреса SSH предоставляют доступ к репозиторию Git через безопасный протокол SSH. Чтобы использовать эти URL-адреса, необходимо создать на компьютере строку ключей SSH и добавить открытый ключ в учетную запись GitHub.com. Дополнительные сведения см. в разделе Подключение к GitHub с помощью SSH.
При выполнении команд git clone
, git fetch
, git pull
или git push
для удаленного репозитория с использованием URL-адресов SSH вам будет необходимо ввести пароль и указать парольную фразу ключа SSH в командной строке. Дополнительные сведения см. в разделе Работа с парольными фразами ключа SSH.
Если вы обращаетесь к организации, использующей единый вход SAML, перед проверкой подлинности необходимо авторизовать ключ SSH для доступа к организации. Дополнительные сведения см. в разделах Сведения о проверке подлинности с помощью единого входа SAML и Авторизация ключа SSH для использования с единым входом SAMLв документации по GitHub Enterprise Cloud.
Совет. Вы можете использовать URL-адрес SSH для клонирования репозитория на компьютер и для безопасного способа развертывания кода на рабочих серверах. Вы также можете использовать перенаправление агента SSH с помощью скрипта развертывания, чтобы не управлять ключами на сервере. Дополнительные сведения см. в разделе Использование пересылки с SSH-агентом.
Клонирование с помощью GitHub CLI
Вы также можете установить GitHub CLI для использования рабочих процессов GitHub в терминале. Дополнительные сведения см. в разделе Сведения о GitHub CLI.
Клонирование с помощью Subversion
Примечание. Поддержка Subversion будет удалена из GitHub 8 января 2024 г. В будущем выпуске GitHub Enterprise Server после 8 января 2024 г. также будет удалена поддержка Subversion. Дополнительные сведения см. в блоге GitHub.
Клиент Subversion также можно использовать для доступа к любому репозиторию в GitHub. Функции, предлагаемые Subversion, отличаются от возможностей Git. Дополнительные сведения см. в разделе В чем заключаются различия между Subversion и Git?.
Вы также можете получить доступ к репозиториям в GitHub из клиентов Subversion. Дополнительные сведения см. в разделе Поддержка клиентов Subversion.