Konfigurowanie zdalnego pochodzenia git

179

Mam następujące repozytorium.

  1. DEV REPO: w katalogu na moim komputerze programistycznym, w którym dokonuję zmian
  2. MAIN REPO: puste repozytorium na mojej maszynie programistycznej, na które przesyłam zmiany z dev repo
  3. REPOZYCJA PRODUKCJI: repozytorium na hoście do pobierania aktualizacji z głównego repozytorium

Kiedyś git remote add origin /Users/me/sites/main_repoustawiałem repozytorium MAIN jako źródło repozytorium DEV. Repozytorium PRODUKCJI znajduje się na zdalnym hoście. Czy mogę użyć odmiany tego samego polecenia, aby ustawić GŁÓWNE repozytorium jako źródło również dla repozytorium PRODUKCJA? Jeśli „tak”, to przypuszczam, że składnia zawiera adres IP. Jakby to wyglądało?

Sójka
źródło
Czy nie miałeś na myśli „ustawić repozytorium PRODUKCJI jako początek repozytorium GŁÓWNEGO”?
Pedro A

Odpowiedzi:

288

Korzystanie z SSH

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

Korzystanie z HTTP

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

Jednak prosty git pullproces wdrażania jest zwykle złym pomysłem i należy go unikać na rzecz prawdziwego skryptu wdrażania.

Clement Herreman
źródło
6
Dlaczego to naprawdę zły pomysł? Przeprowadzam teraz wyszukiwanie przykładów skryptów wdrażania.
Jay
14
Ponieważ wdrażanie często oznacza (czytaj „zawsze”) coś więcej niż tylko to git pull, co robi. Konieczne może być skonfigurowanie poświadczeń DB produkcyjnej, wyczyszczenie pamięci podręcznej, zwiększenie numeru wersji, wykonanie kopii zapasowej starszej wersji, aby można było przywrócić poprzednią wersję, jeśli coś pójdzie nie tak, zoptymalizować / zminimalizować zasoby (na przykład CSS i Js) oraz bazilliony innych rzeczy
Clement Herreman
33
@ClementHerreman - na podstawie twojego wyjaśnienia wydaje się, że użycie git pull nie jest tak „złym pomysłem”, ale rozwiązaniem ograniczonym. Czasami git pull jest doskonale skutecznym i prostym rozwiązaniem do wdrażania, gdy mam prosty scenariusz.
Brady Holt,
4
Myślę, że musisz podać ssh: // dla ssh, tj. Git zdalnie dodaj pochodzenie ssh: // login @ IP / ścieżka / do / repozytorium
kakyo
4
Myślę, że jeśli zmienilibyśmy końcowe stwierdzenie na „czasami zły pomysł”, nie śmiały, byłaby to doskonała odpowiedź.
Chris Moschini
104

Dla każdego, kto tu przychodzi, tak jak ja, szuka składni do zmieniającej pochodzenie w inne miejsce, możesz znaleźć tę dokumentację tutaj: https://help.github.com/articles/changing-a-remote-s-url/ . Skorzystanie git remote addz tego spowoduje „krytyczny: zdalne pochodzenie już istnieje”.

Łupina od orzecha: git remote set-url origin https://github.com/username/repo

(Zaznaczona odpowiedź jest poprawna, mam tylko nadzieję, że pomogę każdemu tak zagubionemu jak ja ... haha)

Lostphilosopher
źródło
2
Ta odpowiedź jest lepsza dla osób, które chcą zmienić „git remote url”, jeśli już istnieje. Dzięki @lostphilosopher
eonist
17

Możesz dołączyć oddział, aby śledzić podczas konfigurowania pilotów, aby utrzymać działanie zgodnie z oczekiwaniami:

git remote add --track master origin [email protected]:group/project.git   # git
git remote add --track master origin [email protected]: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

Dzięki temu nie musisz ręcznie edytować konfiguracji git ani ręcznie określać śledzenia gałęzi.

Michael Thompson
źródło