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

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

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

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

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

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

+3419
источник поделиться
15 ответов

Вы можете

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

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

+5583
источник
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

+763
источник

Изменить узел для 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.

+88
источник
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

+49
источник

Переключение удаленных 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)
+31
источник
  • удалить начало координат с помощью команды gitbash git удаленный источник rm
  • И теперь добавьте новый Origin, используя gitbash git удаленный добавочный источник (скопируйте URL-адрес HTTP из репозитория проекта в битвете) Готово
+20
источник

git remote set-url {name} {url}

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

+18
источник

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

git remote -v

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

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

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

git push --set-upstream origin master -f

+11
источник

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

удаленный 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

для вас...

+8
источник

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

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

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

Готово

+7
источник

Я работал:

git remote set-url origin <project>
+7
источник

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

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

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

+6
источник

У вас есть много способов сделать это:

Консоль

git remote set-url origin [Here new url] 

Просто убедитесь, что вы открыли его в месте, где находится хранилище.

Config

Он находится в .git/config (в той же папке, что и хранилище)

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
[remote "origin"]
    url = [Here new url]  <------------------------------------
...

TortoiseGit

Step 1 - open settings

Step 2 - change url

Затем просто измените URL.

SourceTree

  1. Нажмите кнопку "Настройки" на панели инструментов, чтобы открыть окно "Настройки репозитория".

  2. Нажмите "Добавить", чтобы добавить путь к удаленному хранилищу. Откроется окно "Удаленные данные".

  3. Введите имя для удаленного пути.

  4. Введите URL/путь для удаленного хранилища

  5. Введите имя пользователя для службы хостинга для удаленного хранилища.

  6. Нажмите "ОК", чтобы добавить удаленный путь.

  7. Вернувшись в окно настроек репозитория, нажмите "ОК". Новый удаленный путь должен быть добавлен в хранилище сейчас.

  8. Если вам нужно отредактировать уже добавленный удаленный путь, просто нажмите кнопку "Редактировать". Вы должны будете перейти к окну "Удаленные данные", где вы можете редактировать данные (URL/Путь/Тип хоста) удаленного пути.

  9. Чтобы удалить путь к удаленному репозиторию, нажмите кнопку "Удалить"

enter image description here

enter image description here

ссылка Поддержка

+5
источник

enter image description here

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

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

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

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

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

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

+4
источник

  Измените URI удаленного git на [email protected] вместо https://github.com

git remote set-url origin [email protected]:<username>/<repo>.git

Пример:

git remote set-url origin [email protected]:Chetabahana/my_repo_name.git

Преимущество заключается в том, что вы можете автоматически выполнять git push при использовании ssh-agent :

#!/bin/bash

# Check ssh connection
ssh-add -l &>/dev/null
[[ "$?" == 2 ]] && eval 'ssh-agent'
ssh-add -l &>/dev/null
[[ "$?" == 1 ]] && expect $HOME/.ssh/agent

# Send git commands to push
git add . && git commit -m "your commit" && git push -u origin master

Поместите файл сценария $HOME/.ssh/agent, чтобы он работал ssh-add, используя ожидайте, как показано ниже:

#!/usr/bin/expect -f
set HOME $env(HOME)
spawn ssh-add $HOME/.ssh/id_rsa
expect "Enter passphrase for $HOME/.ssh/id_rsa:"
send "<my_passphrase>\n";
expect "Identity added: $HOME/.ssh/id_rsa ($HOME/.ssh/id_rsa)"
interact
+3
источник

Посмотрите другие вопросы по меткам или Задайте вопрос