2009-08-11 18 views
11

Tengo un proyecto que usa Git donde me he separado del maestro para renombrar un directorio.Git: cambiar el nombre de un directorio en una rama

El cambio de nombre en la rama funciona como se esperaba. Cuando vuelvo a la rama principal, el directorio tiene su nombre original, pero también hay un árbol de directorio vacío con el nombre al que lo cambié en la rama.

¿Es este el comportamiento esperado? ¿Me estoy perdiendo un paso?
¿Solo necesito eliminar estos árboles de directorios vacíos a medida que aparecen?

Sé que Git no rastrea los directorios vacíos y eso puede ser un factor aquí.

Mi flujo de trabajo actual es:

# create and checkout a branch from master 
/projects/demo (master) 
$ git checkout -b rename_dir 

# update paths in any affected files 

# perform the rename 
/projects/demo (rename_dir) 
$ git mv old_dir new_dir 

# add the modified files 
/projects/demo (rename_dir) 
$ git add -u 

# commit the changes 
/projects/demo (rename_dir) 
$ git commit -m 'Rename old_dir to new_dir' 

Cómo llego a este punto y todo está como era de esperar:

# old_dir has been renamed new_dir 
/projects/demo (rename_dir) 
$ ls 
new_dir 

El problema viene cuando cambio de nuevo a maestro:

/projects/demo (rename_dir) 
$ git checkout master 

# master contains old_dir as expected but it also 
# includes the empty directory tree for new_dir 
/projects/demo (master) 
$ ls 
old_dir new_dir 

new_dir es un árbol de directorio vacío, por lo que git no lo rastreará, pero es feo tenerlo allí.

+0

FWIW, no obtengo ese comportamiento con 1.6.3.1: new_dir ha desaparecido después de la finalización de pago de master. ¿Qué versión está utilizando? –

+0

Estoy usando msysgit 1.6.4 – jmohr

+0

¿Hay algún archivo oculto sin seguimiento. * En new_dir? –

Respuesta

10

Sí, puede quitarlo. También puede usar git clean -d para eliminar el directorio.

+0

Gracias - ese es un comando útil del que no tenía conocimiento. – jmohr

1

Es bastante probable que haya ocultado archivos en el nuevo directorio. "ls -a newdir"

Cuestiones relacionadas