Merge and delete branch in one step/command
This is an old question, but for those who stumble upon it looking for this functionality, you can now add a Git alias to accomplish this. For example, in
# ... [alias] mgd = "!git merge $1 && git branch -d $1; #"
Then, you could run
git mgd branch-name to merge and delete a branch in one go. Note that the lowercase
-d flag ensures that the branch will only be deleted if it has already been fully merged; thus, you don't have to worry about the first command not working correctly and then losing the branch.
The exclamation point at the beginning of the alias signifies that this is a bash command, and
$1 stores the argument that the user passed in (i.e. the name of the branch to merge/delete).
NOTE: Do not leave out the comment character (
#) at the end of the alias! It will not work without it. (Why?)
No, git doesn't support this at the same time.
However, you can run the commands in a shell conditionally:
git merge source-branch && git branch -d source-branch
-d will only remove merged branches while
-D will also remove unmerged branches, so
-d will ensure that the branch is merged and you don't delete a branch by accident.
I will write a script.
git branch | grep -v master | xargs git merge && git branch | grep -v master | xargs git branch -d
Here the branch name
master can be replaced by your current branch name.
Don't forget the
&&. If the first line fails then the second is not executed.