Sometimes when using Git you may get the errors “please move or remove them before you switch branches”. So why does this error occur? and How to fix it? Let’s find it in this article.
How does the error “please move or remove them before you switch branches” happen?
“Please move or remove them before you switch branches” is a common error related to the branch names in Git. The below explanations can help you know more about the causes of error and solutions.
This error happens due to the following reason:
First, the error happens when files are not tracked, and are undefined. This could be due to the removal of the caches. When staging a file for removal, the file remains in the working directory instead of indexing it. This makes the file appear untracked, despite being removed from the working directory.
git switch -f LearnShareIT
git add LearnShareIT.txt
git commit -m 'Trash
git rm --cached LearnShareIT.txt
git status
Output:
rm LearnShareIT.txt
On branch LearnShareIT
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
deleted: LearnShareIT.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
LearnShareIT.txt
After untracking the file, you start to switch to another branch by using this command, and the error happens:
git checkout master
Output:
Please move or remove them before you can switch branches.
Aborting
Now that you know what is causing the error warning, it is time to look for a quick solution. The message error is the main reason of the error “please move or remove them before you switch branches”.
How to solve this error?
Solution 1: Using git reset
If the error occurs because of the Git untracked files, to solve it you will have to use the following command to unstage the files:
git reset <file>
Example:
git reset LearnShareIT.txt
git status
Output:
On branch master
nothing to commit, working directory clean
After that, you can do switching branch or whatever you want.
git checkout master
You can quickly fix this issue using the file manager or rm to remove the file. Note that git status is used to indicate the checkout process is completed. You should also heed that the process is indicated as a Git file. This is because git status indicates the checkout process was completed in the correct way. The returned message displays your files’ current status, such as tracked, changed or unmodified. Using the git status command, you can quickly identify which files are ignored. You can use this information to resolve any issues with your code. However, if this approach cannot solve the error, please read the solution below.
Solution 2: Using different ways to switch branch
Sometimes if the first solution doesn’t work, maybe you should try forcing checkout of a branch. To do this you can use:
git checkout -f master
Another command that may also works:
git switch -f master
The -f flag here implies that we want to force it to checkout or switch the branch.
Discuss removing local changes when switching branches even if the index or tree reflected in HEAD differ. This is to throw away changes made on a different branch.
Unfinished entries in the index don’t need to be checked out. Ignore unmerged entries and check out paths without any failed entries.
Summary
We have learned how to deal with the error “please move or remove them before you switch branches” in Git. By removing files and checking out a branch correctly, as long as finding out the reasons causing this problem in this tutorial, you can quickly solve it.
Maybe you are interested:
- Git fatal: Could not read from remote repository
- Git cannot be resolved to branch
- Git commit your changes or stash them before you can merge

I’m Edward Anderson. My current job is as a programmer. I’m majoring in information technology and 5 years of programming expertise. Python, C, C++, Javascript, Java, HTML, CSS, and R are my strong suits. Let me know if you have any questions about these programming languages.
Name of the university: HCMUT
Major: CS
Programming Languages: Python, C, C++, Javascript, Java, HTML, CSS, R