Git, как использовать `set-url` удаленного репозитория - PullRequest
2 голосов
/ 03 апреля 2019

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

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)

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

Ответы [ 3 ]

2 голосов
/ 03 апреля 2019

Вам необходимо установить URL для существующего пульта:

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

Использование приведенной выше команды обновит 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 без --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 должен вернуться к изменению как push, так и fetch URL.

0 голосов
/ 03 апреля 2019

Имя относится к сокращенному имени для удаленного хранилища. По умолчанию это обычно называется «происхождение». Так что в вашем случае команда будет

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

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

0 голосов
/ 03 апреля 2019

Это название пульта, например. origin

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...