As our iOS efforts within our company have expanded, we have multiple teams now and with new members coming and going and multiple versions of multiple products in Git now, I have been surprised to notice that when someone makes a branch and tells me that I can switch to it and evaluate the code, when I select Switch to Branch… the new branches don't show up in the list of branches that I have the option to switch to.
What I have to do is pull my local branch of that project first, then go to Switch to Branch… and then I can see the new branches in the remote origin.
I rarely use Xcode for SCM operations. Not because I’ve had the experience that others here have had, but simply because I prefer using the command line, and always have, even before SCM integration into Xcode (nee Project Builder). Alternatively, and I think others here have recommended it, try SourceTree. Its free, has a clean interface and behaves has expected. FWIW, it sounds like Xcode does not do a ‘fetch’ when you do a ‘Switch to Branch’. A ‘Pull’ invokes a ‘Fetch’ (and then a ‘Merge’). The ‘Fetch’ is the key, as it gets the new references on the remote. This might explain the behavior you’re seeing.
Now that I think about it. If Source Tree is left open, it won’t automatically refresh remote references, there is a menu option for it. You’ll have to invoke that to see new branches. So just go hard core and use the CL. :) |