2012-02-11 31 views
14

Soy bastante nuevo en cuanto a git y al control de versiones en general, y tengo preguntas sobre cómo mover archivos. Tengo un repositorio maestro en GitHub, con 6 archivos fuente.Git Mover archivos a carpetas

He trabajado mucho en el proyecto y ahora mi sucursal local contiene dos carpetas con las fuentes en las mismas.

La estructura de directorios solía ser como:

Maestro:

  • File 1
  • File 2
  • File 3
  • File 4
  • File 5
  • File 6

Donde como mi rama local ahora se ve así:

Nueva Carpeta 1:

  • nuevo archivo 1
  • archivo nuevo 2
  • nuevo archivo 3

Nueva Carpeta 2:

  • Archivo 1
  • Archivo 2
  • Archivo 3
  • Archivo 4
  • archivo 5
  • Archivo 6

¿Cómo puedo mover mi estructura local de la rama principal sin perder cometer historial en los archivos antiguos?

Respuesta

11

Comprométete. Git culpa, etc. generalmente hará un buen trabajo detectando movimientos automáticamente.

7

git en realidad no rastrea los "movimientos" de los archivos, sino que lo infiere a petición de contenido similar. Por lo tanto, solo haga el movimiento y agregue/elimine archivos según corresponda. (Va a hacer la vida más fácil para las herramientas en el futuro si se evita realizar cambios en el contenido, así como moverlos en una única confirmación.)

Entonces, para ver el registro de contabilización de movimientos, usar -M, -C, o sus variantes a git log. Los indicadores similares se aplican a otras herramientas, y debe leer la ayuda para comprender el detalle de lo que hacen.

Si usa git mv en un archivo, solo hace el git rm y git add para usted.

+0

otros explican que el mv es difícil todo lo que necesita. Cree la carpeta a mv primero para su comodidad – doozMen

4

Los otros carteles son correctos, sin embargo, si desea confirmar que git los verá como movimientos (y no como una combinación de eliminar/crear), ejecute git status.Debería ver:

# Changes to be committed: 
# (use "git reset HEAD <file>..." to unstage) 
# 
# renamed: oldfile.txt -> newFolder/newfile.txt 
+8

Si git ve el movimiento como una combinación de eliminar/crear, ¿qué hacer entonces? – Gauthier

+1

Etapa para eliminar archivos de la carpeta anterior, y luego agregar archivos en una nueva carpeta, lo más probable es que vea esto como cambiar el nombre. – Serg

0

En github, si usted no tiene demasiados archivos para mover, una alternativa interesante es editar el archivo y cambiar su nombre a:

folder_to_move_into/file_name 

Cuando confirmar, el archivo se mueve a la carpeta. Si la carpeta no existe, se creará.

Cuestiones relacionadas