我们这篇文章来说说在Git中如何进行文件重命名。

提示一下,下面所说明的是对已经被Git管理的文件进行重命名,未被Git追踪的文件,直接修改文件名称就可以了。

1、用学过的命令进行文件重命名

(1)准备一个需要修改文件名的文件。

# 1.准备一个干净的Git仓库
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git status
On branch master No commits yet nothing to commit (create/copy files and use "git add" to track) # 2.创建一个文件
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ echo "hello git" > test.txt # 3.添加文件到暂存区
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git add test.txt
warning: LF will be replaced by CRLF in test.txt.
The file will have its original line endings in your working directory # 4.提交文件到本地版本库
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git commit -m 'add test.txt file'
[master (root-commit) 995fbbe] add test.txt file
1 file changed, 1 insertion(+)
create mode 100644 test.txt

(2)直接手动修改文件的名字。

# 1.查看工作目录中的文件状态
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git status
On branch master
nothing to commit, working tree clean # 2.手动修改文件名
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ mv test.txt readme.txt # 3.再次查看工作目录中的文件状态
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git status
On branch master
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
deleted: test.txt Untracked files:
(use "git add <file>..." to include in what will be committed)
readme.txt no changes added to commit (use "git add" and/or "git commit -a")

说明:上面显示test.txt文件被删除,新增未被追踪的文件readme.txt

换句话说,上面信息的意思是,Git仓库中删除了一个文件,又新增了一个文件。

(3)把工作区的修改提交到暂存区。

# 1.提交工作区的中的修改
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git add ./
warning: LF will be replaced by CRLF in readme.txt.
The file will have its original line endings in your working directory # 查看工作目录中的文件状态
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git status
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
renamed: test.txt -> readme.txt

我们可以看到Git还是很智能的,他通过你的操作,分析出你是在进行一个文件重命名的操作,所以在暂存区展示出来的状态是:renamed: test.txt -> readme.txt

说明:

上面执行git add ./命令,相当于执行了如下两条命令:

  • git rm test.txt :把test.txt文件从工作区删除。
  • git add readme.txt:把readme.txt文件添加到暂存区。

(不信你试试,哈哈)

(4)最后进行提交操作,就完成了文件的重命名。

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git commit -m 'rename test.txt -> readme.txt'
[master fe20ce4] rename test.txt -> readme.txt
1 file changed, 0 insertions(+), 0 deletions(-)
rename test.txt => readme.txt (100%) L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git status
On branch master
nothing to commit, working tree clean

2、使用git mv命令进行文件重命名

我们再把readme.txt文件重命名为test.txt

这次直接使用git mv命令实现,一条命令就可以完成上面繁琐的文件重命名步骤,日常工作中就用该命令重命名文件。

# 1.重命名文件
# 前边是要重命名的文件,后边是要变更成的文件名。
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git mv readme.txt test.txt # 2.查看工作目录中的文件状态
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git status
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
renamed: readme.txt -> test.txt # 3.提交到本地版本库
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git commit -m 'rename readme.txt -> test.txt'
[master 92cf82d] rename readme.txt -> test.txt
1 file changed, 0 insertions(+), 0 deletions(-)
rename readme.txt => test.txt (100%)

可以看到非常简单就把文件进行了重命名。

其实运行git mv readme.txt test.txt命令就相当于运行了下面三条命令:

  • mv readme.txt test.txt
  • git rm readme.txt
  • git add test.txt

说明:文件重命名其实是一个很简单的操作,为什么花费一整篇的内容来讲解,主要是让大家慢慢习惯Git的工作方式。

