在Git / Github中删除分支时,旧代码是否仍在回购中?

时间:2020-03-03 19:11:24

标签: git github

我从安全角度想知道,是否在Git中有一个分支,以后将其删除。在该分支中,如果我的代码仅发生在该分支中,并且在该分支中,我有提交将其删除。然后,我在GitHub上删除该分支,该删除的代码是否仍以某种方式仍在GitHub Repo中?

在我看来,Git中没有历史记录,而且由于已删除该分支,因此无法返回该分支,但不确定它是否真的消失了。

2 个答案:

答案 0 :(得分:2)

分支只是指向存储库中提交的指针。删除分支时,它只会删除该指针。可以恢复分支并在以后提交,因此,如果您需要完全删除某些文件或数据,则需要修改提交历史记录。

有几种方法可以完全保留您的历史记录。

BFG清洁剂

https://rtyley.github.io/bfg-repo-cleaner/

“ BFG是git-filter-branch的一种更简单,更快的替代方法,用于从Git存储库历史记录中清除不良数据:

删除疯狂的大文件 删除密码,凭据和其他私人数据 git-filter-branch命令功能强大,可以执行BFG无法完成的任务-但是BFG在上述任务上要好得多,因为:

更快:快10-720倍 更简单:BFG并不是特别聪明,但专注于简化上述任务 漂亮:如果需要,您可以使用漂亮的Scala语言自定义BFG。至少在某些时候,它必须比Bash脚本更好。”-BFG文档

git-filter-branch

https://git-scm.com/docs/git-filter-branch

“通过重写中提到的分支,在每个修订版上应用自定义过滤器,可以重写Git修订历史记录。这些过滤器可以修改每棵树(例如,删除文件或对所有文件运行perl重写)或有关每次提交的信息。否则,将保留所有信息(包括原始提交时间或合并信息)。” -git文档

Github敏感数据删除政策

https://help.github.com/en/github/site-policy/github-sensitive-data-removal-policy

我认为这不是您真正想要的,但是确实为您提供了选择,以防万一。

“我们提供了敏感数据删除程序,以在某些不适用DMCA程序的特殊情况下删除此敏感数据,例如当您的安全受到公开密码的威胁而您不拥有该特定文件的版权时您需要删除的内容,或者该内容不受版权保护。” -GitHub文档

答案 1 :(得分:1)

据我所知,github不会从其存储库中删除内容...。但是,您可以通过一个过程来要求它们删除类似分支的内容,以便处理对象。

https://help.github.com/en/github/site-policy/github-sensitive-data-removal-policy