我们正常的开发模式是将更改推送到分支,然后从该分支向主提交PR。我们发现了分支的一些问题(包含旧的提交包含我们在存储库中不需要的数据),并希望将其删除。可以删除分支-尚未合并。
问题是:删除此分支会删除包含数据的提交吗?
答案 0 :(得分:1)
以下帮助文章显示了如何执行清理。建议在清除GitHub数据的过程中与支持人员联系。
https://help.github.com/en/articles/removing-sensitive-data-from-a-repository
其他git托管平台可能不会删除所有未引用的数据。例如,Azure Devops不会执行服务器端垃圾回收。
还要确保所有开发人员都从其本地存储库中清除提交。
如果数据包含凭据,证书或加密密钥,请认为它们已损坏并撤消/回收它们!
答案 1 :(得分:1)
如果您删除分支,并且没有其他分支或标记引用这些提交,那么它们最终将被删除,是的。
大多数Git存储库都启用了reflog,这意味着任何分支的历史记录都将保留一段定义的时间。 reflog引用的对象不会被删除,因此如果您犯了错误,则可以进行恢复。即使在reflog过期之后,这些对象仍可能存在于存储库中,直到将来的git prune
(通常由git gc
调用)将它们清除为止。
如果提交中包含您非常希望删除的内容(例如,机密或个人信息),则可以删除它们,然后与GitHub(as documented)联系以清除这些对象。如果它们是秘密,则应在信息被泄露的前提下旋转它们。
如果数据只是您不太在意但又不想检入的未使用内容(例如,无用的临时文件),则您无需联系GitHub支持;数据将在GitHub一侧清除(或不清除),因为它们对它们方便。