Reproducing Git merge conflict: DD

喜欢而已 提交于 2020-01-03 04:59:06

问题


I'm working on a test script and trying to reproduce git merge conflict DD when shown via "git status --short". I've seen this conflict type in the past.

  • DD (unmerged, both deleted)

I keep coming up with no conflict with everything I try.

What steps do I need to perform to generate "DD" conflict? What does a "DD" conflict mean?

I saw this: Git: how to create different unmerged states? But the steps listed there no longer produce any conflicts in later versions of Git.


回答1:


Found a link to https://github.com/git/git/blob/master/t/t7060-wtstatus.sh. It's kind of hard to read, but it contains test code for all git conflict types.

To produce DD:

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

Results in:

=->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


来源:https://stackoverflow.com/questions/43702944/reproducing-git-merge-conflict-dd

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!