这个问题在SO和其他地方以各种形式被问到,但没有一个我能够找到的答案让我满意,因为没有一个列出了有问题/没有问题的操作/命令,也没有一个对速度命中的技术原因给出了透彻的解释。
例如:
所以,我不得不再问一遍:
基本git操作(提交、推送、拉入、添加、获取、分支、合并、签出)的
和,
我现在不关心如何修复那个。我只关心哪些动作的性能会受到影响,以及根据当前git架构的推理。
编辑以澄清:
很明显,例如,git clone
将是回购的大小的o(n)。
然而,我不清楚git pull
是否相同,因为从理论上讲,只看差异是可能的。
Git在幕后做了一些不平凡的事情,我不确定是什么时候做的。
Edit2:
我在this上找到一篇文章,说
如果您的存储库中有大的、不可区分的文件,如二进制文件,则每次提交对该文件的更改时,您都会在存储库中保留该文件的完整副本。如果您的存储库中存在这些文件的许多版本,它们将极大地增加签出、分支、 fetch和您的代码的时间。
我不明白为什么分支需要比O(1)更多的时间,我也不确定列表是否已经满了。(例如,拉动怎么办?)
https://stackoverflow.com/questions/57134772
复制相似问题