如果分支从未合并到master中,删除该分支还会从仓库中删除其提交吗?

时间:2019-09-02 17:09:58

标签: git github

我们正常的开发模式是将更改推送到分支,然后从该分支向主提交PR。我们发现了分支的一些问题(包含旧的提交包含我们在存储库中不需要的数据),并希望将其删除。可以删除分支-尚未合并。

问题是:删除此分支会删除包含数据的提交吗?

2 个答案:

答案 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一侧清除(或不清除),因为它们对它们方便。