请教关于 git 的快照

2014-07-23 01:07:46 +08:00
 tin
git保存每次更新时的文件快照 ,但不太明白什么是文件快照 ,google 看了一下关于快照方面的介绍,但还是不太明白,它与拷贝有什么区别?请高手指点,谢谢。
7533 次点击
所在节点    程序员
12 条回复
chshouyu
2014-07-23 01:11:11 +08:00
想象一下,给一张桌子拍一张照片,纪录了桌子上所有物品的位置、状态,这样就可以称之为快照了。
我们不必存储所有的物品,只需存储这个照片就可以了,下一次想恢复以前的状态的时候,只需要翻出当时的那张照片,再把物品按照那张照片里的位置摆放一下就OK了。
limon
2014-07-23 03:22:53 +08:00
快照只包含改变的部分,所以“快”
kid813
2014-07-23 08:37:11 +08:00
git-scm.com有一个中文版的官方教程,第一章就有介绍git的快照。

git好像不记录“改变的部分”。
akfish
2014-07-23 08:50:33 +08:00
这个故事告诉我们,中文翻译是不靠谱的。
Snapshot:
In computer systems, a snapshot is the state of a system at a particular point in time.
和”快“没有任何关联。

所以,1L 2L的解释全错。

Git在每一次commit时,都会完整的存储当前版本所有修改的文件,而非只存储diff。

http://git-scm.com/book/en/Git-Internals
akfish
2014-07-23 08:53:20 +08:00
如图:
http://git-scm.com/figures/18333fig0903-tn.png

test.txt有两个版本,分别存储到了blob 83baae和1f7a7a,都是完整的保存了整个文件。
zts1993
2014-07-23 08:55:35 +08:00
git保存被修改文件的完整文件
dorentus
2014-07-23 09:48:21 +08:00
dorentus
2014-07-23 09:49:57 +08:00
Snapshot 用在拍照片的时候常被翻译成“抓拍”。
timonwong
2014-07-23 10:52:27 +08:00
@akfish
做云计算的时候,客户老是问,快照怎么一点都不快啊,所以把名字改成备份了
akfish
2014-07-23 11:07:36 +08:00
tin
2014-07-24 18:36:17 +08:00
谢谢各位指点。看来还是看英文原版比较好理解,(加强英文学习中)
tin
2014-07-24 18:42:45 +08:00
再追问一下,快照是复制么?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/124019

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX