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?

  • Best approach for handling cloned applications?
  • Shall I clean up the commits on my feature branch which partially undo one another?
  • Can I remove individual files from a git branch without deleting them when merging into another branch?
  • How to handle Git continuous integration merge conflicts
  • How to do an automatic commit after sucessfull merge?
  • How To Stop Git-Bash command on windows
  • git clone without project folder
  • How do I get IntelliJ to see my remote git branches
  • Contributing using git
  • Heroku automatic push to github with submodules
  • Preventing gradle-wrapper.properties from changing all the time
  • Why does git think each line of an untouched file has changed
  • 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
    

    P.S.
    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.

    Git Baby is a git and github fan, let's start git clone.