Настройка git remote origin

180

У меня есть следующие репозитории.

  1. DEV REPO: в каталоге на моей машине для разработки, где я делаю изменения
  2. ГЛАВНОЕ РЕПО: пустой репозиторий на моей машине разработки, на который я отправляю изменения из репо
  3. ПРОИЗВОДСТВЕННОЕ РЕПО: репозиторий на хост-машине для получения обновлений из основного репо

Я использовал, git remote add origin /Users/me/sites/main_repoчтобы установить ГЛАВНОЕ РЕПО в качестве источника для репозитория DEV. Репо ПРОИЗВОДСТВА находится на удаленном хосте. Могу ли я использовать вариант той же команды, чтобы установить ГЛАВНОЕ репо в качестве источника для репозитория PRODUCTION? Если «да», то я предполагаю, что синтаксис будет включать IP-адрес. Как это будет выглядеть?

сойка
источник
Разве вы не имели в виду «установить репозиторий PRODUCTION в качестве исходного для основного репо»?
Педро А

Ответы:

289

Использование SSH

git remote add origin ssh://login@IP/path/to/repository

Используя HTTP

git remote add origin http://IP/path/to/repository

Однако иметь простой git pullпроцесс развертывания, как правило, плохая идея, и ее следует избегать в пользу реального сценария развертывания.

Клемент Эрреман
источник
6
Почему это действительно плохая идея? Выполнение некоторых поисков сейчас примеров сценариев развертывания.
Джей
14
Потому что развертывание часто означает (читай «всегда») больше, чем просто то, что git pullнужно. Возможно, вам потребуется настроить учетные данные рабочей БД, очистить кеш, увеличить номер версии, сделать резервную копию старой версии, чтобы вы могли откатиться, если что-то пойдет не так, оптимизировать / минимизировать ваши активы (например, CSS и Js) и еще несколько миллиардов других вещи.
Клемент Херреман,
33
@ClementHerreman - похоже, исходя из вашего объяснения, использование git pull - это не столько «плохая идея», сколько ограниченное решение. Иногда я нахожу git pull совершенно эффективным и простым решением для развертывания, когда у меня простой сценарий.
Брэди Холт
4
Я думаю, что вам нужно указать ssh: // для ssh-пути, т.е. git remote add origin ssh: // login @ IP / path / to / repository
kakyo
4
Я думаю, что если бы мы изменили окончательное утверждение на «иногда это плохая идея», то это было бы отличным ответом.
Крис Москини
104

Для тех, кто приходит сюда, как и я, ищет синтаксис для изменения источника в другое место, вы можете найти эту документацию здесь: https://help.github.com/articles/changing-a-remote-s-url/ , Использование git remote addдля этого приведет к «фатальному: удаленный источник уже существует».

Ореховая скорлупа: git remote set-url origin https://github.com/username/repo

(Отмеченный ответ верен, я просто надеюсь помочь кому-нибудь так же потерянному, как и я ... хаха)

lostphilosopher
источник
2
Этот ответ лучше для людей, желающих изменить «git remote url», если он уже существует. Спасибо @lostphilosopher
эонисту
17

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

git remote add --track master origin user@somesite.com:group/project.git   # git
git remote add --track master origin user@172.16.1.100:group/project.git   # git w/IP
git remote add --track master origin http://github.com/group/project.git   # http
git remote add --track master origin http://172.16.1.100/group/project.git # http w/IP
git remote add --track master origin /Volumes/Git/group/project/           # local
git remote add --track master origin G:/group/project/                     # local, Win

Это избавляет вас от необходимости вручную редактировать вашу конфигурацию git или указывать отслеживание веток вручную.

Майкл Томпсон
источник