remove - Bifurcación de GitHub a Bitbucket
git tags best practices (5)
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 Bitbucket, para poder obtener las actualizaciones sin la necesidad de descargar todo el zip / alquitrán de CakePHP y reemplazar la carpeta, luego confirmar y presionar, pero tal vez con una ''fusión'' (?).
¡Gracias!
Al crear un nuevo repositorio, BitBucket ahora le dará la opción de clonar un directorio desde otro sitio. Es extremadamente simple: ingrese el directorio que desea clonar, asígnele un nombre, configure su configuración de privacidad, ¡y listo!
El siguiente flujo de trabajo agrega el repositorio github como un nuevo control remoto llamado sync
y el control remoto bitbucket como origin
. También agrega una rama llamada github
para rastrear el repositorio github y una rama llamada master
para rastrear el repositorio bitbucket. Asume que tienes un repositorio bitbucket llamado "myrepository" que está vacío.
Configurar controles remotos
# setup local repo
mkdir myrepository
cd myrepository
git init
# add bitbucket remote as "origin"
git remote add origin ssh://[email protected]/aleemb/myrepository.git
# add github remote as "sync"
git remote add sync https://github.com/aleemb/laravel.git
# verify remotes
git remote -v
# should show fetch/push for "origin" and "sync" remotes
Configurar ramas
# first pull from github using the "sync" remote
git pull sync
# setup local "github" branch to track "sync" remote''s "master" branch
git branch --track github sync/master
# switch to the new branch
git checkout github
# create new master branched out of github branch
git checkout -b master
# push local "master" branch to "origin" remote (bitbucket)
git push -u origin master
Ahora debería tener la sucursal github
local github
rama maestra del github repo. Y debe tener la rama master
local rastreando el repositorio bitbucket (rama master
por defecto).
Esto hace que sea fácil tirar de la rama github
, luego fusionar esos cambios en la rama master
(sin embargo, se prefiere la rebase sobre la fusión) y luego puede empujar la rama master
(la empujará a bitbucket).
No es posible enviar "solicitud de extracción" a través de diferentes sitios hoy. He agregado una solicitud de función para esto en el rastreador de problemas Bitbucket: #3288 . Te sugiero que te agregues como seguidor si quieres rastrear 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 Bitbucket:
$ git clone https://github.com/cakephp/cakephp
$ git push [email protected]:mg/cakephp.git master
mg/cakephp
como un repositorio de Git vacío en Bitbucket primero. De esa forma puede empujar / jalar conjuntos de cambios de GitHub a Bitbucket.
Si desea mantener actualizado su repositorio, use dos controles remotos: Github ( upstream
) y Bitbucket ( origin
) de esta manera:
# Clone original CakePHP source code from Github
git clone https://github.com/cakephp/cakephp
cd cakephp
# Rename remote from `origin` to `upstream`
git remote rename origin upstream
# Add your Bitbucket repo (this is where your code will be pushed)
git remote add origin https://bitbucket/your/repo.git
Para extraer actualizaciones de CakePHP de Github:
git pull upstream master
Para hacer que su código cambie a Bitbucket:
git push origin master
Supongo que solo quiere descargar fácilmente el repositorio con su proyecto ... y que NO contribuirá con el CakePHP, ¿correcto?
si es así, solo necesita agregar una referencia externa a su repositorio.
SVN: ¿equivalente externo en GIT?
Y luego, incluso si desea contribuir con cakePHP, puede hacerlo en el repositorio original sin problemas.