Prune Remote Branches in Git
This article will show how to prune (clean up) remote-tracking branches deleted in remote repositories.
For example, Alice and Bob are working on a branch feature/shared-branch. Bob creates a pull request, merges feature/shared-branch, and deletes it.
She executes git pull origin feature/shared-branch on Alice’s side.
$ git branch -a
* feature/shared-branch
main
remotes/origin/feature/shared-branch
remotes/origin/main
$ git pull origin feature/shared-branch
fatal: couldn't find remote ref feature/shared-branch
Although remotes/origin/feature/shared-branch appears under git branch -a, performing git pull origin feature/shared-branch will still trigger an error as feature/shared-branch has already been deleted in the remote repository.
To overcome the issue, Alice should clean up the reference of feature/shared-branch, it is remotes/origin/feature/shared-branch. She might run git remote prune origin.
$ git remote prune origin
Pruning origin
URL: git@github.com:stwarts/git-demo.git
* [pruned] origin/feature/shared-branch
git remote prune origin performs a checkup. Remote-tracking branches that don’t exist in the remote repository will be removed.
feature/shared-branch was deleted by Bob. Its remote-tracking branches remotes/origin/feature/shared-branch will be removed in Alice machine after she executes git remote prune origin.