如何在 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%)