Fork me! Moving to a new Git client on Windows
Where did I put that file, again?
I’ve been using Git as my revision control system for years now. Despite what some well intentioned folks say, if you’re not using revision control for software development you’re doing it wrong. I’ve had projects where I’ve lost a hard drive and everything on it - a remote copy of your workspace saves you here. I’ve had projects where I accidentally deleted a day’s worth (or in one case, nearly a week’s worth) of work - RCS to the rescue. Not sure how best to achieve something, and you want to make a throwaway test? revision control (with branching, natch) has it covered.
I’ve used all sorts of revision control tools - from nothing at all with floppy backups through Visual Sourcesafe (which was neither), Perforce (great), Accurev (not bad), Subversion (ok), AlienBrain (shudder). Many of these were either terrible to use, or caused all sorts of conflicts and workflow issues, or both.
Perforce was the first tool that helped me grok branching. It wasn’t easy to make it work (at the time, I was at EA working on the Potter franchise, and this was way before Fusion or Helix). It made a huge difference to how we worked and how we released products.
Then I tried out Mercurial and Git - both excellent, both distributed systems - and plumped for Git as my tool of choice for all future projects (where at all possible). When we set up Boss Alien, we made the call to use Git for all revision control: code, art assets, docs, you name it.
Git’s awesome, in a “here’s a toolbox, try not to stab yourself - oh, you stabbed yourself, try not to bleed out” kind of way. learning how it works is a cliff rather than a curve, and after teaching it to hundreds of people (including technical folks, artists, producers, etc) I can safely say that it’s not something many people just get. It’s also not something many people really understand the need for - probably because they’ve never had to reconstruct a project from scratch using someone else’s partial copies of your work. (Hint - I’ve done that. It sucks).
CLI or GUI
Git is very much an engineer’s tool - using it on the commandline (preferably green on black terminal) lets you go hacker crazy. But it’s not really the best way to interact with your files if you’re anything other than a tech dweeb. Some sort of UI on top of that commandline mess really helps, and the various GUIs for Git have been improving in leaps and bounds over the last few years.
I’ve been using Atlassian Sourcetree for the last six years, on Mac and PC. It’s good (sometimes great!) and, at the time I started using it, it was probably the best cross-platform GUI for Git out there (after fighting with Tortoise, a brief stint with Tower and trying out just about every other option along the way). I’m a huge fan of Atlassian in general - their tools were instrumental in helping us ship CSR at Boss Alien, their licencing and prices were reasonable, and Sourcetree has the best price of all - it’s free!
But it’s languished over the last few years - lots of UI changes, Git LFS support and more came on to the scene, but it’s never felt completely reliable for me. The last few updates made things slower and slower, less and less usable.
I finally decided to get out of my comfort zone, and look at the alternatives. GitKraken was a brief contender, but I’m very much not a fan of yearly subscriptions to tools I’m not yet sure about, and I had a few niggles while getting it set up.
Then I tried out Fork.
it’s awesome. It’s like Sourcetree - but it just works. With OpenSSH now included in Windows 10, credential management is a breeze (as long as you know how to configure SSH!). Submodules work. LFS works. Rebasing, external diff and merge, and all of the usual stuff in Sourcetree - it’s there, mostly the same.
And it’s fast. As in, I can type into the commit dialog and not be waiting for my keystokes to catch up (looking at you, Sourcetree).
I’m not currently doing dev for iOS, so I’ve yet to try the Mac client - but I’m pretty hopeful I’ll have the same experience there when the time comes.
So far - highly recommended. If you’re using Git and you’re not happy with your GUI - give it a test drive.
And if you’re not using Git (and your RCS is anything other than Plastic, Fossil, Hg or Perforce) then I can give you a great introduction to how it works (and why it works) and why you should use it. If you need help or persuasion, contact me at the usual place!