Alex Beals
Alex Beals

Reputation: 2135

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?

Upvotes: 26

Views: 15359

Answers (2)

Teivaz
Teivaz

Reputation: 5665

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 --amend -m"My new initial commit"

And then you are ready to push to your public repo

git push <your_remote> master

P.S. The original change history will still be available with git reflog but will not be pushed to remote repo


UPD. To get the id of the first commit use the command from this answer:

git rev-list --max-parents=0 HEAD

Upvotes: 15

winhowes
winhowes

Reputation: 8065

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.

Upvotes: 6

Related Questions