Estoy trabajando en un proyecto basado en CakePHP , alojado en GitHub . Mi proyecto está alojado en Bitbucket . Ambos usan git . Básicamente me gustaría crear un 'fork' (no sé si estoy usando los términos correctos, ya que soy nuevo en git ) de CakePHP en mi repositorio de Bitbucket, para poder obtener las actualizaciones sin la necesidad de descargar todo el zip / tar de CakePHP y reemplazar la carpeta, luego confirmar y presionar, pero tal vez con una 'fusión' (?).
160
Respuestas:
Hoy no es posible enviar "solicitud de extracción" a través de diferentes sitios. He agregado una solicitud de función para esto en el rastreador de problemas de Bitbucket: # 3288 . Le sugiero que se agregue como seguidor si desea realizar un seguimiento de esto.
Sin embargo, aún puede mover la fuente de GitHub a Bitbucket sin tener que descargar ningún archivo zip o tarballs. Haces un clon de GitHub y presionas a Bitbucket:
mg/cakephp
Primero creé como un repositorio Git vacío en Bitbucket. De esa manera, puede empujar / extraer conjuntos de cambios de GitHub a Bitbucket.fuente
cd cakephp
entre los dos comandos. Obvio para los no principiantes, sí, pero los principiantes pueden preguntarse por qué no está funcionando.fork
. Las ramas y etiquetas NO se copian en BitBucket.El siguiente flujo de trabajo agrega el repositorio de github como un nuevo control remoto llamado
sync
y el control remoto bitbucket comoorigin
. También agrega una rama llamadagithub
para rastrear el repositorio de github y una rama llamadamaster
para rastrear el repositorio de bitbucket. Se supone que tiene un repositorio de bitbucket llamado "myrepository" que está vacío.Configurar controles remotos
Configurar ramas
Ahora debe hacer que la
github
sucursal local rastree lamaster
sucursal del repositorio de github . Y debe hacer que lamaster
sucursal local rastree el repositorio de bitbucket (master
sucursal por defecto).Esto hace que sea más fácil tirar de la
github
rama, luego fusionar esos cambios en lamaster
rama (sin embargo, se prefiere rebase sobre la combinación) y luego puede empujar lamaster
rama (la empujará a bitbucket).fuente
--set-upstream
está en desuso ... Pero esto funciona siempre que cree lagithub
rama antes de intentar establecer el repositorio ascendente.git fetch
ygit branch --track github sync/master
git checkout github
ygit checkout -b master
después del comando git branch. Terminarás con esas ramas (git branch -a
): github, master, remotes / origin / master, remotes / sync / masterSi desea mantener actualizado su repositorio, use dos controles remotos: Github (
upstream
) y Bitbucket (origin
) de esta manera:Para obtener actualizaciones de CakePHP desde Github:
Para enviar los cambios de código a Bitbucket:
fuente
git
comando, ¿verdad? Este es el camino a seguir ...git push --all --mirror origin
. Respuesta actualizadafatal: --all and --mirror are incompatible
Además:git pull upstream master
arroja un error fatal.fatal: Couldn't find remote ref master
Al crear un nuevo repositorio en BitBucket, haga clic en el botón
Import repository
en la esquina superior derecha. Ingrese la URL https que se encuentra al hacer clicClone or download
en Github para el repositorio que desea bifurcar.Dale un nombre a tu repositorio, configura tu configuración de privacidad y ¡listo!
fuente
He notado que desde la respuesta de @Martin Geisler, Bitbucket ha habilitado una función para importar repositorios desde github.com
Pude importar con éxito un repositorio privado de github.com a un repositorio privado en bitbucket.org
Aquí están los pasos :
Tenga en cuenta el enlace del repositorio de importación en la esquina superior derecha de la captura de pantalla
fuente
Supongo que solo quieres descargar fácilmente el repositorio con tu proyecto ... y que NO contribuirás con cakePHP, ¿correcto?
si es así, solo necesita agregar una referencia externa a su repositorio.
SVN: equivalentes externos en GIT?
Y más tarde, incluso si desea contribuir a cakePHP, puede hacerlo en el repositorio original muy bien.
fuente