Воспроизведение конфликта слияния Git: DD

Я работаю над тестовым скриптом и пытаюсь воспроизвести конфликт DD слияния git, когда он отображается через «git status --short». Я видел этот тип конфликта в прошлом.

  • DD (без объединения, оба удалены)

Я продолжаю придумывать никаких конфликтов со всем, что я пробую.

Какие шаги мне нужно выполнить, чтобы создать конфликт «DD»? Что означает конфликт "DD"?

Я видел это: Git: как создавать разные неслитные состояния? Но перечисленные здесь шаги больше не вызывают конфликтов в более поздних версиях Git.


person Pavel Chernikov    schedule 30.04.2017    source источник
comment
Возможный дубликат проблемы с неслитым путем Git   -  person Andy Ray    schedule 30.04.2017
comment
По этой ссылке я не могу сказать, какие шаги необходимо предпринять, чтобы воспроизвести условие статуса DD.   -  person Pavel Chernikov    schedule 30.04.2017


Ответы (1)


Найдена ссылка на https://github.com/git/git/blob/master/t/t7060-wtstatus.sh. Его трудно читать, но он содержит тестовый код для всех типов конфликтов git.

Для изготовления ДД:

git init
echo test > main.txt
git checkout -b conflict && git add main.txt && git commit -m main.txt && 
git branch conflict_second && git mv main.txt sub_master.txt
git commit -m "main.txt renamed in sub_master.txt" && git checkout conflict_second
git mv main.txt sub_second.txt
git commit -m "main.txt renamed in sub_second.txt"
git reset --hard conflict_second
git merge conflict

Результат:

=->git status
On branch conflict_second
You have unmerged paths.
  (fix conflicts and run "git commit")

Unmerged paths:
  (use "git add/rm <file>..." as appropriate to mark resolution)

        both deleted:    main.txt
        added by them:   sub_master.txt
        added by us:     sub_second.txt

Or

=->git status -s
DD main.txt
UA sub_master.txt
AU sub_second.txt
person Pavel Chernikov    schedule 30.04.2017
comment
Вероятно, следует упомянуть, что git merge изначально сообщает об этом как CONFLICT (rename/rename). Просто позже он оставляет эту конкретную подпись в индексе, чтобы показать ее git status --short. - person torek; 30.04.2017