2012-02-15 15 views
10

Quiero de alguna manera cambiar la estructura del directorio de git. Actualmente la arquitectura es comocambiando la estructura de git

VL(repo)  
    .git (hidden)  
    code files  
    ......  
    ..... 

I want it like 

html(repo) 
    .git 
    VL 
     code files 
     ...... 
     ...... 

que tenía una solución para archivar el repositorio actual y luego crear la nueva operación con la estructura anterior. Pero lo malo de este enfoque es que elimina toda la historia previa. ¿hay alguna solución mejor?

Respuesta

19

Cambiar el nombre de la carpeta raíz de VL a html no será ningún problema, ya que git solo funciona en los directorios por debajo de ese nivel.

Por lo tanto, lo que queda es la introducción de la carpeta VL debajo de la carpeta html y mover todo code files allí:

mkdir VL 
git mv <all your code> VL 
git commit -m "moved all my code under VL" 

Usando git mv le dice a Git que ha movido las cosas, por lo que todavía podría mantener un registro de la historia.


Editar:
Como Benjol señala en su comentario, utilizando git mv no es necesario. Se podría lograr el mismo copiando <all your code> a VL, y luego hacer

  • git add VL
  • git rm <all your code>
  • git commit -m "moved all my code under VL

Git es lo suficientemente inteligente como para reconocer el movimiento.

+0

Incluso si no usa 'git mv', git debe darse cuenta de que los archivos solo se han movido y no han cambiado. – Benjol

+0

@Benjol: sí, por supuesto, tienes razón. Solo quería dar la información a OP de que hay un comando incorporado para su caso de uso. Actualización de respuesta. Gracias. – eckes

+0

Tenga en cuenta que se podrá acceder al historial a través del cambio con "git log --follow", pero esto solo funciona para archivos individuales. – yoyo

2

Mueva su código manualmente. Luego,

git add -A 
git commit -m "moved code" 

Listo.

Cuestiones relacionadas