Git step by step 7 之git mv

一、基本介绍
git mv 移动或重命名一个文件、目录或软链接
命令格式为
git mv <source> <destination>
git mv <source>... <destination directory>


这里有个待解决的问题:
假设工作目录、暂存区以及本地数据目录中有一个file,我们为file想到了一个更好的名字——newfile,并进行了以下操作

mv file newfile

那么在工作目录中file变成了newfile,暂存区中还为原来的file。这种情况下该如何解决?

目前想到的方法是先
git rm file

目的是不再跟踪这个file,然后再
git add newfile

使得跟踪newfile。
如果不做第一步,只做了第二步,那么在暂存区中会同时有file以及newfile,即git跟踪了file以及newfile,那么进行commit时,它两都会被加入数据目录中。

所以个人觉得,要是进行mv操作时,一定要加上git,即
git mv XXX XXX

以防止遗忘了这个操作,使得版本库中出现冗余的文件或目录。

内容扩展:
这里提到了“跟踪”这个术语,解释一下:
在工作目录中新建一个文件时,它处于未被跟踪状态,一旦执行了git add之后,这个文件即被提交到了暂存区,那么它也就处于了被跟踪状态。
只有被跟踪的文件才能被commit,在进行git commit操作时,所有被跟踪的文件都会被放入本地数据目录。
这句话想强调的是,只有被放入了暂存区的文件才是被跟踪的文件,这些文件才可以被提交到本地数据目录中,那些从暂存区中删除掉了文件即被解除了跟踪,在进行提交时,即使之前的本地数据目录中有那些文件,在提交之后,这些文件将不再存在于本地数据目录中。


more:
[url=https://www.kernel.org/pub/software/scm/git/docs/git-mv.html]man git mv[/url]
《pro git》
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值