'Remove completely a local branch

I have a repo in a very small environment with a short amount of memory, so every byte counts. I just finished developing, so I want to remove the dev branch. Now, my repo is structured like this:

(master) A---------E
(dev)     \-B-C-D-/

I've already tried git branch -d dev, but it ends up deleting dev keeping all the commits, like this:

(master) A---------E
          \-B-C-D-/

Is there a way to keep only the master branch? Like

(master) A---------E

Thanks.



Solution 1:[1]

A "branch" is merely a label for a commit. So deleting a branch just frees up some bytes. The commit E still points to D so this commit will not be deleted by the git garbage collection. Same for C because it is pointed to by D and so on.

The suggested method of rebasing/squash merging will get rid of these commits. So you will loose B-C-D and E and they will all be replaced with a new commit F.

If you are really short on disk space and don't care about the history (maybe because you have a clone somewhere else), you could make your repo shallow This will get rid of all the commits except E. There a quite a few ways to achieve this, covered in this question: Converting git repository to shallow?

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 SebDieBln