Gitbox - Everyday git [Mac OS X] interface for human beings
gitbox.pierlis.com
gitbox.pierlis.com
If that's the only way that you'll use version control, it's better than nothing. On the other hand, I heartily endorse actually learning how the git model works -- it's not too bad, I promise!
.
Good places to start:
[1] Peepcode's "Git Internals" PDF - $9 - short, sweet, to the point
[2] The Git Community Book [2] - free - thorough (if a bit wordy sometimes)
[3] Pro Git - free online, $23 dead trees - Haven't read it, same author as [1]
[1] http://peepcode.com/products/git-internals-pdfMy rule of thumb for 'mission critical software' like version control systems - if you can't access its fully functionality at the shell when logged in to a remote machine then forget about it.
Gitbox is great for your workflow until the day you have to actually use git and you have no time to 'actually' learn git.
(Disclaimer: Tongue in cheek.)
It's a bit like with the compiler: it can be pretty and all, but ultimately I just want to write `make` and get my binary. When I need the details, I know where to find them.
a) basic Git isn't that complex b) Learning a dumbed down subset of Git won't help you long term
I would say that giving people a gentle introduction to stuff is great, but it's important to make sure that it is a launch-pad for really learning the tool properly in the future.
That being said, I think this will be useful for a lot of less-techy designers or copy-editors or QA people, etc. People who can just open stuff in Notepad because they don't need to craft code.
I've had to teach plenty of people how to properly merge files using Git and no one has ever said "oh that makes sense". If a tool can hide the ugliness of merging conflicting files, even a little, it'll help a ton of people get used to using Git.
Interfaces are interfaces. CLIs are good for some things, but bad at discoverability and limited in their communication.
But I think I understand where you're coming from. My take is that all of these supposedly-simpler interfaces are nowhere near radical enough. If you try to make git easier by deleting half the feature set you end up with Emasculated Git. It's still obviously git, but it isn't git, so (e.g.) you ask your friend how to use git and they tell you ten things, half of which you can't do because the tool doesn't support them. Or you consult a git book and it seems both familiar and unfamiliar.
What I wish someone would try is designing a tool that has, say, 5% of Git's features, and a different name, but uses Git's protocols to interact with Git repos. The user presses a button to download a project from a URL. They tinker. Occasionally they press a button which saves a milestone copy of their directory tree. They can optionally give milestones names. With another button, they can send their milestones to a server in the cloud. They can also browse the cloud looking for other people's milestones and fetch those. They can see the diffs between two milestones. And there probably needs to be a tool to help merge a set of changes into a directory, which can then be saved as yet another milestone.
Think: "what would Git look like if Apple designed it?" The result is probably not a tool that a hacker would use directly. But I would hand it to all my non-hacker colleagues in the hope of capturing their work in a repo which I could then pull, sort out, and merge into the main tree. And it would let them browse the history and pull stuff out of it without having to bother someone like me.
For subversion, changesapp or cornerstone might appeal to you.
DVCS has high intrinsic complexity, though i agree that simplifying assumptions could reduce git's apparent complexity
http://gitx.frim.nl/seeit.html
You can also try out the experimental fork version:
frankly, gitx is a low bar
the only feature this seems to have over GitX is push/pull.
my typical usage is GitX for commits and history browsing and the shell for everything else.
As for this particular one, though, I can't see it offers any advantage over GitX, apart from the "it's not a RubyCocoa app", which isn't really that great an advantage to my mind…
I wish projects like git spent more efforts on things like GUIs.
Does anybody know of any Linux alternatives?
But I find this interface interesting, even knowing all command line git this makes browsing history for reviews easy, nice tool.
In this case the best tool, even for experts, is a hybrid tool.
>git is not a consumer software
I don't understand. What does being consumer software or not have to do with learning curves? Do you think developers don't appreciate simplicity or discoverability?
If you hide complexity behind a pretty UI, you end up with broken projects when something unexpected happens during push to production and nobody on your team spent time reading the manuals. So what I'm saying, I guess, is that steep learning curve for real tools is a good practice which should not be avoided. You don't want to be operating a chainsaw without reading the manual first.
In your own language, isn't a CLI simply hiding an API in much the same way a GUI one is?
I used to teach people Linux Volume Management. Far more people understood what they were doing with a visual aid - either in, or outside the app - than those who ran the commands without any context to what was actually happening.
The truth, I think, lies somewhere in the middle. CLI and GUI are essentially complementary modes of interacting with the computer. CLI is generally easier if you can remember the commands and the options, which is the case if you use them a lot. If you don't use certain functions a lot, a nice GUI (like Gitbox) can help you find them quickly. Of course whenever you have to repeat a command many times you should automate the process by writing a script, but in theory you could link that script to a button or menu item in a GUI. It doesn't have to stay at the command line.
Here's a screenshot of how it worked for ls(1): http://applefritter.com/ui/aux/images/cmdo-ls.gif
It doesnt appear to serious on the homepage of a git product :)
If you're a designer, writer, etc: Even though it only takes 20 minutes to learn, if a GUI is what it takes to get you to use version control I guess that is the lesser of two evils :)
sudo gem install cheat
Then do :
cheat git
A great shortcut to all of the common git command sequences.
alias preview='groff -Tps > /tmp/tmp.ps && open -a Preview /tmp/tmp.ps'
So you can do :
cheat git | preview
P.S. As an added note, there are TONS of cheat sheets out there. Just do a 'cheat sheets' from the command line and you'll get the all listed. Some of the more common ones I would suspect in the HN community are :
cheat svn
cheat rails
cheat named_scope
cheat curl
cheat blueprint
cheat bash
cheat mysql
cheat ruby
You may need more than those 2 hours to really digest and understand everything, and see how it plays out in practise. But after the first 2 hours you should be ready to use git. (Actually you should be using git, because how else are you going to learn?)