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

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

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

На данный момент я вижу два решения:

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

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

35 ответов

Решение

Вы можете

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

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

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's 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 пульта

git remote set-url {имя} {URL}

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

Смена хоста для сервера Git Origin

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

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

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

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

Смотрите man-страницу для деталей.

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

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

Предполагая, что новое имя хоста 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.

Это очень легко и просто; просто следуйте этим инструкциям.

  1. Для добавления или изменения удаленного источника:
            git remote set-url origin githubrepurl
    
  2. Для какого удаленного URL-адреса вы сейчас находитесь в этом локальном репозитории:
            git remote show origin
    

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

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

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

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

3-й шаг:- 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.

4-й шаг:- git remote set-url origin git@github.com:USERNAME/REPOSITORY.git

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

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

origin  git@github.com:USERNAME/REPOSITORY.git (fetch)
origin  git@github.com:USERNAME/REPOSITORY.git (push)
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)

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

git push -u origin master

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

$ git remote rm origin
$ git remote add origin git@github.com:aplikacjainfo/proj1.git
$ git config master.remote origin
$ git config master.merge refs/heads/master

Это будет работать нормально, вы можете попробовать это

Для SSH:

команда: git remote set-url origin <ssh_url>

пример: git remote set-url origin git@github.com:username/rep_name.git

Для HTTPS:

команда: git remote set-url origin <https_url>

пример: git remote set-url origin https://github.com/username/REPOSITORY.git

  1. удалить источник с помощью команды на gitbashgit remote rm origin
  2. А теперь добавьте новый Origin с помощью gitbashgit remote add origin (Скопируйте HTTP URL из вашего репозитория проекта в битовую корзину)

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

  1. git удаленный -v

Затем, во-вторых, вам нужно ввести эту команду, чтобы изменить URL-адрес удаленного источника.

  1. git remote set-url origin вставьте URL-адрес GitHub

Напишите следующую команду с вашего терминала репо:

git remote set-url origin git@github.com:<username>/<repo>.git

Перейдите по этой ссылке для получения дополнительных сведений об изменении URL-адреса на пульте дистанционного управления.

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

git remote -v

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

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

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

git push --set-upstream origin master -f

Если вы клонировали ваш локальный будет автоматически состоять,

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

для тебя...

Перейдите в корень проекта в локальном репозитории и проверьте существующие пульты:

git remote -v

Если ваш репозиторий использует SSH, вы увидите что-то вроде:

> origin  git@github.com:USERNAME/REPOSITORY.git (fetch)
> origin  git@github.com:USERNAME/REPOSITORY.git (push)

И если ваш репозиторий использует HTTPS, вы увидите что-то вроде:

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

Изменение URL-адреса выполняется с помощью git remote set-url. В зависимости от выходаgit remote -v, вы можете изменить URL-адрес следующим образом:

В случае SSH вы можете изменить URL-адрес сREPOSITORY.git к NEW_REPOSITORY.git подобно:

$ git remote set-url origin git@github.com:USERNAME/NEW_REPOSITORY.git

А в случае HTTPS вы можете изменить URL сREPOSITORY.git к NEW_REPOSITORY.git подобно:

$ git remote set-url origin https://github.com/USERNAME/NEW_REPOSITORY.git

ПРИМЕЧАНИЕ. Если вы изменили свое имя пользователя GitHub, вы можете выполнить тот же процесс, что и выше, чтобы обновить изменение имени пользователя, связанного с вашим репозиторием. Вам нужно будет только обновитьUSERNAME в git remote set-url команда.

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

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

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

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

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

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

Изменить URI удаленного git на git@github.com скорее, чем https://github.com

git remote set-url origin git@github.com:<username>/<repo>.git

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

eval `ssh-agent` && expect ~/.ssh/agent && ssh-add -l
git add . && git commit -m "your commit" && git push -u origin master

Также, когда вы используете ожидаемый файл скрипта, как показано ниже:

