What are the steps to rename a file in Git?


A file can be renamed in the following two ways −

  • Use the mv Linux command

  • Use the git mv command

Scenario 1 − Use the Linux mv command

The following example assumes that a file “file1.txt” exists in the repository. The syntax for using the Linux mv command is −

$ mv <old_filename> <new_filename>

Use the Linux command mv to rename the file to “file1.java”.

$ mv file1.txt file1.java

Execute the git status command to verify the file’s status in Git.

$ git status

The output in the screenshot suggests that the file has been renamed in two steps −

  • “file1.txt” has been deleted from the working area

  • A new file “file1.java” has been added. Note that the status of the “file1.java” is “Untracked” which means that the changes have been made only in the working area and have not been staged.

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 does not automatically track these changes in the project. This means that the rename operation should be staged. Perform the following to record the rename operation in the staging area.

  • Stage the deleted file− “file1.txt” and

  • Stage the untracked file− “file1.java”

Use the git add command to achieve this.

$ git add file1.txt
$ git add file1.java

Use the git status command to verify the status.

$ git status

The output of the command suggests that the rename operation has been recorded.

On branch master
Changes to be committed:
(use “git restore −−staged <file>...” to unstage)
   Renamed: file1.txt −>file1.java

Scenario 2 − Use the git mv command

Git provides the git mv command that can be used to rename a file. Unlike the Linux mv command, this command simplifies the process by making changes in the working area and recording the change in the staging area at once. This means that we need not manually record the rename operation in the staging area if this command is used to rename a file.

The syntax to use the git mv command is −

$ git mv <old_filename> <new_filename>

The following example renames a file “file1.txt” to “file1.python”. This example assumes that “file1.txt” already exists.

$ git mv file1.txt file1.python

Verify the operation’s status −

$ git status

It is clear from the output that the rename operation has been staged.

On branch master
Changes to be committed:
(use “git restore −−staged <file>...” to unstage)
   Renamed: file1.java −>file1.python

Finally let’s commit the changes to make it permanent.

$ git commit −m ‘rename file java to python’

The output of the command suggests that 1 file changed and it has 0 insertions and 0 deletions. It was just a rename operation.

[master d8f9920] rename file java to python
1 file changed , 0 insertions(+), 0 deletions(-)
rename file1.java=>file1.python (100%)

Updated on: 20-Feb-2021

3K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements