博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Git移动文件,重命名文件
阅读量:4190 次
发布时间:2019-05-26

本文共 1918 字,大约阅读时间需要 6 分钟。

目录


描述

不像其它的 VCS 系统,Git 并不显式跟踪文件移动操作。 如果在 Git 中重命名了某个文件,仓库中存储的元数据并不会体现出这是一次改名操作。 不过 Git 非常聪明,它会推断出究竟发生了什么。

使用

使用 git mv 命令可以将一个文件或者目录移动到另一处,或者实现更名。

git mv 
path 文件的当前路径
target_path 文件的目标路径

 

说明

git mv命令其实就是 mv 命令与git add命令的集合。例如将system目录下的login.py移动到user目录下:

git mv system/login.py user/login.py

这与下面的命令效果一致:

mv system/login.py user/login.pygit add user/login.py

示例

将本地仓库中的readmd_en.md修改为readme.md:

$ lltotal 0drwxr-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$ lltotal 0drwxr-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%)

注意事项

移动不存在的文件

当移动一个不存在的文件时,git mv命令报错:fatal: bad source

$ git mv a.txt b.txtfatal: bad source, source=a.txt, destination=b.txt

移动的目标路径不存在

当要移动的目标路径不存在时,git mv报错destination directory does not exist。

例如,文件结构如下的项目中,把最外层的readme.md移动到config目录下(一个不存在的目录):

$ tree ..├── conf│   └── readme.md└── readme.md1 directory, 2 files$ git mv readme.md config/fatal: destination directory does not exist, source=readme.md, destination=config/

移动的目标路径存在同名文件

当要移动的目标路径存在与要移动的文件同名文件时,git mv报错 destination exists。

例如,文件结构如下的项目中,把最外层的readme.md移动到conf目录下:

$ tree ..├── conf│   └── readme.md└── readme.md1 directory, 2 files$ git mv readme.md conf/fatal: destination exists, source=readme.md, destination=conf/readme.md

将文件移动到仓库外

将仓库内的文件试图用git mv移动到仓库外,即使路径正确,git mv也仍然会报错:

$ git mv readme.md ../fatal: '../' is outside repository

转载地址:http://xcsoi.baihongyu.com/

你可能感兴趣的文章
CentOS 7.0,启用iptables防火墙(转)
查看>>
DISCUZ浅析之COOKIE篇
查看>>
实战DDD(Domain-Driven Design领域驱动设计:Evans DDD)
查看>>
SSH中各个框架的作用以及Spring AOP,IOC,DI详解
查看>>
openstack juno 配置vmware(vcenter、vsphere)
查看>>
远程debug调试(eclipse)之openstack windows
查看>>
PAAS平台对比:OpenShift VS CloudFoundry【51CTO调研报告】
查看>>
JAX-RS(java restful实现讲解)(转)
查看>>
Spring MVC与JAX-RS比较与分析
查看>>
openstack官方docker介绍
查看>>
头痛与早餐
查看>>
[转]在ASP.NET 2.0中操作数据::创建一个数据访问层
查看>>
Linux命令之chmod详解
查看>>
【java小程序实战】小程序注销功能实现
查看>>
webkit入门准备
查看>>
在Ubuntu 12.04 64bit上配置,安装和运行go程序
查看>>
ATS程序功能和使用方法详解
查看>>
常用Linux命令总结
查看>>
Tafficserver旁路接入方案综述
查看>>
在CentOS 6.3 64bit上如何从源码生成rpm包?
查看>>