21

I am using Git and when I tried to pull a newer development branch with my current branch using XCode's source control menu I received this error message:

The operation could not be performed because "ProjectName" has one or more tree conflicts.

How do I resolve these tree conflicts? Thanks

Ankur
  • 5,086
  • 19
  • 37
  • 62
Tony Pham
  • 393
  • 1
  • 3
  • 9
  • duplicate? http://stackoverflow.com/questions/14624209/xcode-git-unable-to-pull-changes-from-the-remote-repository – 1615903 May 03 '13 at 10:33

5 Answers5

11

I was in trouble with this problem. It often happens when I remove or change the directory of the project .For example, when I move one directory into another existing directory,both of the directory are real folder the warning will exist.

In fact the meaning of tree conflict is that the directory level in your work repository is not same as it was on server.

It's my way to resolve this problem :

  1. Check which directory in your local work repository differs from the server repository.
  2. If the local repository has extra directory Delete(local) -> update ->OK , if the local repository lacks of something and the extra elements in server is needless, Delete (server) -> update. NOTE After this the tree conflict is not existing any more.

Hope helps.

lynulzy
  • 561
  • 7
  • 19
  • 3
    This should be the accepted answer. The tree conflicts that the question is about are not the same as merge conflicts within a file. – Drew C Jan 31 '17 at 23:45
10

There is a conflict in the project file you need to pull using the command line or a GUI tool like SourceTree (Free) and manually resolve the conflict in a text editor or diff tool.

See also:How to use Git properly with XCode?

Community
  • 1
  • 1
GayleDDS
  • 4,443
  • 22
  • 23
  • 5
    The tree conflicts that Xcode reports are not the same thing as merge conflicts with a file. Normally, when performing a merge via Xcode, it alerts you to the merge conflicts and provides a UI for resolving them. When there are tree conflicts, however, it just alerts you to them and provides no way to resolve them. See the answer from lynulzy below for how to fix tree conflicts. – Drew C Jan 31 '17 at 23:47
3

I had a similar issue. So I opened a terminal-windows and changed to the directory, verified my branch was clean with a git status, changed to master using git checkout master and merged my branch with git merge push-notifications. The Git Branching - Basic Branching and Merging page explains it in detail.

kometen
  • 6,536
  • 6
  • 41
  • 51
0

For me this error occurred when Xcode got confused on which branch the project was currently on. So I solved it by switching the branch to master and then back to the former branch again. So, try this simple fix first.

turingtested
  • 6,356
  • 7
  • 32
  • 47
  • As odd as this may sound, this solution worked for me. All I did was switch to the branch (`master`) I wanted to merge into. Then merge the development branch I was working on into the `master` branch. The tree error did not show this time. It seems that Xcode prefers that you switch to the branch you want to merge into first before merging. – skymook Aug 16 '18 at 09:13
0

My situation. Merging the master branch with minor changes into my current in-development or working version. I solved this issue by:

  1. Moving the in-development file with the tree conflict to my desktop (i.e. out of the repository controlled directory).
  2. Committing the most in-development version.
  3. Re-execute the merge from the master into the most recent version.
  4. Resolved actual merge conflicts.
  5. Confirmed that the file that was merged from main into the in-development branch was there and correct.
Jacksonsox
  • 1,114
  • 15
  • 25