Make Git repo public without revealing past commits
I have a private repo that had a bunch of sensitive data committed. However, I recently cleaned up all of the sensitive data so that it can be public. If I change a private repo on GitHub to become public, are all past commits visible (i.e. could someone see that sensitive data from the past)?
If so, how do I make the repo public without making the past commit history public?
- git push new file to a bare repo failed: “error: src refspec master does not match any.” Why?
- How to Get Git History After forced update on both master and branch
- How to run repo android on CentOS?
- Do I need to do a Git Clone?
- Jenkins and Gerrit integration with google repo scm
- Using bower inside a docker container with a private repo dependency
2 Solutions collect form web for “Make Git repo public without revealing past commits”
Go to desired commit:
git checkout <your_commit_hash>
Go down to the initial commit leaving all current changes:
git reset <intial_commit_hash_here> --soft
Then commit with amend option
git commit --ammend -m'My new initial commit'
And then you are ready to push to your public repo
git push <your_remote> master
change history will still be available with
git reflog but will not be pushed to remote repo
I’d recommend cloning (or just copying all the non .git files) from the current repo into a new repo and then pushing the new repo out as public.