Tengo un repositorio que quiero insertar en Bitbucket y GitHub. Es vital que mi repositorio esté alojado por ambos.
¿Hay alguna forma de hacer esto en Git?
Tengo un repositorio que quiero insertar en Bitbucket y GitHub. Es vital que mi repositorio esté alojado por ambos.
¿Hay alguna forma de hacer esto en Git?
Respuestas:
Puedes usar varios repositorios remotos con git. Pero creo que tendrás que presionar por separado en 2 de tus controles remotos.
Por ejemplo, si su proyecto actualmente apunta a github, puede cambiar el nombre de su repositorio remoto actual a github
:
$ git remote rename origin github
Luego puede agregar otro repositorio remoto, diga bitbucket
:
$ git remote add bitbucket git@bitbucket.org:your_user/your_repo.git
Ahora, para enviar cambios a la rama correspondiente en github o bitbucket, puede hacer esto:
$ git push github HEAD
$ git push bitbucket HEAD
La misma regla se aplica a la extracción: debe especificar de qué control remoto desea extraer:
$ git pull github your_branch
$ git pull bitbucket your_branch
.ssh/config
archivo es la clave para lograr esta configuración. Agregue un Host github.com
y un Host bitbucket.org
para identificar cuál IdentityFile
usar. Entonces no obtendrá los errores de permiso denegado al intentar intercambiar entre bitbucket y github. Espero que esto ayude a alguien.
Si tu puedes hacerlo. No tiene que presionar dos veces, sino solo una vez para presionar a ambos repositorios remotos. Tuve el mismo problema antes, así que escribí cómo hacerlo aquí. Git: Push to / Pull desde Github y Bitbucket
Algunas soluciones FÁCILES .
Este es el más fácil de entender, pero el mayor esfuerzo de mantener.
Comenzamos agregando nuestro nuevo control remoto:
$ cd myproject
$ git remote add bitbucket ssh://git@bitbucket.org/user/myproject.git
$ git push bitbucket master
Directo, ¿no? Excepto, por supuesto, cada vez que realizamos algún cambio, tenemos que impulsar tanto nuestro "origen" original como nuestro nuevo "bitbucket" remoto:
$ git push origin master
$ git push bitbucket master
No es una sobrecarga enorme, pero estoy seguro de que se agrandará con el tiempo. O puede crear un `alias gpob =" git push origin master && git push bitbucket master ".
Con este método, vamos a agregar una URL adicional a nuestro "origen" remoto existente:
$ cd myproject
$ git remote set-url --add origin ssh://git@bitbucket.org/user/myproject.git
$ git push origin master
Everything up-to-date
Everything up-to-date
¡Mucho menos esfuerzo!
Por supuesto, el lado positivo tiene una nube, y en este caso, es que si bien podemos enviar a varias URL simultáneamente, solo podemos buscar desde el "origen" original (puede cambiar esto, pero eso está fuera del alcance de esta publicación ).
Finalmente, para ver de qué control remoto se obtendrá:
$ git remote -v show
También escribí en un blog sobre eso .