相关疑难解决方法(0)

Git内部:Git如何存储修订版之间的小差异?

据我了解,一些VCS存储修订版之间的差异,因为,差异有时很小 - 源代码中的一行被更改或者后续修订中添加了注释.另一方面,Git为每个修订版存储压缩的"快照".

如果只做了很小的改动(大文本文件中的一行),Git如何处理这个?它是否存储了两个几乎完全相同的副本?我想,这将是对空间的低效利用.

git

8
推荐指数
3
解决办法
2738
查看次数

Git中树和提交类型有什么区别?

我在一个文件中签入了一个简单的git仓库.从我的调查; 放置了三种类型的对象.git/objects

  1. 承诺
  2. BLOB

举个例子:

$ git cat-file -t 8b4e834eba22e60c284c7b77e43d3c29e619f92f
commit

$ git cat-file -t c7c5b03aea0b8c970c93de3670c28f2108948266
tree

$ git cat-file -t e965047ad7c57865823c7d992b1d046ea66edf78
blob
Run Code Online (Sandbox Code Playgroud)

如果我试图在blob上运行git-ls-tree,则会抛出错误.

但是我同样可以在一个commit或一个tree对象上运行它.

$ git ls-tree -t c7c5b03aea0b8c970c93de3670c28f2108948266
100644 blob e965047ad7c57865823c7d992b1d046ea66edf78    readme.txt

$ git ls-tree -t 8b4e834eba22e60c284c7b77e43d3c29e619f92f
100644 blob e965047ad7c57865823c7d992b1d046ea66edf78    readme.txt
Run Code Online (Sandbox Code Playgroud)

是一个commit对象也tree?它们有什么不同,如果有的话?

git

5
推荐指数
1
解决办法
1241
查看次数

标签 统计

git ×2