Open In App

How Delete a Git Branch Locally and Remotely

Last Updated : 03 May, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

Git is a very powerful tool in the process of application development and is used widely in the software industry by developers to maintain the codebase. Using this developers are able to organize their codebase and manage the version history of their project. And, to do this developers create multiple branches so that team collaboration would become easier, and with time, it is important to delete those Git Branches, both Locally and remotely.

Now, as a developer, it is important for you to know how to delete a Git Branch Locally and Remotely as well because it will lead to a better productivity approach, and for that, we have discussed both ways to delete Git Branch. These are very simple git commands, which you can apply and get the desired result. But before that yous should know Why and when to Delete a Git Branches?

When to Delete a Git Branch

It is common for a git repo to have different branches. They are a good way to work on different features and fixes while isolating the new code from the main codebase. Repos often have a master branch or a main branch for the main codebase and developers create other branches with names of their choice (or as required by the organization) to work on different features or fixes.  Most of the time you might have to delete a git branch, because of some irreversible changes, security issues, or when a particular feature of the related project has been built.

In most cases, it is simple to delete a git branch. In this article, I’ll guide you through the entire process of how to delete a git branch securely.

To get started we have already created a new branch in my repo using the below command:

Syntax

git checkout -b <branch-name> 

Here <branch-name> is the test. To check which is the current working branch you can use the git branch command.

Create New Branch

and the following is a snapshot of my GitHub repository with the test branch in the remote.

GitHub Repository

Delete a Git Branch Locally 

Git won’t allow you to delete a Git branch you are currently working on. So you must make sure to checkout to a branch that you are NOT deleting. For this use the command:

Syntax

git checkout <branch-name>

Here we will check out our main branch from my test branch.

Checkout

Now in order to delete the test branch locally, we use the command :

Syntax

git branch -d <branch-name>

We will delete my test branch as an example.

Delete Branch Locally

Note: The -d option will delete the branch only if it has already been pushed and merged with the remote branch. If you want to forcefully delete a branch you will have to use the -D option instead. The -D flag is synonymous with –delete –force. This will forcefully delete the branch even if it hasn’t been pushed or merged with the remote. the full command is:

Syntax

git branch -D <branch-name>

With this, we can successfully delete a local branch.

Delete a Git Branch Remotely

You can’t use the git branch command to delete a remote branch. Instead, you have to use the git push command with the –delete flag, followed by the name of the branch that you want to delete. You also need to specify the remote name (origin in this case) after “git push”. The command is as follows:

Syntax

git push <remote-name> --delete <branch-name>

Here I will delete my test branch in my remote repository as shown below.

Delete Branch Remotely

This command will delete the branch remotely. You can also use the shorthand:

Syntax

git push <remote-name> :<branch-name>

As you can see my remote branch is no more in my GitHub repo:

Deleted From GitHub

With this, we have successfully deleted our remote branch. A common error faced by many in this step is:

error: unable to push to unqualified destination: remoteBranchName The destination refspec neither matches an existing ref on the remote nor begins with refs/, and we are unable to guess a prefix based on the source ref. error: failed to push some refs to ‘git@repository_name’

This means that someone has already deleted the branch that you want to delete. If this happens you can use the following command to synchronize your branch list in the local environment:

Syntax

git fetch -p

The -p flag here means “prune”. After fetching the branches which no longer exist remotely will be deleted in your local working environment. 

Conclusion

Removing the branches which are not important keeps the repository organized, improves collaboration, and makes sure a better development workflow. However, it’s important to exercise caution when deleting branches, especially remote branches, as it may impact ongoing work by other team members. Therefore, always communicate with your team and verify that the branch is no longer required before proceeding with deletion.

FAQs on Delete a Git Branch Locally and Remotely

Q1. How do I delete a Git branch locally?

Answer:

To delete a Git branch locally, you can use the following command:

git branch -d <branch_name>

Replace ‘<branch_name>’ with the name of the branch you want to delete. This command will remove the branch from your local repository.

Q2. How do I delete a remote Git branch?

Answer:

To delete a remote Git branch, use the following command:

git push <remote_name> –delete <branch_name>

Replace ‘<remote_name >’ with the name of the remote repository, and ‘<branch_name>’ with the name of the branch you want to delete.

Q3. Can I recover a deleted branch?

Answer:

Yes, if you accidentally delete a branch, you can recover it if you act quickly. Locally deleted branches may still be recoverable using git reflog or git fsck, but it depends on how long ago they were deleted. For remotely deleted branches, you may be able to restore them using version control hosting platforms (GitHub).



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads