Anyone have a method for moving files around keeping Xcode project and git in sync?

I have a large (hundreds of files), horribly disorganized (on the file system that is) Xcode project. I want to move a bunch of files into different folders. I want git to track the move operations, and I want my Xcode project to track the moves as well (just keeping the references intact is enough; I don’t need Xcode to rearrange its internal group structure, etc.)

If I drag things around in the Finder, both Xcode and git are in the dark. I have faith that git will figure things out by content when the time comes, but I also notice that there’s a difference in the output of git status between doing a git mv and moving the file in the Finder, then adding the deletion and addition operations separately, so I’m assuming there’s some difference (even if that difference doesn’t end up getting encoded into the content of the commit.) Xcode, on the other hand, is hopeless in the face of this. (You have to manually re-find every single file.)

  • EGit and Stash with Eclipse - SSL hostname verification
  • How do I move a commit between branches in Git?
  • Gitolite: git push origin master fails with “fatal: The remote…”
  • git with XCode and ignoring .xcodeproj on merge?
  • Find the starting point to do a rebase -i
  • Changing the Git username
  • If I use git mv from the command line, git tracks the move, but I still have to manually reconnect each reference in Xcode (or tear them all out and reimport everything, which is a pain in the ass because many of these files have custom build flags associated with them.)

    It appears that there simply isn’t a way to cause a file system move from within Xcode.

    I’ve found zerg-xcode and a plug-in for it that claims to sync the file system to mirror the Xcode group structure, but I’ve not been able to google up anything that goes the other way. I just want a way to move files on the file system and have the two other things (git and Xcode) to keep track of the files across the moves. Is this too much to ask? So far it seems the answer is, “yes”.

    Yes, I’ve seen Moving Files into a Real Folder in Xcode I’m asking whether someone’s written a script or something that makes this less painful.

  • Shallow clone with submodules in git, how to use pointed commits and not latest ones?
  • How to prevent git format-patch from truncating filenames
  • How do I transfer a partial history from a git branch to a new repository?
  • git clone fails with 403 when running git server on windows
  • How to collaborate in a project using Git without using Github?
  • Is there a better way of doing a git stash pop and then discard the stashed changes if I don't merge?
  • One Solution collect form web for “Anyone have a method for moving files around keeping Xcode project and git in sync?”

    Actually, by design, Git doesn’t track moves. Git is only about content. If any Git tool tells you there was a move (like git log --follow, it’s something that was guessed from content, not from metadata).

    So you won’t lose information if you move files around with another tool then git add the whole folder.

    Git Baby is a git and github fan, let's start git clone.