How to Rename Files So That Git Can Detect It
Back to Blog

How to Rename Files So That Git Can Detect It

4 min read
Git

Renaming files on git can be really painful to deal with. Git is case insensitive, so we can't rename the file and hope for them to be updated in the remote repository. It can also create all sorts of problems for yourself and your team.

Today, I will point down a step by step process to solve this particular problem.

Problem

Let's discuss what happens when you manually try to rename Containers to container. Also, keep a close eye on the git lens change in sidebar.

When we manually change the files name from uppercase to lowercase, git wasn't able to detect it. Let's see if our remote repository also has the same naming conversion problem after we push the code.

It seems the git wasn't able to detect the case-sensitive changes.

Let's see how we can solve the problem and make git detect our file changes.

Solution

There could be multiple ways we could solve case-sensitive problems and we would use two different ways to solve the problem. Let's move on to our first solution.

Method 1: Using git-mv command

text
git mv <your_file_name> <temporary_file_name>
git mv <temporary_file_name> <new_file_name>

Let's make sure we have navigated to file location before using the above command.

The above command will delete the file or folder and add a new one with the same content. You can achieve the same facility by deleting the file and adding a new one with the same content. Git facilitates the process as you don't need to manually delete a file.

It will work on both folder and files cases.

Let's use the same command on other remaining files as well.

Example: Logo.svg to logo.svg

Example: App.js to app.js

After renaming the above files, we should commit and push the changes to the remote repository.

Result:

We finally made the changes on the remote repository as well. And it worked!

Method 2: Manual Renaming with Extra Step

This method will be a little different than the previous one. We are going to manually change the name but we have to add an extra symbol or letter to it. Don't worry, I will explain it more so that you can understand how it works.

Let's break down the process into two different steps:

Step A: In the first step, we are going to rename Containers to containers-1. I have renamed it containers-1, so that I will have zero confusion in the next step. Although you can rename with whatever you want, I will suggest a name with more readability.

As we could see above, git will detect the changes as a given folder Containers was deleted and another new folder containers-1 is added but reality is we only changed the name of the folder.

Let's make the changes to other files as well: App.js to app-1.js and Logo.svg to logo-1.svg

Before moving to the next step, we should commit our changes so that our changes are saved in our local device.

text
git add .
git commit -m "temporary name change"

Step B: In this step, we will follow the same exact process but this time we rename the file to the exact name which we want. In our case, it will be containers-1 to containers. Let's make the changes with other files as well: app-1.js to app.js, logo-1.svg to logo.svg.

After you change the name, we have to commit the changes and push it to remote repository.

text
git add .
git commit -m "Manually changing name"
git push origin master

Result:

We successfully changed our files and folder names in our local system as well as remotely. It worked!

  • Containers to containers
  • App.js to app.js
  • Logo.svg to logo.svg

To Summarize

Both methods are effective and work with all scenarios. You can use any method as you prefer. And if you have a different approach which can solve this problem much easier, please do feel free to share it.

Read the full article with images on dev.to

Originally published on dev.to

Enjoyed this article? Share it with others!