hexon
发布于 2025-06-28 / 12 阅读
0

三、给文件重新命名的简便方法

本文将介绍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命令轻松实现。