Ответ 1
Это возвращает нас к Git 1.6.5 (октябрь 2009 г.) и commit 4d4d572, которые представили это более подробное сообщение:
status
: отдельно показывать состояние конфликтующих путей в рабочем дереве
Когда путь не включен в индекс, мы всегда говорили "unmerged" в разделе "Изменено, но не обновлено", даже если путь был удален в рабочем дереве.
Удалите необработанные записи из раздела "Обновленные" и создайте новый раздел "Неизведанные пути". Подробно опишите, как различные этапы конфликтуют в этом новом разделе.
Как вы можете видеть в этом патче, "оба измененных" (у обоих родителей) не единственный конфликтный случай.
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
/rcsmerge
.
- Версии в индексе - стадия 1 от общего предка,
- этап 2 для "нашей" версии и
- этап 3 для "их" версии.
Для необработанного файла на этапе 0 нет версии
Здесь "оба измененных" - это "измененных в" наших "и" их ".