--- title: Delete a Git Branch Both Locally and Remotely --- // locally ((if you know what you are doing!) git branch -d localBranchName // and then if you need to... // on remote git push origin :remoteBranchName ## When to Delete branches? Normally in a contribution flow `Branches` are a great way to work on different features, fixes, etc. while isolating them from the main codebase. So a repo may have a `master` branch, and separate branches to work on different features. Typically once the work is completed on a feature and it is recommended to delete the branch. ## The Delete workflow: Lets say you have a repo called as `AwesomeRepo`, and its hosted on Github, at a location such as `https://github.com/my_username/AwesomeRepo`. Also lets assume it has the branches like: `master` `feature/some-cool-new-stuff` `fix/authentication` `staging` For consistency we will assume branch names are same on `local` as well as on the `remote`. Now, lets say you are done with that fix for authentication and want to remove the branch `fix/authentication`. ## Deleting the branch REMOTELY: Simply do: `git push --delete `. For example: `git branch --delete origin fix/authentication` If you get the error 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' Perhaps someone else has already deleted the branch. Try to synchronize your branch list using git fetch -p The git manual says -p, --prune After fetching, remove any remote-tracking branches which no longer exist on the remote. ## Deleting the branch LOCALLY: First checkout to a branch other that the one you want to delete: `git checkout `. For example: `git checkout master` Git will not let you delete the branch you are currently on. Then proceed with deleting: `git branch -D `. For example: `git branch -D fix/authentication`