Как найти адрес репозитория

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

fancy's user avatar

2

When you want to show an URL of remote branches, try:

git remote -v

answered Jan 11, 2012 at 8:17

Jan Marek's user avatar

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 of ls-remote --url and there is no way
to expand pushInsteadOf as well.
Add a get-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

VonC's user avatar

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

sathish's user avatar

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.'s user avatar

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:

  1. On the GitHub website, click on you repository of interest.
  2. Locate the green button named Code and click on it. The GitHub URL will appear.
  3. Copy the GitHub URL.
  4. Open a Git client such as the BASH shell or GitHub Desktop on your local machine.
  5. 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.

find GitHub URL

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:

  • Learn how to  Create an SSH key with GitHub
  • Set up  GitHub to use SSH
  • Configure GitHub SSH on Windows machines
  • Run your first GitHub Clone over SSH
  • Git securely with GitLab SSH Keys
  • Connect to BitBucket with SSH Keys
  • Use the GitHub SSH KeyGen tool
  • Find the GitHub SSH URL and clone
  • Solve SSH Permission Denied Errors in Git

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.

clone GitHub URL

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.)

Peter Mortensen's user avatar

asked Nov 2, 2010 at 9:12

Toby's user avatar

1

git config --get remote.origin.url

answered Jun 24, 2016 at 2:16

Straff's user avatar

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.

Peter Mortensen's user avatar

answered Nov 2, 2010 at 9:25

allait's user avatar

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.

Peter Mortensen's user avatar

answered Feb 27, 2013 at 17:12

Casey's user avatar

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)

Peter Mortensen's user avatar

answered Sep 5, 2017 at 16:48

adzenith's user avatar

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

jhnstn's user avatar

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

Victor Fialkin's user avatar

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'

Peter Mortensen's user avatar

answered Jun 21, 2017 at 8:37

haolun's user avatar

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 Bayley's user avatar

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

joehep's user avatar

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.

Добавить комментарий