我有一个提交了大量敏感数据的私人仓库。但是,我最近清理了所有敏感数据,以便公开。如果我将GitHub上的私人仓库更改为公开,那么所有过去的提交都是可见的(即有人可以看到过去的敏感数据)吗?
如果是这样,如何在不将过去的提交历史公开的情况下公开回购公告?
答案 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文件)转换为新的仓库,然后将新仓库推出为公共仓库。