Best practices for using version-controlling on Cocoa projects

I recently started using Git as my version control system for some Cocoa projects I’m working on and wondered if there are best practices for working with version control systems on Cocoa projects.

There is the obvious “build” directory which I exclude from versioning as it’s not important and can change quite a bit when debugging some code and then there are those .pbxuser and .perspectivev3 which change ever time I open the project in Xcode but I don’t really know if they are “important” enough to be checked in.

Is there a commonly used configuration for excluding unimportant files?

Thanks in advance

  • CruiseControl.NET and Git
  • How to preview git-pull without doing fetch?
  • What is the “reset” command for a git cloned repository?
  • git create branch in my repo that is not spun off from existing branches
  • Log command for majority contribution per file with code metrics
  • Source Tree Unity project Ghost files
  • Why does git-svn clone set 'master' to a random branch?
  • Capturing Non-Standard Powershell CmdLet Output for Flow Control
  • 2 Solutions collect form web for “Best practices for using version-controlling on Cocoa projects”

    Here’s my Mercurial .hgignore file, which is based on Peter Hosey’s.

    syntax: glob
    
    .DS_Store
    
    *.swp
    *~.nib
    
    build
    
    *.pbxuser
    *.perspective
    *.perspectivev3
    *.mode1v3
    
    *.pyc
    

    I never commit the ${LOGNAME}.* files as they’re basically preferences information for the current user; the project sources, targets, dependencies and so on are in the project.pbxproj file. And as you mentioned in your question, the build directory (assuming you have the Place Build Products in: Project directory option set) is where the derived files live, so there’s no need to check that in. You can always re-generate its contents from the source code.

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