mishmashru
mishmashru

Reputation: 459

How to delete branch with all commits pushed to wrong repository?

We have several git repositories working on Android projects. We have 'boot' repo which is small and 'android' which is huge. During development one of our guys pushed branch from 'android' to 'boot' and now boot repository size is 700 MB! Is there anyway to completely delete the wrong branch and all commits related to it from 'boot' now?

I tried filter-branch and other methods, but most of them change commit numbers made after that wrong push

In theory this shouldn't be a problem delete commits which are 'on the side'. This branch was never merged to 'master' and these commit are not parents to any useful commits

Upvotes: 7

Views: 7948

Answers (2)

Arrowmaster
Arrowmaster

Reputation: 9271

Deleting a branch from a remote server is done using git push

git push --delete boot branchname

After this each person can run the following command on their local repo to remove the deleted branch.

git remote prune boot

After the branch is removed though, the data will still linger in each repository for 2-4 weeks by default as a measure to prevent accidental data loss. If the disk space concern is really that important to you, then it can be removed sooner but take note that this will remove all unreachable objects that are being kept temporarily to prevent accidental data loss.

git gc --aggressive --prune=now

Upvotes: 15

eckes
eckes

Reputation: 67177

Deleting the branch is done by

git branch -D branch_name

Note the capital -D option: this tells git to delete the branch even if it's not fully merged into master.

After doing that, fire up the garbage collector with git gc. Then, you should be fine.

Upvotes: 5

Related Questions