公开Git回购,但不透露过去的提交

Ale*_*als 6 git github

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

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

win*_*wes 6

我建议将当前存储库克隆(或仅复制所有非 .git 文件)到新存储库,然后将新存储库公开推出。

  • 不,事实并非如此。 (2认同)
  • @Alex Beals,提交历史记录存储在 .git 文件夹中。由于您不复制该文件夹,因此您可以安全地遵循答案。 (2认同)

tei*_*vaz 6

转到所需的提交:

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)