git的版本应该是你说的从文件的内容计算出的哈希值,但还有提交作者的信息,及该次提交的时间戳
重复的情况是存在的,从数学的角度考虑,可能性是2的63次方分之一。
使用的是 SHA-1 哈希算法,40位的长度
放置碰撞应该会考虑到,可以想象下比较简单,如果重复等1秒后提交,因为是有提交的时间戳的
当然还有其他情况
但一般项目可以不用担心,毕竟重复也只是理论层面的
可以想象下Linux也是通过git进行源代码管理的
同一个库里的提交号是不会重复的。提交时,git首先会比较时间戳
单纯依赖于文件的大小,早晚也会有重复的;
但是你确定这个是唯一的依赖么?
如果再加上依赖于文件的时间信息,那么冲突的可能性实在是基本没有