如何在 Git 中重命名文件?
可以通过以下两种方式重命名文件:
使用 **mv** Linux 命令
使用 git **mv** 命令
场景 1 - 使用 Linux mv 命令
以下示例假设存储库中存在一个名为“file1.txt”的文件。使用 Linux **mv** 命令的语法为:
$ mv <old_filename> <new_filename>
使用 Linux 命令 **mv** 将文件重命名为“file1.java”。
$ mv file1.txt file1.java
执行 **git status** 命令以验证文件在 Git 中的状态。
$ git status
屏幕截图中的输出表明文件已分两步重命名:
“file1.txt”已从工作区删除
添加了一个新文件“file1.java”。请注意,“file1.java”的状态为“未跟踪”,这意味着更改仅在工作区中进行,尚未暂存。
On branch master Changes not staged for commit: (use “git add/rm <file>...” to update what will bw committed) (use “git restore <file>...” to discard changes in working directory) Deleted: file1.txt Untracked files: (use “git add <file>...” to include what will be committed) file1.java no changes added to commit (use “git add” and/or “git commit -a”)
Git不会自动跟踪项目中的这些更改。这意味着应该暂存重命名操作。执行以下步骤以将重命名操作记录到暂存区。
暂存已删除的文件 - “file1.txt” 和
暂存未跟踪的文件 - “file1.java”
使用 **git add** 命令实现此目的。
$ git add file1.txt $ git add file1.java
使用 **git status** 命令验证状态。
$ git status
命令的输出表明已记录重命名操作。
On branch master Changes to be committed: (use “git restore −−staged <file>...” to unstage) Renamed: file1.txt −>file1.java
场景 2 - 使用 *git mv* 命令
Git 提供了 **git mv** 命令,可用于重命名文件。与 Linux mv 命令不同,此命令通过一次性更改工作区和记录暂存区的更改来简化此过程。这意味着如果使用此命令重命名文件,则无需手动将重命名操作记录到暂存区。
使用 **git mv** 命令的语法为:
$ git mv <old_filename> <new_filename>
以下示例将文件“file1.txt”重命名为“file1.python”。此示例假设“file1.txt”已存在。
$ git mv file1.txt file1.python
验证操作状态:
$ git status
从输出中可以清楚地看出,重命名操作已暂存。
On branch master Changes to be committed: (use “git restore −−staged <file>...” to unstage) Renamed: file1.java −>file1.python
最后,让我们提交更改以使其永久生效。
$ git commit −m ‘rename file java to python’
命令的输出表明更改了 1 个文件,并且有 0 个插入和 0 个删除。这只是一个重命名操作。
[master d8f9920] rename file java to python 1 file changed , 0 insertions(+), 0 deletions(-) rename file1.java=>file1.python (100%)