Created
April 26, 2013 22:14
-
-
Save stephenhardy/5470814 to your computer and use it in GitHub Desktop.
Steps to clear out the history of a git/github repository
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- Remove the history from | |
rm -rf .git | |
-- recreate the repos from the current content only | |
git init | |
git add . | |
git commit -m "Initial commit" | |
-- push to the github remote repos ensuring you overwrite history | |
git remote add origin [email protected]:<YOUR ACCOUNT>/<YOUR REPOS>.git | |
git push -u --force origin master |
thanks you so much
Works fine for me. I had a customer who never finished paying me for work, so nuked the code in the remote repo and added my ransom to the README.
... git push --mirror --force
Thank you, @heshanlk.
Adding a variable to capture the default branch name (it might be master or main):
#!/bin/bash
default_branch=`basename $(git symbolic-ref --short refs/remotes/origin/HEAD)`
git checkout --orphan tmp
git add -A # Add all files and commit them
git commit
git branch -D $default_branch # Deletes the default branch
git branch -m $default_branch # Rename the current branch to default
git push -f origin $default_branch # Force push default branch to github
git gc --aggressive --prune=all # remove the old files
Thanks.
❤️
Save yourself a world of pain and use main as default branch... blame Github monopoly for causing this chaos.
In git 2.23 / replit's default / NixOS 22_05 default, use the following, as it has no concept of default branch:
git branch main
git checkout main
git branch -d master
Using just a branch isnt a good concept for branching.
Its always depends about how your workflow looks like and then learn how to branch.
Best regards
worked like charm
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Will probably need to do
git commit -m "some message"
instead, to avoid an error.