In daily software development, regularly cleaning up branches that have been merged into the main branch is a good practice to maintain a clean repository. To delete all branches that have been merged into the main branch, follow these steps:
1. Determine the Name of the Main Branch
First, ensure you know the name of your main branch. In most cases, this branch is named master or main.
2. List All Merged Branches
You can use the git branch --merged command to list all branches that have been merged into the current branch. If your main branch is master, you may need to switch to the master branch first:
bashgit checkout master git branch --merged
This command will list all branches that have been merged into master.
3. Delete Merged Branches
Then, iterate through these branches and delete each one (except master itself). A common approach is to use the grep command to exclude the main branch, combined with xargs and git branch -d for deletion:
bashgit branch --merged | grep -v "\* master" | xargs -n 1 git branch -d
If your main branch is main, simply replace master with main in the above command.
4. Important Notes
- Safety Check: Before executing deletion operations, verify that the branches listed by
git branch --mergedare indeed no longer needed. - Remote Branches: The above commands handle local branches only. To delete remote merged branches, use a similar command:
bashgit branch -r --merged | grep -v "master" | sed 's/origin\\///' | xargs -I {} git push origin --delete {}
Here, git branch -r --merged identifies merged remote branches, and grep, sed, and xargs work together to perform the deletion.
5. Example
Suppose I have several feature and fix branches in my project that have been merged into master after completing the work. By following these steps, I can easily clean up these unnecessary branches and maintain a tidy Git repository.
After executing these commands, both my local and remote repositories contain only the necessary branches, simplifying project version history management.