Git clone –bare / fetch

Tengo un repository git con una larga y extraña historia. No sé qué hicieron los desarrolladores con este repository y no pueden controlar lo que están haciendo ahora.

Pero necesito clonar este repository (para la integración de networkingmine) y search todos los cambios periódicamente.

Qué debo hacer:

git clone --bare git@git.server.com:/opt/git/repo cd repo.git git log 

Ahora puedo ver todos los commits. Multa.

A continuación, un desarrollador realiza una confirmación en el repository principal y quiero search todos los cambios (todas las marcas, tags, etc., etc.):

 > git fetch --all Fetching origin remote: Counting objects: 18, done. remote: Compressing objects: 100% (14/14), done. remote: Total 14 (delta 5), reused 0 (delta 0) Unpacking objects: 100% (14/14), done. From git.gmcs.ru:/opt/git/ecco * branch HEAD -> FETCH_HEAD 

Pero si se pregunta el historial de confirmaciones, no vi la última confirmación que se realizó en el repository principal. Por qué ?

Si publico información insuficiente, estoy listo para darle todo lo necesario.

Gracias por adelantado.

Actualizado

Aquí hay una información de Brach en el repository original:

 git branch -a one test * master release 

Aquí hay una información de la twig en el repository clonado:

 git branch -a one test * master release 

Puedo ver los últimos commits en la twig principal del repository original, pero no puedo encontrarlos en la twig principal del repository clonado.

Deberías usar git pull

o ejecuta git merge after fetch para get los cambios

si tienes un repository vacío, no puedes hacer un pull, porque un pull quiere fusionarse con HEAD, que no tiene un repository simple.

para actualizar el repository desnudo, puede agregarlo como remote repository remote a otro y pulsarlo.

Pero creo que --mirror lugar de --bare funcionará para ti como está.

Comparado con –bare, –mirror no solo asigna las twigs locales de la fuente a las twigs locales del objective, sino que mapea todas las references (incluidas las sucursales remotas, notas, etc.) y configura una configuration de refspec para que todas estas references se sobrescriban mediante una actualización remota de git en el repository de destino.

y luego puedes usar git remote update para actualizar el repository duplicado

Para get más actualizaciones en un repository desnudo, hago:

 git config remote.origin.fetch 'refs/heads/*:refs/heads/*' 

Entonces puedo hacer:

 git fetch 

Puede actualizar el HEAD de su repository desnudo con git symbolic-ref , por ejemplo, para apuntarlo a branch master desde origin remoto

 $ git symbolic-ref HEAD refs/remotes/origin/master 

Si usa git fetch para actualizar los controles remotos, se actualizará, por ejemplo, origin/master . Lo único que faltaba era volver a marcar la HEAD del clon.

Para search en su repository desnudo, configurar regularmente primero

 git config remote.origin.fetch "+*:*" 

y luego simplemente corre

 git fetch --prune 

para search todos los cambios, incluyendo tags, nuevas twigs e incluso eliminaciones de twigs (opción --prune ).

  • Tenga también en count las comillas dobles adjuntas ( " ) en el command anterior para proteger el asterisco ( * ) que no debe interpretarse desde su caparazón.
  • El signo más es necesario para permitir actualizaciones no rápidas. Esa es probablemente su intención si desea hacer una copy de security del estado actual de su control remoto.
  • Nota: las eliminaciones de tags no se obtienen utilizando esta configuration.

Ver también http://sofes.miximages.com/a/33461528/4138912 .