Git как использовать `set-url` удаленного репозитория

#git

#git

Вопрос:

Мне нужно изменить URL для удаленного репозитория, поэтому я просматривал документы наhttps://git-scm.com/docs/git-remote но когда я делаю:

 git remote set-url git@github.com:gitusername/repository.git
  

Я получаю сообщение usage: git remote set-url [--push] <name> <newurl> [<oldurl>]

Я не совсем понимаю, должен ли я вводить:

 git remote set-url --push gitusername git@github.com:gitusername/repository.git
  

или что <name> означает? И должен ли я включить старый URL?

Обновить

Итак, когда я набираю:

 git remote set-url --push origin git@github.com:gitusername/repository.git
  

И после этого введите git remote -v

Я понимаю это:

 origin  git@github.com:oldusername/oldrepo.git (fetch)
origin  git@github.com:gitusername/repository.git (push)
  

Как я могу изменить выборку?

Комментарии:

1. Это должно быть имя репозитория, т.Е. origin / master

2.Не используйте --push вообще. Если вы уже использовали --push , теперь вы установили отдельные URL-адреса для извлечения и отправки. Вы можете удалить отдельный push-URL ( git remote set-url origin --delete --push ). Используйте git remote set-url without --push для установки URL-адреса выборки; если push-URL не установлен, он автоматически совпадает с URL-адресом выборки.

3. @torek Большое спасибо! Именно то, что мне было нужно 🙂

Ответ №1:

Следующая команда обновляет URL для существующего удаленного, origin :

 git remote set-url origin git@github.com:gitusername/repository.git
  

Приведенная выше команда обновляет как URL-адреса выборки, так и URL-адреса отправки.

Использование --push обновит только push-URL:

 git remote set-url --push origin git@github.com:gitusername/repository.git
git remote -v

origin  git@github.com:oldusername/oldrepo.git (fetch)
origin  git@github.com:gitusername/repository.git (push)
  

После этого момента в .git/config теперь есть отдельная запись:

 [remote "origin"]
    url = git@github.com:oldusername/oldrepo.git
    fetch =  refs/heads/*:refs/remotes/origin/*
    pushurl = git@github.com:gitusername/repository.git
  

Теперь, поскольку существуют отдельные записи, использование set-url without --push обновит только выборку, а не обе:

 git remote set-url origin git@github.com:thirdusername/thirdrepository.git
git remote -v 

origin  git@github.com:thirdusername/thirdrepository.git (fetch)
origin  git@github.com:gitusername/repository.git (push)
  

Если вы хотите вернуться к исходному состоянию, вы можете либо удалить pushurl запись из .git/config , либо использовать set-url --delete --push :

 git remote set-url --delete --push origin git@github.com:gitusername/repository.git
  

После этого вызов set-url без --push с now обновляет как push, так и fetch URL-адреса.

Ответ №2:

Эта команда используется для добавления нового удаленного:

 git remote add origin git@github.com:User/UserRepo.git
  

Эта команда используется для изменения URL существующего удаленного репозитория:

 git remote set-url origin git@github.com:User/UserRepo.git
  

Используемая эта команда отправит ваш код в главную ветвь удаленного репозитория, определенную с помощью источника, и -u позволит вам указать вашу текущую локальную ветвь на удаленную главную ветвь:

 git push -u origin master
  

Ответ №3:

Это имя удаленного, например. origin

Имена также видны при перечислении пультов, поэтому вы можете проверить свое текущее имя (возможно, также origin )

 git remote -v
origin  https://github.com/schacon/ticgit (fetch)
origin  https://github.com/schacon/ticgit (push)
  

И полезно при использовании нескольких удаленных устройств, например, если вы разветвляете репозиторий GitHub, тогда у вас может быть удаленный доступ к вашей разветвленной сети и исходному репозиторию (иногда называемый «восходящим» по соглашению)

Ответ №4:

Название относится к сокращенному имени удаленного репозитория. По умолчанию он обычно называется ‘origin’. Итак, в вашем случае команда будет

 git remote set-url origin git@github.com:gitusername/repository.git
  

Необязательный --push параметр установит push-URL вместо URL-адреса выборки.

Комментарии:

1. Ах, хорошо, но как проверить (выборку)?