Github teaches us that "great" is better than "good"
joncanady.com
joncanady.com
Yeah, I know it kinda reads like an advert, sorry about that. But I'm still a little shocked when I come across support systems that work as opposed to the common OSS-project style of "File bug in Bugzilla. Wait. Wait. WONTFIX."
I'm not attempting to troll: I'm just curious. Since Github is YCombinator (I think, right?), I'm sure a lot of people use it. So: as somebody who works as part of a two-man group, who keeps his files all stored and backed-up offline, what does Git get me?
1) can you roll back a certain feature easily if there is a bug with them? 2) can you and your partner edit the same files at the same time without clobbering your changes? 3) do you have a record of all of the features added and bugs you have fixed by datetime 4) are you and your partner always in sync? 5) if you really just edit files while on server do you ever want to develop software while disconnected from the web? 6) copying to backup folders is really cumbersome 7) can you easily create branches of your software if you want to try out something new and experimental?
The usefulness of version control increases exponentially with the number of developers you have but I even use it as a solo developer due to many of the reasons above.
Not AFAIK: "We had a talk and agreed right away: no outside funding. We wanted to keep the whole company."
http://37signals.blogs.com/products/2008/07/how-github-used....
Git is hard to explain to someone who hasn't lived it. It's as if you've got a button that saves the state of your entire project, instead of just saving one file at a time. Each time you press the button (which is called committing or making a commit) you save all the changes that you've made to any file in your project directory or its subdirectories, along with your name and the time and the date and a note describing what you did. The resulting series of commits is better than just a bunch of backups: it's a very long series of annotated undos which (ideally) stretches back to the beginning of your project. Making a commit is much, much easier than copying your entire project directory over and over, so you end up with a lot more date-stamped backups than you ever would otherwise.
Only it's better, because this history is editable: you can rearrange the order of your commits, break one commit apart into two or more, smash several of them together, edit their descriptive messages, undo some of them while leaving others, group a bunch of them together and mail them to someone else as patch files, and so on. You can edit the history of your software's development after the fact to turn it into a clear story that other people can understand.
But wait, there's more! You can create multiple different versions of your project ("branches") and work on them in parallel. With one command you can switch from working on the production version of your code to a development version, or to a crazy experimental version. And you can move commits from one version to another. Of course, every developer has their own private copy of each of these branches, and commits can be moved from one developer to another. If two developers change the same file in incompatible ways, the system warns you so that you don't inadvertently destroy each other's work.
You need to find some screencasts of someone using git for something real. I'm not sure what to recommend. Maybe someone else can link to one. If I can't find any, I've been thinking of trying to make some myself.
I definitely wish them luck, as an avid user (though only at the $7/month level).
%w(GitHub Github).rand
to pick his spelling throughout this article?For the record:
No, ma'am. Yes, sir!
Github GitHub
FaceBook Facebook
Javascript JavaScript
Blackberry BlackBerryMy list of examples was meant to show that you are in very good company; major publications get this sort of thing wrong all the time. Keep up the good blogging!