原子操作意味着:要么他们整体成功,要么他们失败而没有任何改变。他们之间不会失败。 这个含义/背景如何与单词" atomic"?
相关答案 0 :(得分:2)
“原子”来自拉丁语中的“不可分割”,因此原子操作是(假设)不能分割的。你得到的全部或全部都没有。操作的部分不可能发生,至少不会涉及系统的未来状态。
答案 1 :(得分:1)
所有更改和所有已更改的文件都会进入提交,然后提交将作为单个单元添加到历史记录中。如果完全出现单个故障,则整个提交操作失败意味着没有任何更改,也没有任何文件被添加到任何可能的提交中;没有任何内容添加到修订历史记录中。
BTW,你在哪里阅读有关原子git操作的内容?关于它如何是原子的 - 我不能肯定地说,我可以说出我的屁股,但文件系统(ntfs和ext3)通常是事务性的并支持原子磁盘操作。每个提交都会对其所有内容(下面的树和blob)进行哈希处理。然后,git管道可以查看.git / objects并找到该哈希。如果哈希在那里,它将失败。如果散列槽是空的,它可以继续并使用底层文件系统来提供事务和原子保证。