我想将 git 用作电子实验室笔记本(有关示例,请参见https://github.com/cboettig/labnotebook )。但是,我担心,由于可以重新设置基准,我的研究数据的完整性可能会受到质疑。有没有办法验证 git 存储库没有被重新定位?我知道 rebase 存储在 reflog 中,但这些在 30 天后被删除。
或者,我知道我可以使用 mercurial,这不是问题。
我想将 git 用作电子实验室笔记本(有关示例,请参见https://github.com/cboettig/labnotebook )。但是,我担心,由于可以重新设置基准,我的研究数据的完整性可能会受到质疑。有没有办法验证 git 存储库没有被重新定位?我知道 rebase 存储在 reflog 中,但这些在 30 天后被删除。
或者,我知道我可以使用 mercurial,这不是问题。
确保历史完整性的方法是在将新提交推送到存储库时将当前 HEAD 的 SHA1 存储在其他位置。
如果以后该 SHA1 不再是历史的一部分,则意味着某种“历史重写”(rebase, push --force
, ...)已经发生。
但是,除了 reflog 之外,repo 本身并没有对其中发生的操作进行审计跟踪。为此,您必须添加一个像gitolite这样的授权层,它带有所说的审计跟踪。