git如何获取未合并路径的列表?
我对 git 的理解是,在合并时会将更改合并到文件中,然后将其添加到 index.html 中。如果发生合并冲突,则不会将文件添加到索引中,而是将文件留在带有冲突标记的工作树中。如果我运行git status
它会向我显示unmerged paths
冲突的文件。
git如何获取这些文件的列表?如果我运行git add
标记仍然存在的冲突文件,它将不再显示为冲突,所以标记可能不是标识符?
git如何获取未合并路径的列表?
我对 git 的理解是,在合并时会将更改合并到文件中,然后将其添加到 index.html 中。如果发生合并冲突,则不会将文件添加到索引中,而是将文件留在带有冲突标记的工作树中。如果我运行git status
它会向我显示unmerged paths
冲突的文件。
git如何获取这些文件的列表?如果我运行git add
标记仍然存在的冲突文件,它将不再显示为冲突,所以标记可能不是标识符?
如果发生合并冲突,则不会将文件添加到索引中,并使用冲突标记留在工作树中。
它在索引中:请参阅git ls-files
:
对于未合并的路径,索引最多记录三个这样的对,而不是记录单个模式/SHA-1 对;一个来自第 1 阶段的树 O,第 2 阶段的 A 和第 3 阶段的 B。
git read-tree
详细说明 2 路合并:
每个“索引”条目都有两个位的“阶段”状态。
阶段 0 是正常阶段,并且是您在任何类型的正常使用中看到的唯一阶段。但是,当您使用三棵树执行 git read-tree 时,“阶段”从 1 开始。
这意味着你可以做
git read-tree -m <tree1> <tree2> <tree3>
您最终将得到一个索引,其中包含
<tree1>
“”中的所有条目、“stage1
”中的所有<tree2>
条目以及“stage2
”中的所有<tree3>
条目stage3
。
在将另一个分支合并到当前分支时,我们使用共同祖先树为<tree1>
,当前分支头为<tree2>
,另一个分支头为<tree3>
。
另请参阅“如何强制 git 认为文件未合并? ”。