git woes – cuando hagas un pull, dice que va a borrar todo

Tener un repository existente en git-hub con los files de proyectos.

En una máquina nueva, ingrese en el directory de destino, p. Ej. Myproject, y haga esto:

$ git init

$ git remote add origen https://github.com/myco/myproj.git

$ git pull (esto descarga muchos files)

$ ls (sin files)

$ git branch –set-upstream master origin / master

$ ls (sin files)

$ git estado (muestra todos los files están marcados para su eliminación!)

He usado esta receta antes, no tengo idea de por qué hacer un check-out de un repository hace que elimine todos los files de repos.

Si trato de hacer la twig git antes de que el git tire, da un error.

No puedo usar git clone, ya que en última instancia, necesito que los files se comprueben en un directory eisting que ya tendrá algunos files de proyecto donfig (no en git).

¿Algunas ideas?

Si esa es, de hecho, la secuencia exacta de commands que siguió, aquí hay algunos comentarios que lo ayudarán a comprender dónde se encuentra:

$ git init 

Dado que parece que ingresó un directory vacío (en una máquina nueva, …), esto crea un nuevo repository fuera de su directory actual. Este repository no tiene objects, no hay twig master aún, no se compromete, etc.

 $ git remote add origin https://github.com/myco/myproj.git 

Esto agrega su repository de origen y no debería ser un problema.

 $ git pull (this downloads lots of files) 

Esto hace dos cosas: git fetch para recolectar todos los objects, twigs, etc. que tu repository de origin tiene actualmente pero tu repository local no (es decir, todo, ya que estás en un repository actualmente vacío), seguido de git merge . La fase de merge debería haber fallado aquí, con un post sobre el efecto de "no me dijiste lo que quieres fusionar, así que no voy a hacerlo".

 $ ls (no files) 

Derecha. Aún no ha comprobado nada, y dado que la git merge anterior falló, nunca llegó al punto de actualizar su directory de trabajo.

 $ git branch --set-upstream master origin/master 

Ahora está creando una twig master que tiene origin/master como ascendente y como punto de partida. Sin embargo, esto no comtesting la twig, que deja su directory de trabajo en el mismo estado que antes, es decir, vacío.

 $ ls (no files) 

Todavía no ha verificado nada, por lo que se espera esto.

 $ git status ( shows all the files are marked for deletion! ) 

git compara su directory de trabajo vacío con lo que cree que debería estar allí, y determina que debe haber eliminado todo.

Lo que realmente querías hacer allí es esto:

 $ cd directory/where/you/want/your/repository $ git clone https://github.com/myco/myproj.git $ cd myproj 

Luego, copie sus files de configuration de proyectos adicionales en su lugar.

Si realmente quieres hacerlo todo de forma manual, usa git fetch lugar de git pull , y después de tu git branch ... line, haz un git checkout master (o haz git checkout -b master origin/master en lugar de git branch ... line, que implícitamente hace la configuration de la bifurcación antes de verificar los files).