He creado una carpeta commoncon un montón de archivos y carpetas de origen.
Ahora quiero mover la commoncarpeta a la includecarpeta para que parezcainclude/common
Probé estos:
git add includegit mv common/ include/pero falla con este error
fatal: mala fuente, fuente = myrepo / común, destino = myrepo / include
Lo intenté
git mv common/ include/commonpero me sale el mismo error
¿Alguna idea de cómo lograr esto?

git mves equivalente.Deberia trabajar.
Desde la
git mvpágina del manual :No se
git adddebe hacer " " antes del traslado.Nota: "
git mv A B/", cuandoBno existe como directorio, debería producirse un error, pero no fue así.Ver commit c57f628 por Matthieu Moy (
moy) para Git 1.9 / 2.0 (Q1 2014):fuente
git mvparece un enfoque mucho mejor!Mando:
Por lo general funciona bien.
El error "fuente incorrecta ..." generalmente indica que después de la última confirmación hubo algunos cambios de nombre en el directorio fuente y, por
git mvlo tanto , no puede encontrar el archivo esperado.La solución es simple: solo confirme antes de aplicar
git mv.fuente
Asegúrese de haber agregado todos sus cambios al área de preparación antes de ejecutar
git falla con error
si hay archivos sin agregar, así que acabo de enterarme.
fuente
Otra forma de mover todos los archivos de un directorio a un subdirectorio (mantiene el historial de git):
$ for file in $(ls | grep -v 'subDir'); do git mv $file subDir; done;fuente
Tuve un problema similar con el lugar
git mvdonde quería mover el contenido de una carpeta a una carpeta existente, y terminé con este script "simple":Explicación
git ls-files: Encuentra todos los archivos (en lacommoncarpeta) registrados en gitnewdir="../include/$(dirname $f)"; mkdir -p $newdir;: Cree una nueva carpeta dentro de laincludecarpeta, con la misma estructura de directorios quecommongit mv $f $newdir/$(basename "$f"): Mueva el archivo a la carpeta recién creadaLa razón para hacerlo es que git parece tener problemas para mover archivos a carpetas existentes, y también fallará si intenta mover un archivo a una carpeta no existente (por lo tanto
mkdir -p).Lo bueno de este enfoque es que solo toca archivos que ya están registrados en git. Simplemente usando
git mvpara mover una carpeta completa, y la carpeta contiene cambios no organizados, git no sabrá qué hacer.Después de mover los archivos, es posible que desee limpiar el repositorio para eliminar cualquier cambio restante no organizado, ¡solo recuerde ejecutar en seco primero!
fuente
Lo siento, no tengo suficiente reputación para comentar la "respuesta" de "Andres Jaan Tack".
Creo que mi mensaje se eliminará ((pero solo quiero advertir a "Lurscher" y otros que obtuvieron el mismo error: tenga cuidado al hacer
Puede causar que no vea el historial de git de su proyecto en una nueva carpeta.
lo intenté
tiene
yo hice
y
y no veo la vieja historia de git en mi proyecto. Al menos mi proyecto no está perdido. Ahora tengo mi proyecto en newFolderName, pero sin el historial (
Solo quiero advertir, tenga cuidado al usar el consejo de "Andres Jaan Tack", si no quiere perder su historia.
fuente
Tuve un problema similar, pero en la carpeta que quería mover tenía archivos que no estaba rastreando.
digamos que tenía archivos
Y quería mover solo los archivos rastreados a la subcarpeta
subdir, por lo que el objetivo era:lo que hice fue:
mkdir tmpdir && mv a b tmpdirgit checkout a bmkdir subdir && mv a b subdirgit add --updatecon el truco de cambio de directorio ):git add subdir(normalmente esto agregaría incluso los archivos no rastreados, esto requeriría crear el.gitignorearchivo)git statusmuestra ahora solo archivos movidosmv tmpdir/* subdirgit statusparece que ejecutamosgit mv:)fuente
Resolví esto en Windows haciendo esto:
(.*)congit mv ".\\\1" ".\\<New_Folder_Here>\"fuente