bab*_*irl 4 git big-o space-complexity
我试图了解Git的工作原理。
如果要更改(添加或删除)字符,请保存并提交更改,直到编写代码为止。随着文件变大,大小将如何增加?例如,即使提交1到10、1到100、1到1百万之间的大小增加差异是多少?
而且,随着时间的推移提交更改会变慢吗?在第n次提交时不可行?
您可以尝试一下:
#! /bin/bash
set -eu
chars=({a..z})
rm -rf git
mkdir git
cd git
git init
git config user.email name@example.com
for (( i = 0; i <= 10000 ; ++i )) ; do
printf ${chars[RANDOM % 26]} >> a
time git add a
time git commit -m "Change $i"
du -s .git
done
Run Code Online (Sandbox Code Playgroud)
如果速度太慢,请尝试运行git gc或git repack。