Покидая Github, как изменить происхождение репозитория Git?

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

      Github [Origin]
       /         \
  pull/           \pull
     /push     push\
    /               \  
Laptop           Dreamhost
(cloned)          (cloned)

Я хотел бы удалить свое репо из Github и начать прямую отправку в DH.

Как мне изменить происхождение в моем ноутбуке, и нужно ли мне удалить происхождение в Dreamhost?


person Ben Orozco    schedule 10.06.2010    source источник


Ответы (6)


git remote rename origin github
git remote add origin <DreamHost-git-URL>
# test and make sure the DreamHost origin works properly for fetch and push
git remote rm github

Я предпочитаю использовать команду git remote вместо того, чтобы возиться с файлом .git / config вручную.

person clee    schedule 10.06.2010
comment
Я согласен. Я считаю формат .git/config деталью реализации, я всегда использую такие инструменты, как git remote и git config, чтобы убедиться, что я не испортил синтаксис. - person Jörg W Mittag; 10.06.2010
comment
Ой +1, потому что мне это нравится. Но вы должны добавить дополнительную информацию о том, как впоследствии перенести ветки отслеживания ... - person hurikhan77; 12.06.2010
comment
Пришлось добавить git config branch.master.remote origin. Похоже, что git изменил эту переменную как побочный эффект удаленного переименования. - person Daniel Luna; 13.07.2011
comment
Мне пришлось выполнить следующие команды: git config branch.master.remote origin git config branch.master.merge refs/heads/master - person JoaoHornburg; 15.02.2012
comment
@DanielLuna, спасибо за комментарий, я добавил это в ответ. - person Thomas; 06.09.2012
comment
Также после выполнения шагов, упомянутых @JoaoHornburg, мне пришлось push origin master при первом нажатии, чтобы создать главную ветку в новом голом репо. После этого git push работал нормально. - person Daniel; 10.05.2013

Самый простой способ:

$ git config remote.origin.url <Dreamhost-git-URL>

После этого вы показываете пульты:

$ git remote -v
origin Dreamhost-git-URL (fetch)
origin Dreamhost-git-URL (push)
person Octavi Fornés    schedule 12.04.2011
comment
Ага, кажется лучшим решением. - person Profpatsch; 13.03.2013
comment
Я не думаю, что это решение существовало в выпущенных версиях git на момент написания своего ответа, но оно определенно кажется проще. :) - person clee; 21.10.2015

Самый простой способ - отредактировать файл .git / config на своем ноутбуке. Просто найдите свой URL-адрес на github и замените его на адрес DreamHost. Убедитесь, что ваш открытый ключ ssh установлен на Dreamhost. Теперь вы можете нажать origin master, и вы заполните свой репозиторий dreamhost.

Вы можете удалить origin на Dreamhost, но в этом нет необходимости.

Кроме того, убедитесь, что репозиторий пустой. По умолчанию вы не можете отправлять файлы в репозитории, отличные от голых.

person Adam Dymitruk    schedule 10.06.2010
comment
Ну, как вы сказали, это не голое репо, я немного запутался. Что делать сейчас ? - person Ben Orozco; 10.06.2010
comment
Найдено stackoverflow.com/questions/1784506/ - person Ben Orozco; 10.06.2010
comment
Как и выше, все, что вам нужно, это параметр --bare при клонировании того, что будет репозиторием в восходящем направлении. - person Adam Dymitruk; 10.06.2010
comment
Что ж, вы МОЖЕТЕ нажать на репозиторий без репозиториев, но ДЕЙСТВИТЕЛЬНО НЕ ДОЛЖНЫ! - person hurikhan77; 12.06.2010
comment
Спасибо за совет. Я думал, что это будет так же просто, как изменить конфигурацию, просто нужно было подтверждение. - person thescientist; 23.11.2012
comment
Комментарий от предлагаемого редактирования: по умолчанию вы не можете отправлять файлы в репозитории, отличные от голых. (по крайней мере, не в ветвь, которая сейчас там проверяется). - person John Dvorak; 06.01.2013

Лучше всего git remote set-url origin <new-url>

person slashingweapon    schedule 08.06.2012
comment
этот комментарий должен быть первым. единственный однострочный файл, который не зависит от внутренней структуры конфигурации git - person Bouke Versteegh; 21.08.2015
comment
Согласен, думаю, это лучший ответ. Это просто и делает все, что вам нужно, в одну строку. - person imns; 08.02.2016

Самый простой способ - отредактировать ваш .git/config файл, в котором указано, где находится источник. Вы можете проверить это, запустив git fetch

Вы можете удалить удаленные ссылки на стороне Dreamhost, если хотите, в том же файле.

person Yann Ramin    schedule 10.06.2010

почему не просто:

git remote remove origin

git remote add origin <Dreamhost-git-URL>

git push -u origin --all --tags
person gjambet    schedule 19.06.2014
comment
Я создал пустой репозиторий на github. При локальной настройке я клонировал их из репозитория, затем добавил несколько файлов и отправил их в репозиторий github. Затем я создал свежий репозиторий на gitlab и импортировал код из репозитория github. Теперь я хочу изменить ссылку на удаленный репозиторий моего локального репозитория на этот репозиторий gitlab. Я сделал git remote add origin <gitlab-URL> в моем локальном репозитории. Никаких ошибок не было (должен ли я получить какой-то результат? Я тоже не получал сообщения об успешном выполнении). Но теперь я не вижу изменений, внесенных в репозиторий gitlab на моем локальном компьютере. - person Sandeepan Nath; 17.03.2016
comment
Я пробовал все предложения, но у меня нет тегов в новом источнике. Что мне делать для перемещения тегов? - person Stefano Bossi; 23.12.2020
comment
@StefanoBossi: git push --tags? - person gjambet; 24.12.2020