让Git回复公开而不泄露过去的提交

时间:2016-09-05 19:48:37

标签: git github

我有一个提交了大量敏感数据的私人仓库。但是,我最近清理了所有敏感数据,以便公开。如果我将GitHub上的私人仓库更改为公开,那么所有过去的提交都是可见的(即有人可以看到过去的敏感数据)吗?

如果是这样,如何在不将过去的提交历史公开的情况下公开回购公告?

2 个答案:

答案 0 :(得分:5)

转到所需的提交:

git checkout <your_commit_hash>

转到初始提交,留下所有当前更改:

git reset <intial_commit_hash_here> --soft

然后提交修改选项

git commit --amend -m"My new initial commit"

然后你准备推送你的公共回购

git push <your_remote> master

P.S。 git reflog仍然可以使用更改历史记录,但不会将其推送到远程仓库

UPD。 要获取第一次提交的ID,请使用this answer中的命令:

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

答案 1 :(得分:1)

我建议将当前仓库中的克隆(或只是复制所有非.git文件)转换为新的仓库,然后将新仓库推出为公共仓库。