Как изменить URI (URL) для удаленного хранилища Git?

2979

У меня есть репо (происхождение) на USB-ключ, который я клонировал на своем жестком диске (локальном). Я переместил "источник" в NAS и успешно протестировал его клонирование.

Я хотел бы знать, могу ли я изменить URI "origin" в настройках "local", чтобы он теперь вытащил из NAS, а не из USB-ключа.

В настоящее время я вижу два решения:

  • нажмите все на usb-orign и снова скопируйте его в NAS (подразумевается большая работа из-за новых коммитов на nas-origin);

  • добавьте новый пульт в "local" и удалите старый (я боюсь, что сломаю свою историю).

  • 3
    Я должен был сделать это на старой версии git (1.5.6.5), а опция set-url не существовала. Простое удаление ненужного пульта и добавление нового с таким же именем работало без проблем и поддерживало историю просто отлично.
Теги:
url
git-remote

13 ответов

4849
Лучший ответ

Вы можете

git remote set-url origin new.git.url/here

(см. git help remote) или вы можете просто отредактировать .git/config и изменить там URL-адреса. Вы не рискуете потерять историю, если не сделаете что-то очень глупое (и если вы беспокоитесь, просто сделайте копию своего репо, поскольку репо - это ваша история).

  • 20
    Если у вас другой пользователь оболочки, возможно, вы захотите указать своего пользователя git в начале нового URL, например: myself@git://new.url.here
  • 9
    Вы также можете установить главную ветвь верхнего уровня для вашего нового местоположения источника с помощью: git branch -u origin/master . Это позволит вам просто использовать git push вместо того, чтобы каждый раз использовать git push origin master .
Показать ещё 9 комментариев
670
git remote -v
# View existing remotes
# origin  https://github.com/user/repo.git (fetch)
# origin  https://github.com/user/repo.git (push)

git remote set-url origin https://github.com/user/repo2.git
# Change the 'origin' remote URL

git remote -v
# Verify new remote URL
# origin  https://github.com/user/repo2.git (fetch)
# origin  https://github.com/user/repo2.git (push)

Изменение удаленного URL

81

Изменить узел для Git исходного сервера

from: http://pseudofish.com/blog/2010/06/28/change-host-for-a-git-origin-server/

Надеюсь, это не то, что вам нужно сделать. Сервер, который Ive использовал для совместной работы в нескольких проектах Git, с истечением срока действия имени домена. Это означало найти способ миграции локальных репозиториев, чтобы синхронизировать их.

Обновление: спасибо @mawolf за то, что вы указали, что есть простой способ с последними версиями Git (post Feb, 2010):

git remote set-url origin ssh://newhost.com/usr/local/gitroot/myproject.git

Подробнее см. справочную страницу.

Если вы используете более старую версию, попробуйте следующее:

Как предостережение, это работает только как один и тот же сервер, только с разными именами.

Предполагая, что новое имя хоста newhost.com, а старое - oldhost.com, это изменение довольно просто.

Отредактируйте файл .git/config в рабочем каталоге. Вы должны увидеть что-то вроде:

