假设我们去试运行:
git init
echo -e 'hede\nhodo' > new.txt
git add new.txt
git commit -m 'commit 1'
1 file changed, 2 insertions(+)
echo -e 'hede\n123' > new.txt
git add new.txt
git commit -m 'commit 2'
1 file changed, 1 insertion(+), 1 deletion(-)
所以我知道两个版本的SHA。当我调查它们时,我看到了:
git cat-file -p ad0daa422be9531700a069e6800b18c065f755bb
hede
hodo
git cat-file -p 6fbf5b80b76bbe270bb41789c34851d622ae1f63
hede
123
似乎git复制了blob,但'hede'仍然是多余的。我知道这不会对小文件产生很大的影响,只是问:git稍后会将这种差异优化为差异吗?或者这是使git高效的方式吗?
由于
答案 0 :(得分:4)
正如我在" How does git store files?"中提到的那样,Git:
所以它很重要(克隆/推/拉),同时在本地提供简单的快速访问。