Git FAQ

Frequently asked questions around Git and Version Control.

How do I delete a local branch in Git?

Git makes managing branches really easy - and deleting local branches is no exception:

$ git branch -d <local-branch>

In some cases, Git might refuse to delete your local branch: when it contains commits that haven't been merged into any other local branches or pushed to a remote repository. This is a very sensible rule that protects you from inadvertently losing commit data.

If you want to delete such a branch nonetheless (e.g. because you've programmed yourself into a dead end and produced commits that aren't worth keeping) you can do so with the "-D" flag:

$ git branch -D <local-branch>

This will force deletion of the branch, even if it contains unmerged / unpushed commits. It goes without saying: please be careful with this command!

Can I undo deleting a branch?

In most cases, if you don't let too much time pass, you can restore a deleted branch.

If you're working with Git on the Command Line, you should take a look at a Git tool called "Reflog". Learn more about this in our free First Aid Kit for Git video series.

If you're using the Tower Git client, you can simply press CMD + Z - like you would to undo changes in a text editor - to undo the deletion and restore the branch:

How do I delete a remote branch in Git?

To delete a remote branch, you need to use the "git push" command:

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

Learn More

About Us

As the makers of Tower, the best Git client for Mac and Windows, we help over 100,000 users in companies like Apple, Google, Amazon, Twitter, and Ebay get the most out of Git.

Just like with Tower, our mission with this platform is to help people become better professionals.

That's why we provide our guides, videos, and cheat sheets (about version control with Git and lots of other topics) for free.