如何保护大量孤立的Git提交?

如何保护大量孤立的Git提交?,git,Git,我使用Git跟踪机器学习实验。我的工作流程是将Git散列与实验结果一起保存,因此我有一个指向生成这些结果的确切代码的指针。问题是,几乎所有与实验相关的提交都不会在一个真正的分支中结束,因为大多数想法最终都不起作用。根据Git,这些提交最终成为孤立的,但我想确保我仍然可以通过Git哈希检查每个历史实验的代码。这些孤立的提交容易受到通过git prune和其他机制进行垃圾收集的攻击 我的问题是:如何确保孤立提交不会被无意中删除?如果不可能,是否还有其他危险的Git命令?我知道我可以为每个孤立的提交创

我使用Git跟踪机器学习实验。我的工作流程是将Git散列与实验结果一起保存,因此我有一个指向生成这些结果的确切代码的指针。问题是,几乎所有与实验相关的提交都不会在一个真正的分支中结束,因为大多数想法最终都不起作用。根据Git,这些提交最终成为孤立的,但我想确保我仍然可以通过Git哈希检查每个历史实验的代码。这些孤立的提交容易受到通过git prune和其他机制进行垃圾收集的攻击


我的问题是:如何确保孤立提交不会被无意中删除?如果不可能,是否还有其他危险的Git命令?我知道我可以为每个孤立的提交创建一个分支或标记,但是现在手动创建的分支或标记太多了,而且在任何情况下,我都不想把我的实际分支/标记弄得乱七八糟。

您可以将
gc.prueexpire
设置为
从不
。这是不分青红皂白的,会导致存储库大小膨胀

不要这样做。使用。我知道你不想,但依赖孤儿的承诺是非常脆弱的。标记更简单、更安全,并且不会使存储库膨胀。标记可以推送到远程存储库,这样您就有了备份


为了减少混乱,给它们加上前缀,比如
experience/1
experience/2
,您可以将
gc.prueexpire
设置为
从不
。这是不分青红皂白的,会导致存储库大小膨胀

不要这样做。使用。我知道你不想,但依赖孤儿的承诺是非常脆弱的。标记更简单、更安全,并且不会使存储库膨胀。标记可以推送到远程存储库,这样您就有了备份


为了减少混乱,给它们加上前缀,比如
experience/1
experience/2

,你可以标记它们,或者分支它们,或者保留引用。不这样做只是要求它们最终被删减。你可以标记它们,或者分支它们,或者做一些保留引用的事情。不这样做只是要求他们最终被修剪掉。