『现学现忘』Git基础 — 22、Git中文件重命名的更多相关文章

  1. 『现学现忘』Docker基础 — 34、DockerFile文件详解

    目录 1.DockerFile文件说明 2.Dockerfile构建过程解析 (1)Docker容器构建三步骤 (2)Dockerfile文件的基本结构 (3)Dockerfile注意事项 (4)Do ...

  2. 『现学现忘』Docker基础 — 22、使用Docker安装Nginx

    目录 步骤1:搜索镜像 步骤2:下载Nginx镜像 步骤3:运行Nginx镜像 步骤4:进行本机测试 步骤5:进入容器内操作 步骤6:测试外网访问容器 步骤1:搜索镜像 使用docker search ...

  3. 『学了就忘』Linux基础命令 — 25、文件基本权限的管理

    目录 1.文件和目录的默认权限 2.umask默认权限 (1)查看系统的umask权限 (2)用八进制数值显示umask权限 (3)umask权限的计算方法 (4)注意:umask默认权限的计算绝不是 ...

  4. 『学了就忘』Linux基础命令 — 20、文件操作的相关命令

    目录 1.touch 命令 2.stat命令 3.cat命令 4.more命令 5.less命令 6.head命令 7.tail命令 1.touch 命令 touch命令用于创建空文件或修改文件时间, ...

  5. 『学了就忘』Linux基础命令 — 23、文件基本权限的介绍和作用

    目录 1.基本权限的介绍 (1)权限位的含义 (2)权限的优先级 2.权限的基本作用 (1)权限含义的解释 (2)目录权限说明 1.基本权限的介绍 (1)权限位的含义 前面讲解ls命令时,我们已经知道 ...

  6. 『学了就忘』Linux基础命令 — 24、文件基本权限的相关命令

    目录 1.chmod命令 2.权限模式 (1)用户身份. (2)赋予方式. (3)权限. 3.数字权限 4.文件常用权限 5.chown命令 6.chgrp命令 7.总结 常用基本权限操作命令: ch ...

  7. git 文件重命名

    文件重命名 git mv old_name new_name git commit -m 'rename' git push origin master 删除文件 git rm filename

  8. git使用记录二: 给文件重命名的简单方法

    git使用记录三: 给文件重命名的简单方法 git mv file_name_old file_name_new mv: 文件命名 file_name_old : 文件当前的名字 file_name_ ...

  9. 『现学现忘』Git基础 — 5、Git的协作模式

    目录 1.分布式工作流程 2.集中式工作流 3.分支工作流 4.GitFlow 工作流(最流行) 5.Forking 工作流(偶尔使用) 6.总结 1.分布式工作流程 与传统的集中式版本控制系统(CV ...

随机推荐

  1. spring-boot-learning自动配置原理

    启动器: spring-boot-starter:spring-boot场景启动器,帮我们倒入我们场景需要的组件依赖 不同的场景有不同的启动器: spring-boot-starter-web     ...

  2. 构造器注入和 setter 依赖注入,那种方式更好?

    每种方式都有它的缺点和优点.构造器注入保证所有的注入都被初始化,但是 setter 注入提供更好的灵活性来设置可选依赖.如果使用 XML 来描述依赖, Setter 注入的可读写会更强.经验法则是强制 ...

  3. Python的数据基础库Numpy怎样对数组进行排序

    Numpy怎样对数组排序 Numpy给数组排序的三个方法: numpy.sort:返回排序后数组的拷贝 array.sort:原地排序数组而不是返回拷贝 numpy.argsort:间接排序,返回的是 ...

  4. call、apply和 bind的简单使用方法

    - call.apply:在 javascript 中,call 和 apply 都是为了改变某个函数运行时的上下文(context)而存在的,换句话说,就是为了改变函数体内部 this 的指向. J ...

  5. python-输入输出-计算字符串中的数

    将字符串中的每个数都抽取出来,然后统计所有数的个数并求和. 输入格式: 一行字符串,字符串中的数之间用1个空格或者多个空格分隔. 输出格式: 第1行:输出数的个数.第2行:求和的结果,保留3位小数. ...

  6. 【weex开发】weex官方源码

    公司目前使用版本:weex_sdk:0.10.0 介绍地址:https://bintray.com/alibabaweex/maven/weex_sdk/0.18.0 weex最新版本:weex_sd ...

  7. 解决vscode卡顿,CPU占用过高的问题

    打开vscode之后,点击文件==>首选项==>设置 搜索设置 search.followSymlinks   然后将这个值改为false

  8. python---两个栈实现一个队列

    class Solution: """两个栈实现一个队列""" def __init__(self): # 接收栈 self.accept_ ...

  9. springboot+springsecurity+mybatis plus之用户授权

    文章目录 前言 一.导入坐标 二.Users实体类及其数据库表的创建 三.controller,service,mapper层的实现 四.核心--编写配置文件 五.无权限界面和登录界面的实现 前言 即 ...

  10. 痞子衡嵌入式:大话双核i.MXRT1170之单独在线调试从核工程的方法(IAR篇)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是i.MXRT1170下单独在线调试从核工程的方法(基于IAR). 两年前痞子衡写过一篇<双核i.MXRT1170之Cortex-M ...