我有一个私有存储库,其中包含一堆敏感数据。但是,我最近清理了所有敏感数据,以便可以将其公开。如果我将GitHub上的私有存储库更改为公开,那么所有过去的提交都可见(即有人可以看到过去的敏感数据)吗?
如果是这样,如何在不公开过去提交历史的情况下公开回购协议?
我建议将当前存储库克隆(或仅复制所有非 .git 文件)到新存储库,然后将新存储库公开推出。
转到所需的提交:
git checkout <your_commit_hash>
Run Code Online (Sandbox Code Playgroud)
转到初始提交,保留所有当前更改:
git reset <intial_commit_hash_here> --soft
Run Code Online (Sandbox Code Playgroud)
然后使用修改选项提交
git commit --amend -m"My new initial commit"
Run Code Online (Sandbox Code Playgroud)
然后您就可以准备进行公开回购了
git push <your_remote> master
Run Code Online (Sandbox Code Playgroud)
PS更改历史记录将仍然可用,git reflog但不会推送到远程仓库
UPD。要获取第一次提交的ID,请使用以下答案中的命令:
git rev-list --max-parents=0 HEAD
Run Code Online (Sandbox Code Playgroud)