Quick guide to get started using Git + GitX with Xcode projects on the mac?
Using Git on the mac feels like a huge pain, and the Git documentation is just huuuuuuuuge. Maybe someone has a top secret blog article or even screencast to share, that explains the basics fairly simple and quickly?
Creating a repository. Big pain.
- Collapsing a Group of Commits into One on Git
- add blobs or trees to a created repository using pygit2 (libgit2)?
- Can a merge change the commits history of a branch?
- Git wrongly interprets that files names have changed after I pull
- Can 'git status' be configured so that it won't provide help text?
- How to log every branch last commit time?
Opening that repository with GitX: Pain.
Working in Xcode and then committing changes: No idea, probably big pain too.
Cloning the repository to a few other developers with their own macs so they can start collaborate on the project: Oh man, my head explodes… need a doctor!
Merging those cloned repositories back somehow, so everyone gets an updated repository with the changes of anyone else: Red alert!
Right now I feel I’ll need a month to grok it. Would be SO glad if someone can point out really helpful resources that don’t force me to read for some days… or is there a great and thin book that explains this madness?
5 Solutions collect form web for “Quick guide to get started using Git + GitX with Xcode projects on the mac?”
Git is absolutely enormous, and you could certainly spend that month learning its processes, but you can stick to some basic concepts and end up with a really great workflow. I use the command line, as it allows you stick to these basics, and expand out if you need to. These basic commands are “pull”, “push”, “init”, “commit -am “message””. Later, you can read about branches and rebasing at gitref.org.
As a mac Xcode + git user; I definitely recommend DTerm to make life easy. One key command brings up a floating terminal window, CDed to the directory of the file that’s currently active. In XCode, this means that you’ll be in a git-controlled directory immediately.
So, my workflow —
- Use “git init” in the terminal to create a repository
- Create github repository
- follow github instructions to associate the two
- When working in my project, press Shift-Command-Enter to bring up a floating terminal window
- type “git commit -am “commit message” to commit all current changes
- Same key combo plus “git pull” or “git push” for pulling in changes from code repository or pushing changes to code repository, respectively
I find that the command line allows a much easier working relationship with git than GitX, especially if you’re using something like DTerm.
For a great reference, check out gitref.org. Good luck!
Launch a terminal window.
Creating a repository:
cd project-dir git init
Opening the repository in GitX:
cd project-dir gitx
git status git add . # or individual files git commit
(it’s a good idea to set up a
.gitignore file from the beginning.)
Read the Pro Git book or look at some of the video tutorials at git-scm.com to get started quickly. The one by Linus is mostly a description of the implementation plus rant against other VCSs; the second video is really useful.
I used git under OSX for about 6 months (albeit not with Xcode). It’s works a treat! But yes, it was a painful experience and a steep learning curve at times, especially when everybody else on the project are Windows developers (with more choice of git clients) and anti OSX (unwilling or unable to help). But it’s well worth the effort in the long run. It’s doable! Once you’ve got the basics, you’ll find it’s 10x better than say Subversion. Merges just work. Conflicts become more or less a thing of the past.
But my advice, forget GitX, it’s crap. I started off with it, soon realised it doesn’t do (or at least 18 months it didn’t do) anything you can’t easily do from the command line. It also does a whole lot less. So you end up in the terminal eventually anyway… and that’s coming from someone who normally hates using the Terminal due to own incompetence! If you want a decent front end client, try Syntevo’s SmartGit. Once I’d found that I quickly grew to love Git.
Also recommend reading the Pro Git ebook, mentioned by larsmans.
Understanding the simplicity of Git is hard. If you have some experiences with other (centralized) version control systems, try to forget them and understand Git’s basic concepts (objects, commits, branches,..). There are lot of books out there. I would recommend the short (30 pages long) Git from bottom up, it is free and very useful. Another free learning materials are at gitcasts. Pragprog and peepcode have also great books and screencasts. They are not free, but useful.
I use git with XCode for several months, and they work together. Although XCode hasn’t git listed as a supported version control system, you can use git from the command line. I tried to use GitX, but never found it more useful then git from command line. Try it out, maybe it fits your habbits more.
For XCode I found this
gitattributes file useful for my projects:
# xcode noise build/* *.pbxuser *.mode1v3 *.mode2v3 *.perspective *.perspectivev3 # osx noise .DS_Store profile # other .svn *.swp
*.pbxproj -crlf -diff -merge
I found the Git Book to be a really helpful resource. It explains the basics in simple terms and doesn’t try to over-complicate things by going into the technical reasoning behind all the features. At least that’s what I got from it.