Configurar un origen remoto git

180

Tengo los siguientes repositorios.

  1. DEV REPO: en un directorio en mi máquina de desarrollo donde hago cambios
  2. REPO PRINCIPAL: repositorio desnudo en mi máquina de desarrollo al que empujo los cambios desde el repositorio de desarrollo
  3. REPO DE PRODUCCIÓN: repositorio en la máquina host para obtener actualizaciones del repositorio principal

Solía git remote add origin /Users/me/sites/main_repoconfigurar el repositorio PRINCIPAL como origen para el repositorio DEV. El repositorio de PRODUCCIÓN está en un host remoto. ¿Puedo usar una variación del mismo comando para establecer también el repositorio PRINCIPAL como origen para el repositorio PRODUCCIÓN? En caso afirmativo, supongo que la sintaxis incluiría una dirección IP. Como se veria eso?

Arrendajo
fuente
¿No quiso decir "establecer el repositorio de PRODUCCIÓN como origen para el repositorio PRINCIPAL"?
Pedro A

Respuestas:

289

Usando SSH

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

Usando HTTP

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

Sin embargo, tener un proceso simple git pullcomo implementación suele ser una mala idea y debe evitarse en favor de un script de implementación real.

Clemente Herreman
fuente
66
¿Por qué es una idea realmente mala? Haciendo algunas búsquedas ahora para ejemplos de scripts de implementación.
Jay
14
Porque la implementación a menudo significa (lee "siempre") más que solo lo que git pullhaces. Es posible que deba configurar las credenciales de la base de datos de producción, borrar el caché, aumentar el número de versión, hacer una copia de seguridad de la versión anterior para que pueda retroceder si las cosas salen mal, optimizar / minimizar sus activos (CSS y Js, por ejemplo) y miles de millones de otros cosas.
Clement Herreman
33
@ClementHerreman: parece que, según su explicación, el uso de git pull no es tanto una "mala idea" como una solución limitada. A veces encuentro que git pull es una solución de implementación simple y perfectamente efectiva cuando tengo un escenario simple.
Brady Holt
44
Creo que debe especificar ssh: // para la forma ssh, es decir, git remote add origin ssh: // login @ IP / path / to / repository
kakyo
44
Creo que si modificamos la declaración final a "a veces es una mala idea" sin negrita, esta sería una excelente respuesta.
Chris Moschini
104

Para cualquiera que venga aquí, como lo hice yo, buscando la sintaxis para cambiar el origen a una ubicación diferente, puede encontrar esa documentación aquí: https://help.github.com/articles/changing-a-remote-s-url/ . Usar git remote addpara hacer esto resultará en "fatal: el origen remoto ya existe".

Cáscara de nuez: git remote set-url origin https://github.com/username/repo

(La respuesta marcada es correcta, solo espero ayudar a alguien tan perdido como yo ... jaja)

filósofo perdido
fuente
2
Esta respuesta es mejor para las personas que desean cambiar "git remote url" si ya existe. Gracias @lostphilosopher
eonista
17

Puede incluir la rama para rastrear al configurar controles remotos, para mantener las cosas funcionando como podría esperar:

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

Esto evita que tenga que editar manualmente su configuración de git o especificar el seguimiento de sucursal manualmente.

Michael Thompson
fuente