Tabla de contenido
La ruta de destino del movimiento no existe
Existe un archivo con el mismo nombre en la ruta de destino de la mudanza
Mover archivos fuera del almacén
descripción
A diferencia de otros sistemas VCS, Git no rastrea explícitamente las operaciones de movimiento de archivos. Si se cambia el nombre de un archivo en Git, los metadatos almacenados en el almacén no reflejarán que se trata de una operación de cambio de nombre. Pero Git es muy inteligente, inferirá lo que sucedió.
usar
Utilice el comando git mv para mover un archivo o directorio a otro, o cámbiele el nombre.
git mv <path> <target_path>
sendero | La ruta actual del archivo |
target_path | Ruta de destino del archivo |
Descripción
El comando git mv es en realidad una colección del comando mv y el comando git add. Por ejemplo, mueva login.py en el directorio del sistema al directorio de usuarios:
git mv system/login.py user/login.py
Esto es consistente con el efecto del siguiente comando:
mv system/login.py user/login.py
git add user/login.py
Ejemplo
Modifique readmd_en.md en el almacén local a readme.md:
$ ll
total 0
drwxr-xr-x 4 liushuochen staff 128 11 15 15:08 ./
drwxr-xr-x+ 124 liushuochen staff 3968 11 15 15:09 ../
drwxr-xr-x 12 liushuochen staff 384 11 15 15:09 .git/
-rw-r--r-- 1 liushuochen staff 0 11 15 15:08 readme_en.md
$ git mv readme_en.md readme.md
$ ll
total 0
drwxr-xr-x 4 liushuochen staff 128 11 15 15:10 ./
drwxr-xr-x+ 124 liushuochen staff 3968 11 15 15:10 ../
drwxr-xr-x 12 liushuochen staff 384 11 15 15:10 .git/
-rw-r--r-- 1 liushuochen staff 0 11 15 15:08 readme.md
$ git commit -m "modify readmd_en.md to readmd.md"
[master aa02620] modify readmd_en.md to readmd.md
1 file changed, 0 insertions(+), 0 deletions(-)
rename readme_en.md => readme.md (100%)
Precauciones
Mover archivos inexistentes
Al mover un archivo que no existe, el comando git mv informa un error: fatal: fuente incorrecta
$ git mv a.txt b.txt
fatal: bad source, source=a.txt, destination=b.txt
La ruta de destino del movimiento no existe
Cuando la ruta de destino que se va a mover no existe, git mv informa que no existe un directorio de destino de error.
Por ejemplo, en un proyecto con la siguiente estructura de archivos, mueva el archivo readme.md más externo al directorio de configuración (un directorio que no existe):
$ tree .
.
├── conf
│ └── readme.md
└── readme.md
1 directory, 2 files
$ git mv readme.md config/
fatal: destination directory does not exist, source=readme.md, destination=config/
Existe un archivo con el mismo nombre en la ruta de destino de la mudanza
Cuando la ruta de destino que se va a mover tiene un archivo con el mismo nombre que el archivo que se va a mover, git mv informa que existe un destino de error.
Por ejemplo, en un proyecto con la siguiente estructura de archivos, mueva el archivo readme.md más externo al directorio conf:
$ tree .
.
├── conf
│ └── readme.md
└── readme.md
1 directory, 2 files
$ git mv readme.md conf/
fatal: destination exists, source=readme.md, destination=conf/readme.md
Mover archivos fuera del almacén
Intente usar git mv para mover archivos en el almacén fuera del almacén, incluso si la ruta es correcta, git mv aún informará un error:
$ git mv readme.md ../
fatal: '../' is outside repository