我想将git用作电子实验室笔记本(例如,请参阅https://github.com/cboettig/labnotebook)。但是,我担心,由于可以改变,我的研究数据的完整性可能会受到质疑。有没有办法验证git存储库没有被重新定位?我知道rebase存储在reflog中,但30天后会被删除。
或者,我知道我可以使用mercurial,这不会是一个问题。
答案 0 :(得分:1)
确保历史记录完整性的方法是在将新的提交推送到您的仓库时,将当前HEAD的SHA1存储在别处。
如果SHA1以后不再是历史记录的一部分,那就意味着某种“历史重写”(rebase,push --force
,...)已经发生。
但是除了reflog之外,repo本身并没有对其中发生的操作进行审计跟踪。为此,您必须添加authorization layer之类的gitolite,其中包含上述审核跟踪。