2011-03-01 20 views
114

¿Qué sucede con un repositorio de git existente cuando emite git init nuevamente?¿La ejecución de git init inicia dos veces un repositorio o reinicializa un repositorio existente?

Creé un repositorio con git init. Creado un archivo, agregar, confirmar. Verifique el estado (nada que confirmar). Luego creé otro archivo, verifico el estado y puedo ver que no se ha registrado como se esperaba.

Luego, digo por error, ejecuto git init nuevamente y obtengo Reinicio del mensaje del repositorio de Git existente.

Probado git status, pero muestra lo mismo. Entonces, ¿qué pasa realmente?

¿Puede la reinicialización de un repositorio git existente ser perjudicial o útil? ¿Por qué podemos git init dentro de un repositorio existente?

+0

FWIW usando Xcode Primero creé el repositorio ** local ** para la * primera * vez, luego cuando fui a Github.com para crear un nuevo repositorio remoto. Lo cual hice, luego vincular mi repositorio local a mi control remoto ... Estaba siguiendo sus pasos (proporcionado en Github.com), su primer paso es 'git init', lo cual hice. Presumiblemente, era la segunda vez * después * de que Xcode lo había creado automáticamente – Honey

Respuesta

147

Desde el git docs:

ejecución de init git en un repositorio existente es seguro. No sobrescribirá las cosas que ya están allí. La razón principal para volver a ejecutar git init es recoger las plantillas recién agregadas.

99

Esto se describe en la documentación git init:

Correr git init en un repositorio existente es seguro. No sobrescribirá las cosas que ya están allí. La razón principal para volver a ejecutar git init es seleccionar plantillas recién agregadas.

26

Desde v1.7.5 (b57fb80a7), git init en una cesión temporal existente también ha permitido mover el directorio de .git:

La razón principal para volver a ejecutar 'git init' es para recoger las plantillas recién añadidos (o para mover el repositorio a otro lugar si se proporciona --separate-git-dir).

'Recogiendo las plantillas recién agregados' significa que todas las plantillas que ya no han sido copiadas de the template directory ahora se copiarán en el directorio Git existente.

'Mover el repositorio a otro lugar' significa que, si --separate-git-dir apunta a otro lugar, el directorio existente .git se moverá allí y se reemplazará por un enlace.

Cuestiones relacionadas