Git pull gives conflicts with octopus strategy

2019-05-07 13:26发布

问题:

Lately when I run git pull in my master branch it occasionally gives the following merge error:

   Trying simple merge with 7ff9b5...
   Trying simple merge with 6872cd...
   Simple merge did not work, trying automatic merge.
   Auto-merging file.txt
   ERROR: content conflict in file.txt
   fatal: merge program failed
   Automated merge did not work.
   Should not be doing an Octopus.
   Merge with strategy octopus failed.

However after this merge attempt there are files that aren't even in the master branch. I can fix this issue using git reset and pulling again but I was wondering where this head or commits where coming from how can I find this? I tried looking in gitk and checking the local GitLab servers but I couldn't find anything.

回答1:

You should be able to see an individual file's history with git log <filename>. This may help to identify your mystery files.

For conflicts, the source of the conflict should be shown with the conflict markers:

<<<<<<< HEAD:filename
...
=======
...
>>>>>>> abcd123:filename

It may also help to switch from a git pull workflow to a git fetch workflow.

fetch updates your remote branch pointer (e.g. origin/master) but does not automatically merge your local branch (e.g. master). You can then use gitk --all to visually compare the branches, git diff origin/master to view changes in the terminal, etc.

Once you are satisfied and want to incorporate your upstream changes, all you need to do is merge (e.g. git merge origin/master from the master branch). Generally, git pull is git fetch followed by git merge.