本文将介绍Git如何通过命令行的方式实现文件重命名。
在上一篇文章中我们介绍了Git操作本地仓库的基本过程,那么重新命名文件是不是也可以通过先在工作区修改文件,然后添加到暂存区,再提交到本地仓库呢?我们不妨试试。
重命名readme文件
如果我们要将readme修改成markdown的格式,于是我们可以在git bash
中进行操作:
$ ls
images/ index.html js/ readme styles/
$ mv readme readme.md
$ 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: readme
Untracked files:
(use "git add <file>..." to include in what will be committed)
readme.md
no changes added to commit (use "git add" and/or "git commit -a")
这里我们先是重命名了文件,然后查看当前的状态。此时,Git提示了两个内容,一个是已经被Git跟踪但是还没有暂存的修改,也就是删除了readme
文件。一个是还没有被Git跟踪的新增的readme.md
文件。按照提示如果是删除就用git rm
,如果是新增就用git add
,于是我们接着操作:
$ git rm readme
rm 'readme'
$ git add readme.md
$ git status
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
renamed: readme -> readme.md
我们将修改添加到暂存区后,再查看状态,可以看到Git识别的修改是重命名readme
文件为readme.md
。可以看到Git还是很智能的。下面我们看下Git有没有提供直接操作的命令,在此之前我们先恢复工作区的状态。
$ git reset --hard
HEAD is now at 955e38a Add refering projects
$ git status
On branch master
nothing to commit, working tree clean
这个操作非常危险,它将会丢弃工作区和暂存区的所有修改,但并不会破坏以前的git的提交历史,不过一定要谨慎操作!
一条Git命令实现重命名
直接通过git mv
命令就可以实现上面三个命令一样的效果:
$ git mv readme readme.md
$ git status
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
renamed: readme -> readme.md
接着我们提交下本次修改:
$ git commit -m'Move readme to readme.md'
[master 4fec02f] Move readme to readme.md
1 file changed, 0 insertions(+), 0 deletions(-)
rename readme => readme.md (100%)
$ git log
commit 4fec02faed40feee8a7769167162c1500f96500e (HEAD -> master)
Author: hexon <hexon1958@gmail.com>
Date: Sat Jun 28 17:53:27 2025 +0800
Move readme to readme.md
# 其他日志.....
可以看到,git mv
直接就添加到暂存区了,我们直接提交就可以了。
总结
在Git的世界中,重命名文件可以通过git mv
命令轻松实现。