[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = ssh://oldhost.com/usr/local/gitroot/myproject.git

Измените oldhost.com на newhost.com, сохраните файл и сделайте.

Из моего ограниченного тестирования (git pull origin; git push origin; gitx) все выглядит по порядку. И да, я знаю, что это плохая форма, связанная с внутренними Git.

  • 0
    Плохой тон? Может быть. Но если вам нужно сделать что-то, чего авторы не ожидали, что кто-то когда-либо должен будет это сделать, то иногда требуется возиться с внутренностями. Но вы должны быть готовы принять последствия, если вы ошибаетесь. Backup your local repository _before_ messing with git internals.
40
git remote set-url origin git://new.location

(альтернативно, откройте .git/config, найдите [remote "origin"] и отредактируйте строку url =.

Вы можете проверить это, просмотрев пульт дистанционного управления:

git remote -v
# origin  git://new.location (fetch)
# origin  git://new.location (push)

В следующий раз, когда вы нажимаете, вам нужно будет указать новую ветвь восходящего потока, например:

git push -u origin master

Смотрите также: GitHub: изменение удаленного URL

  • 0
    Я не мог установить новый источник путем редактирования .git / config. В нем говорится, что git-репозиторий, указанный в URL, не является git-репозиторием. После того, как я удалил и заново создал источник, все было хорошо. Однако я не рассматривал git remote set-url как решение моей проблемы.
17

Переключение удаленных URL

Откройте Терминал.

I шаг: - Измените текущий рабочий каталог на ваш локальный проект.

2-й шаг: - Перечислите существующие пульты, чтобы получить имя пульта, который вы хотите изменить.

git remote -v

origin  https://github.com/USERNAME/REPOSITORY.git (fetch)

origin  https://github.com/USERNAME/REPOSITORY.git (push)

Измените удаленный URL-адрес с HTTPS на SSH с помощью команды git remote set-url.

3-й шаг: - git remote set-url origin [email protected]:USERNAME/REPOSITORY.git

Шаг 4: - Теперь убедитесь, что удаленный URL-адрес изменился.

git remote -v Проверьте новый удаленный URL

origin  [email protected]:USERNAME/REPOSITORY.git (fetch)
origin  [email protected]:USERNAME/REPOSITORY.git (push)
  • 0
    Нужно ли удалять старое происхождение, прежде чем добавить новое происхождение?
  • 0
    Я ничего не удалил из проекта. Я просто делаю вышеуказанные шаги, и это сработало
15
  • удалить начало координат с помощью команды gitbash git удаленный источник rm
  • И теперь добавьте новый Origin, используя gitbash git удаленный добавочный источник (скопируйте URL-адрес HTTP из репозитория проекта в битвете) Готово
15

git remote set-url {name} {url}

ex) git remote set-url origin https://github.com/myName/GitTest.git

7

если вы клонировали свою локальную автоматическую последовательность,

удаленный URL-адрес, где он клонируется.

вы можете проверить его, используя git remote -v

если вы хотите внести изменения в него,

git remote set-url origin https://github.io/my_repo.git

здесь

происхождение - ваша ветка

если вы хотите перезаписать существующую ветку, вы все равно можете ее использовать.. он переопределит ваш существующий... он будет делать,

git remote remove url
and 
git remote add origin url

для вас...

6

Я работал:

git remote set-url origin <project>
5

Если вы используете TortoiseGit, выполните следующие шаги:

  • Перейдите в папку локального клиента и щелкните правой кнопкой мыши, чтобы перейти к TortoiseGit -> Settings
  • На левой панели выберите Git -> Remote
  • На правой панели выберите origin
  • Теперь измените значение текстового поля URL на место, где когда-либо был ваш новый удаленный репозиторий

Ваша ветка и все ваши локальные коммиты останутся нетронутыми, и вы можете продолжать работать так, как раньше.

  • 0
    Лучший ответ, спасибо
5

В Git Bash введите команду:

git remote set-url origin https://NewRepoLink.git

Введите учетные данные

Готово

0

Чтобы проверить удаленное подключение git:

git remote -v

Теперь установите локальный репозиторий на удаленный git:

git remote set-url origin https://NewRepoLink.git

Теперь, чтобы сделать это upstream или push, используйте следующий код:

git push --set-upstream origin master -f

  • 0
    Спасибо за ваш ответ, Ишита. Я отмечу ваши слова ...
  • 0
    Я давил, и все же github не показывал мою новую ветку. Этот последний --set-upstream заставил его работать.
0

Изображение 7474

Поиск проблемы :

Вы можете столкнуться с этими ошибками при попытке сменить пульт. Нет такого удаленного "[имя]"

Эта ошибка означает, что пульт, который вы пытались изменить, не существует:

git remote set-url sofake https://github.com/octocat/Spoon-Knife неустранимый: такого удаленного "sofake" нет

Убедитесь, что вы правильно ввели удаленное имя.

Ссылка: https://help.github.com/articles/changing-a-remote-s-url/

Ещё вопросы

Сообщество Overcoder
Наверх
Меню