git checkout --orphan future-master
git add -A # Add all files and commit them
git commit
git branch -D master # Deletes the master branch
git branch -m master # Rename the current branch to master
git push -f origin master # Force push master branch to github
git gc --aggressive --prune=all # remove the old files
Works well with git submodules too. From: https://stackoverflow.com/a/13102849/1253966
How do you delete a git tag that has already been pushed? https://stackoverflow.com/questions/5480258/how-to-delete-a-git-remote-tag
git push --delete origin YOUR_TAG_NAME
Delete all local tags and get the list of remote tags:
Remove all remote tags
git tag -l | xargs -n 1 git push --delete origin
Clean up local tags
git tag -l | xargs git tag -d