If you do software development, you know how important source code configuration management is. Apple currently supports CVS, Subversion and Perforce in Xcode 3.x.

Over the past few years a new system called Git has been developed (by Linus Torvalds and other Linux developers) for use in distributed, non-linear development projects.

These days, a lot of iOS development projects are using multiple developers scattered all over, and a SCM system is absolutely necessary for there projects. We'd like to use Git, but Apple doesn't support it yet. Xcode 4 is supposed to.

If you're on a Mac, and if you do iOS development you are, you can find a good, free Git client called GitX. It has the following features, several of which are Mac-specific:

Detailed history viewer

Nice commit GUI, allowing hunk- and line-wise staging

Fast workflow

Explore tree of any revision

Nice Aqua interface

Paste commits to gist.github.com

QuickLook integration

It also has a command line tool. There is a user manual here and you can download GitX here.

[crarko adds: I'm part of a development team working on an iOS project. We're probably going to be using Subversion for our first release or two, but I'd like to move to Git. This is the client software I'm trying out, but I'd like to hear what others are using. Xcode 4, when it is released, should make the move easier. There is no date set for that yet.]

As far as I can tell, there's been no development activity on GitX in well over a year, and no significant activity for over two. Their bug reporting site (over at Lighthouse) seems half-baked, and I have found the developers to be completely unresponsive to bug reports and feature requests. You might want to consider the new Gitbox client, which looks promising: http://www.gitboxapp.com/

There's a much nicer client with more features in beta here: http://www.git-tower.com/ (will not be free after beta but will certainly worth it)

And XCode4 has Git support, this is not a supposition. If you are a registered iOS developer you can download the preview and test it (it can and should be installed next to XCode3, so you're not forced to use it) it's way better than XCode3.

Tower looks neat, but I'm not sure how I feel about using a non-open source program to handle my git stuff, which is all open source. But, then again, I do use XCode, which isn't open source (though at least it's free).

I don't really care about GPL vs. BSD if that is what you are getting at. Obviously, if I was a hard core open source advocate, I would be using Ubuntu or something instead of Mac OS X. It's just, with something that is open source, you can see nice forks like the one I liked to for GitX even when the main project is as good as dead.

That, and if I find a bug and am savvy enough, I can actually go in and fix it myself, rather than relying on the main devs to do it.

And open source or not, I don't want to pay for something like this (the command line interface to git isn't that bad).

Well, Gity seems to be a little less good than the development version of GitX that I mentioned in another comment. In particular, it doesn't show the interweaving lines that make it so easy to see merges.

Tower is nice, but has a strange interface, some bugs, and is slow.

So, I think I am going to stick with that dev version of GitX. It's perfect for someone like me who uses git mainly in the command line, but occasionally needs a nicer way to view commit histories than some ascii log view in less.

Well, that's about as nice as any of these, if you don't mind ascii graphs. The problem is that if you want to view one of those commits, you have to copy the SHA1 and paste it into a new git show command. Tools like GitX make it easy to view---in a streamlined way---all the recent changes in a branch, both with the simple log view with the merge lines like your command gives, but also with their commit messages and diffs.

Although I suppose you could get something like this from the command line just by changing the options to git log. Still, it's a pretty Cocoa interface vs. ascii stuff. And GitX gives you pictures of people (if they have uploaded a Gravatar).

There is also gitnub, worth a look if you are searching for a GUI tool for GIT.
Don't forget that GIT installs some tools (fugly looking ones) when you install it, such as gitk and gitcitool.
Just run the commands at the Terminal in a repository.

If you are going to use GitX, you should use this development version. You will have to manually clone the git repo and build it using XCode, but it is a big improvement over the main GitX, which, as someone else pointed out, hasn't been developed for over a year.

Also, I just want to say that you should be able to do anything in git from the command line if you really want to use it. I would recommend learning it from the command line first, and then using a GUI once you are comfortable with that.

But the very fact that you are using GitX implies that you know how to use git, so why not just clone the repository and get the full benefits, like being able to pull in updates with a simple git pull? Remember, this is a development branch, so it's probably a good idea to update it every once in a while.

I've looked at GitX before and wasn't keen on it. I'll have to ask the devs here about the integration with Xcode 4, and how that would aid us, if at all. We currently use git and also have gitflow, which is very handy indeed, so any integration in Xcode would need to deal with git flow.

I've been working with Tower for about 2 months now and im pretty happy with the elegance of the app. As a desinger the thought of the terminal freaks me out but I still need some of the more advanced stuff in git (stashing/branching, etc). Tower handles it all pretty smoothly. A must try - http://www.git-tower.com/