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?
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:
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