在git修订文档中,它说:
[:],例如:0:README,:README冒号(可选地后跟阶段号(0到3(,冒号后跟路径,在给定路径的索引中命名blob对象。缺少的阶段编号(及其后面的冒号(命名阶段0条目。在合并期间,阶段1是公共祖先,阶段2是目标分支的版本(通常是当前分支(,阶段3是来自正在合并的分支的版本。
对我来说,这并不能说明阶段号:0、:1、:2和:3的含义。文档中提到了在进行合并时的情况。但它并没有提到在没有进行合并的情况下它们意味着什么。
尝试一下,在我看来":0";是当前暂存的索引。这是正确的吗?
- 做":0";等等。在合并进行时更改
- 当前没有进行合并时,这个数字意味着什么
这些数字全部表示";槽";在索引/暂存区域中。有两种情况需要区分:
合并冲突
当在合并冲突期间暂停时,当Git为您重写冲突文件时,如果您询问冲突文件,:0:
为空;这就是为什么,在编辑工作树版本后,必须add
它,才能将固定版本获取到索引中,以便它进入合并提交。
同时:
:1:
是LCA(合并库(中此文件的状态:2:
是ours
版本:3:
是theirs
版本
因此,假设您知道什么是合并,您可以从中得出结论,Git试图将diff:1:
-:2:
和diff:1:
-:3:
应用到:1:
来形成新文件以进入合并提交,并且在没有人工帮助的情况下无法完成(因此产生了"冲突"(。
否则
否则,:0:
是文件的索引版本,其他都为空(尝试获取一个会导致错误消息(。