git 的版本是从文件内容计算出的哈希值, 会重复么?git 是否通过比较已产生过的版本号列表来防止碰撞?

2025-01-07 06:54:24
推荐回答(3个)
回答1:

git的版本应该是你说的从文件的内容计算出的哈希值,但还有提交作者的信息,及该次提交的时间戳

重复的情况是存在的,从数学的角度考虑,可能性是2的63次方分之一。
使用的是 SHA-1 哈希算法,40位的长度

放置碰撞应该会考虑到,可以想象下比较简单,如果重复等1秒后提交,因为是有提交的时间戳的
当然还有其他情况

但一般项目可以不用担心,毕竟重复也只是理论层面的
可以想象下Linux也是通过git进行源代码管理的

回答2:

同一个库里的提交号是不会重复的。提交时,git首先会比较时间戳

回答3:

单纯依赖于文件的大小,早晚也会有重复的;
但是你确定这个是唯一的依赖么?

如果再加上依赖于文件的时间信息,那么冲突的可能性实在是基本没有