2010-12-24 8 views
37

Tengo un repositorio en github que es público, allí tengo una aplicación de código abierto en la que estoy trabajando que es para hacer catálogos de productos y contenido de cms pequeño.¿Es posible extraer de un repositorio y enviarlo a otro?

que también tienen un depósito privado (no alojado en GitHub), que es una aplicación desarrollada bajo la aplicación de código abierto alojado en GitHub.

ya que estoy actualmente trabajando en ambas aplicaciones, la adición de características en el código abierto uno y también hacer cambios en el privado como cambiar la plantilla y también tirando el código de la fuente abierta una.

Me preguntaba si hay alguna manera en la que podría tirar de la nueva materia de la fuente abierta, sino también uno empujando el código de la nueva aplicación para el otro repo.

Respuesta

10

git pull private master y git push github master tirones de tu repositorio privado (dado que es nombrado por el estilo) y empuja a github (también podría llamarse origin). No es SVN ;-)

+0

algo así como git pull normalmente extraerá de la fuente abierta ya que cloné el repositorio de github. Así que el push será como: git push origen [email protected]: repo.git? – chopi321

+0

Si el repositorio GitHub donde se clonó a partir de entonces que repo es probablemente 'origen controlado así que haga lo que dijo Tass, pero en lugar de' 'github' con origen controlado (y, por supuesto, sustituir' private' con el nombre de la cesión temporal privada) . Ver http://www.kernel.org/pub/software/scm/git/docs/git-remote.html – MatrixFrog

+0

Para mis compañeros noobs, sólo quiero señalar que en mi experiencia de hoy, debe cambiar toda tu repositorio url para "github" en "git push github master". – CodeWalrus

74

establecer una URL empuje para el mando a distancia que es diferente de la URL tirón:

git remote set-url --pushorigin[email protected]:repo.git

Esto cambia el ajuste de configuración remote.name.pushurl. Luego, git pull se extraerá de la URL de clonación original, pero git push pasará a la otra.


En antiguas versiones Git, git remote set-url no tenían el interruptor --push. Sin él, tiene que hacer esto cambiando la configuración de configuración manualmente:

git config remote.origin.pushurl[email protected]:repo.git
+5

+1 exactamente lo que estaba buscando – Tivie

+0

Uso el mismo ahora. – Reactormonk

+0

Algo más explícitamente: 'git remote set-url --push origen [email protected]: repo.git' – diapir

Cuestiones relacionadas