Obtener maestro de un repository remoto para dominar otro remoto + uno

Tengo dos repositorys remotos (Diga A y B). A tiene un maestro de simulador (en cuanto al contenido) para B, pero no es lo mismo.

Quiero actualizar A desde B, para que A tenga el mismo maestro como B. Quiero forzar la actualización A de B para que el maestro de A sea igual a B. Lo que haré es lo siguiente.

1.fetch maestro de B a mi local.

2.Push esto a B.

Pero no estoy seguro de que esta sea la mejor manera o la forma correcta de hacerlo

Actualización : es solo una actividad de una vez. No necesito mantenerme sincronizado todo el time

Si entiendo lo que está buscando, una conversión única, en lugar de una continuous integration, esto debería funcionar. Es un poco exagerado, ya que podría adaptarlo para trabajar en su repository local actualmente existente, pero luego tendría que hacer suposiciones sobre el estado actual de su repository local, y este enfoque ayudará a evitar conflictos debido a cambios no comprometidos, sin estado, etc.

git init newrepo # create a new scratch space repo cd newrepo git remote add originA <url or relative path of A> # add both original repos as remotes git remote add originB <url or relative path of B> git fetch originA master # fetch the branches we want git fetch originB master git checkout -b newbranch originB/master # start a new branch from B's master git merge -s ours originA/master # merge A's master in, but ignore # the content, so the result is # exactly B git push originA newbranch:master # push the new merged head to both git push originB newbranch:master # original repos 

Después de esto, puede deshacerse del repository temporal, volver a su repository de trabajo normal y git fetch / git pull las actualizaciones allí. En este punto, A y B se combinaron, pero el contenido es exactamente lo que B era, y ambos repos originales se han actualizado con el resultado fusionado (y el Repo A en cierto sentido es networkingundante, al less para su twig master ; si no hay otro trabajo en él, probablemente también pueda limpiarse). Otra forma de decir eso es que su repo de B ahora contiene la historia completa de A y B, en caso de que alguna vez necesite referirse a A por alguna razón, pero A ha sido descartado esencialmente a favor del desarrollo de B.

Puede extraer de uno y sobrescribir el otro usando un empuje de fuerza.

 $ git pull A master $ git push B master -f 

En general, debe evitarse forzar la fuerza porque está borrando todo el historial y la diferencia de potencial que hay en la twig a la que obliga a presionar.