Tenedor de repository público en privado y recibir confirmaciones públicas

Tengamos el repository público de github (A) https://github.com/schacon/example

Quiero bifurcar este repository a bitbucket como repos privado (B).

Deseo recibir confirmaciones públicas del repository A al repository B.

¿Es posible?

  • Crea un nuevo repository privado en BitBucket llamado B Clona el B localmente.
  • Ir al repository B Agregue un nuevo control remoto (por ejemplo, repoA) con la URL del repository GitHub (repository A).

     $ git remote add repoA <A-repo-url> $ git remote -v # see the remotes 
  • Tire de los commits / changes del repository A en el repository B.

     $ git pull repoA master # B's master = A's origin/master 
  • Empuje los cambios al repository B (BitBucket).

     $ git push origin HEAD # B's origin/master = A's origin/master 

Obtener todas las twigs del repository A.

 $ git fetch repoA 

Crea una nueva twig con el historial de la twig A (por ejemplo, next )

 $ git checkout -b next repoA/next # create a local 'next' branch = repoA/next 

Presione los next cambios locales de bifurcación a la next bifurcación del Depósito B.

 $ git push origin next 

En el futuro, mantenga Sync con el repository A.

 $ git fetch repoA 

Ahora, tire de la twig de A hacia la twig de B o simplemente realice el pago a una nueva twig como en el ejemplo anterior. Luego presione el repository de B.

Nota repoA es su repository La URL y el origin es la URL del repository B aquí.

Hay un par de maneras de hacer esto:

  1. Simplemente refleje un repository, no intentando trabajar en el desarrollo en la copy local
  2. Haga el trabajo de desarrollo en su área de trabajo local mientras empuja / tira a 2 mandos a distancia diferentes como parte de su flujo de trabajo.

Para una copy duplicada (p. Ej., Todas las twigs), está cubierto con bastante claridad en los documentos de github aquí: https://help.github.com/articles/duplicating-a-repository/ . Sin embargo, tenga en count que estos methods son estrictamente para reflejar un repository, es decir, crean repositorys locales desnudos que no son adecuados para el trabajo de desarrollo local.

En una palabra:

A. Para una copy espejo de una sola vez:

 $ git clone --bare https://github.com/exampleuser/A.git $ cd A.git $ git push --mirror https://github.com/exampleuser/B.git $ cd .. $ \rm -rf A.git 

B. Para una copy duplicada en curso:

Configuración: primero crea el repository Bitbucket objective, luego localmente

 $ git clone --mirror https://github.com/exampleuser/A.git $ cd A.git $ git remote set-url --push origin https://bitbucket.com/exampleuser/B.git 

Luego, según sea necesario, extraiga los cambios de A y empújelos hacia B

 $ cd A.git $ git fetch -p origin $ git push --mirror