当尝试在git中合并时在文件上发生冲突时,git会both modified在有这样冲突的文件上说:
$ git status
On branch master
You have unmerged paths.
  (fix conflicts and run "git commit")
Unmerged paths:
  (use "git add <file>..." to mark resolution)
      both modified: file1
no changes added to commit (use "git add" and/or "git commit -a")
不确定为什么确切" 两个修改".你们有谁知道吗?
Von*_*onC 21
这回到Git 1.6.5(2009年10月)并提交4d4d572,它引入了这个更详细的消息:
status:分别显示冲突路径的worktree状态当路径在索引中取消合并时,我们过去总是在"已更改但未更新"部分中说"未合并",即使在工作树中删除了路径.
从"已更新"部分删除未合并的条目,并创建一个新的"未合并路径"部分.在这个新的部分中更详细地描述不同阶段的冲突.
正如你在这个补丁中看到的那样,"两个修改过的"(在父母双方中)并不是唯一的冲突案例.
case 1: how = "both deleted:"; break;
case 2: how = "added by us:"; break;
case 3: how = "deleted by them:"; break;
case 4: how = "added by them:"; break;
case 5: how = "deleted by us:"; break;
case 6: how = "both added:"; break;
case 7: how = "both modified:"; break;
您在提交173e6c8中看到更多案例,其中git status -s:
对于未合并的条目,
X显示阶段#2的状态(即ours)和
Y显示阶段#3(即theirs)的状态.
X          Y     Meaning
-------------------------------------------------
D           D    unmerged, both deleted
A           U    unmerged, added by us
U           D    unmerged, deleted by them
U           A    unmerged, added by them
D           U    unmerged, deleted by us
A           A    unmerged, both added
U           U    unmerged, both modified
这说明git中的索引有3个阶段(参见" 如何强制git认为文件未合并? ")
在具有合并冲突的Git文件中,(通常)索引中有三个版本,而工作区中的版本带有
diff3 -E/rcsmergeconflict标记.
- 索引中的版本是共同祖先的第1阶段,
- "我们的"版本的第2阶段,和
- 第3阶段为"他们的"版本.
对于未合并的文件,阶段0中没有版本
在这里,"两个修改"都是"修改为'我们'和'他们'.
| 归档时间: | 
 | 
| 查看次数: | 15838 次 | 
| 最近记录: |