我已经开始将我的私有subversion项目转换为git(Github),并将代码发布给公众。因此,我是一个git新手。
不幸的是,有一个包含机密数据的项目版本。该版本没有标记,我只知道它的哈希值。
是否有一种方法可以从远程git存储库完全删除特定版本的内容? 这是一个独立项目,因此没有人会受到影响。
我已经开始将我的私有subversion项目转换为git(Github),并将代码发布给公众。因此,我是一个git新手。
不幸的是,有一个包含机密数据的项目版本。该版本没有标记,我只知道它的哈希值。
是否有一种方法可以从远程git存储库完全删除特定版本的内容? 这是一个独立项目,因此没有人会受到影响。
我在这里找到了解决我的问题的帖子。
如果您需要修复的提交不是最近的一个:
git rebase --interactive $parent_of_flawed_commit
如果您想要修复多个有问题的提交,请传递其中最老的那个提交的父提交。
编辑器将弹出,显示自您提供以来的所有提交列表。
- 在您想要修复的任何提交前面将
pick
更改为edit
。- 保存后,git 将重演列出的提交。
Git 将为您说过您想要编辑的每个提交回到 shell:
- 按任意方式更改提交。
git commit --amend
git rebase --continue
大部分操作将通过各种命令的输出向您解释。这很容易,您不需要记住它 - 只需记住
git rebase --interactive
可让您纠正提交,而无论它们距今多久。