git - 当删除 Git/Github 中的分支时,旧代码仍在 Repo 中吗?

标签 git github

从安全角度来看,我想知道 Git 中是否有一个稍后删除的分支。在该分支中,如果我有只发生在该分支中的代码,并且在该分支中我有删除它的提交。然后,我在 GitHub 上删除该分支,删除的代码是否仍然在 GitHub 存储库中?

在我看来,Git 中没有历史记录,并且自从删除分支后就无法返回到该分支,但不确定它是否真的消失了。

最佳答案

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

有多种方法可以做到这一点,而不会完全丢失您的历史记录。

BFG 仓库清理器

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

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

删除疯狂的大文件 删除密码、凭据和其他私有(private)数据 git-filter-branch 命令非常强大,可以做 BFG 做不到的事情 - 但 BFG 更适合上述任务,因为:

更快:快 10 - 720 倍 更简单:BFG 并不是特别聪明,但专注于使上述任务变得简单 美观:如果需要,可以使用美观的Scala语言来定制BFG。至少在某些时候,这肯定比 Bash 脚本更好。” - BFG 文档

git-过滤器分支

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

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

Github 敏感数据删除政策

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

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

“我们提供敏感数据删除流程,以便在 DMCA 流程不适用的某些特殊情况下删除这些敏感数据,例如当您的安全因暴露密码而面临风险并且您不拥有特定数据的版权时您需要删除的内容,或者该内容不受版权保护。” - GitHub 文档

关于git - 当删除 Git/Github 中的分支时,旧代码仍在 Repo 中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60514055/

相关文章:

Git 预提交 Hook 在 GitHub for mac 中失败(在命令行上工作)

ruby-on-rails - 在 Heroku 上上传网站 : Host key verification failed

git - 我可以在接受 pull 请求之前实时预览 pull 请求的结果吗?

git - Windows 上的 Bitbucket 禁止使用 SSH git clone

git:我可以存储未跟踪的文件而不将其添加到索引吗?

git - 推送到 git-hub 存储库时自动忽略选定的代码更改

java - 如何在 Windows 10 中运行来自 GitHub 的 Java 代码?

git - 如何设置 Corkscrew 通过 Draconian 代理连接到 Github

renv 和 git : what to commit

git - 如何从 git 存储库中删除作者?