#!/usr/bin/expect -f
spawn git push origin
expect "Username for 'https://github.com':"
send "<username>\n"
expect "Password for 'https://user@github.com':"
send "<password>\n"
interact

Я работал:

git remote set-url origin <project>

Для меня принятый ответ работал только в случае извлечения, но не в случае извлечения. Я сделал следующее, чтобы заставить его работать и на толчок.


Итак, чтобы обновить URL-адрес выборки:

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

Чтобы обновить URL-адрес извлечения:

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

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

Приставка

git remote set-url origin [Here new url] 

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

конфиг

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

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

TortoiseGit

Тогда просто отредактируйте URL.

SourceTree

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

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

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

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

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

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

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

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

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

ссылка Служба поддержки

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

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

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

Готово

Вы можете переименовать репозиторий, если вы являетесь владельцем организации или имеете права администратора для репозитория.

       git remote set-url origin new_url

узнать больше

Чтобы изменить удаленный восходящий поток:git remote set-url origin <url>


Чтобы добавить больше апстримов:git remote add newplace <url>

Так что вы можете выбирать, где работатьgit push origin <branch> или git push newplace <branch>

Альтернативный подход - переименовать "старый" источник (в приведенном ниже примере я называю его просто old-origin) и добавление нового. Это может быть желаемый подход, если вы все еще хотите иметь возможность время от времени нажимать на старый источник:

git remote rename origin old-origin
git remote add origin git@new-git-server.com>:<username>/<projectname>.git

И в случае, если вам нужно переместить ваш локальный штат в новое происхождение:

git push -u origin --all
git push -u origin --tags

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

Приведенная ниже команда изменит URL-адрес git fetch для репо.

      git remote set-url origin <your new url>.git

Приведенная ниже команда изменит URL-адрес репозитория git push.

      git remote set-url --push origin <your new url>.git

Команда ниже, чтобы проверить, отражены ли вышеуказанные изменения или нет

      git remote -v

Если вы хотите установить имя пользователя и пароль также в исходном URL-адресе, вы можете выполнить следующие шаги.

Экспорт пароля в переменной позволит избежать проблем со специальными символами.

Шаги:

      export gituser='<Username>:<password>@'
git remote set-url origin https://${gituser}<gitlab_repo_url> 
git push origin <Branch Name>

Вы можете изменить URL-адрес, отредактировав файл конфигурации. Перейдите в корень вашего проекта:

nano .git/config

Затем отредактируйте поле url и установите новый url. Сохраните изменения. Вы можете проверить изменения с помощью команды.

git remote -v 

Удаление пульта

Используйте команду git remote rm, чтобы удалить удаленный URL-адрес из вашего репозитория.

    $ git remote -v
    # View current remotes
    > origin  https://github.com/OWNER/REPOSITORY.git (fetch)
    > origin  https://github.com/OWNER/REPOSITORY.git (push)
    > destination  https://github.com/FORKER/REPOSITORY.git (fetch)
    > destination  https://github.com/FORKER/REPOSITORY.git (push)

    $ git remote rm destination
    # Remove remote
    $ git remote -v
    # Verify it's gone
    > origin  https://github.com/OWNER/REPOSITORY.git (fetch)
    > origin  https://github.com/OWNER/REPOSITORY.git (push)

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

  1. Перейдите в локальную папку оформления заказа и щелкните правой кнопкой мыши, чтобы перейти к TortoiseGit -> Settings
  2. В левой панели выберите Git -> Remote
  3. На правой панели выберите origin
  4. Теперь измените URL значение текстового поля, где всегда находится ваш новый удаленный репозиторий

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

Проверь свою привилегию

в моем случае мне нужно проверить свое имя пользователя

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

проблема в моем разрешении у меня есть два частных сервера git и репозитории

эта вторая учетная запись является администратором этого нового репо, а первая - моей учетной записью пользователя по умолчанию, и я должен предоставить разрешение сначала

Другие вопросы по тегам