For those of you who have seen the OctoCat avatar (sorry old-time 007 fans) and wondered what’s up with Github using that, or even wondered what’s up with Github itself, probably the best answer I can give is… why not?
That’s also a good answer to the question: Why with over two dozen different open source software web hosting sites on the Internet, why do we need Github? After all, over half of them support the “Git” distributed revision control system software just like Github does.
Instead of trying to give some technical explanation why I think Github is the best of the managed web hosting sites, it may interest you to note some of the biggest and most popular open source software projects on the Internet depend on Github, such as:
– Ruby on Rails
Is Github for mega-corporations or start-ups?
Github’s policy on start-ups is simple. The main website at Github.com was designed for, and is used by, many small businesses. In fact, the company that created Github named Logical Awesome (which later became Github Inc.) was a start-up of only three people: Chris Wanstrath, PJ Hyett, and Tom Preston-Werner.
Mega-corporations or companies that have top-secret security requirements can upgrade to Github::FI which stands for Github Firewall Install. This is essentially a way for any company to create their own Github server inside of their own private network, but still take advantage of all the great features of Github. Companies that run their own Github::FI server must pay a monthly fee for its usage, but there are plans for all needs starting at just $7 a month.
What can I do with Github?
To quote from the Github help site at Help.Github.com where you can find out everything about Github, the top five steps you should take are:
- Take a quick crash course on Git at Gitref.org
- Set up Git on your own computer system
- Create a Git repository on Github
- Fork a Git repository at Github
- Be social
If you already have Git set up and ready to go, you can skip steps 1 and 2. If you really need to learn Git, personally I recommend using the free online ProGit book at the ProGit.org website.
Creating a Git repository at Github
Okay, so let’s start with step 3, creating a Git repository on Github. Your source code project will live on Github.com in the Git repository that you create. So after you log into your Github account, you just need to click on the “New Repository” button and fill in your project’s name, an optional description and homepage URL and you’re ready to go.
While not required by Github, the next thing you should do after you create a new repository (“repo” for short) is to add a README file to it. If you add a README file, it gets displayed on your repo’s first page at Github. You can create it in simple text format or in other markup formats like .markdown or .textile if you want so you can use HTML content like links and headers.
Next, open the newly created file README with your favorite text editor and enter a project description, then save and close the file and commit your new README file in Git. Finally, set up a remote for your Git repo and push your commits to it.
Forking a Git repository at Github
If you would like to use someone else’s project on Github as a starting point for y our own project, you can clone it to your local computer system by “forking” it. Do this by clicking the “Fork” button in a project on Github.
After you fork, you clone the project to your local computer system using Git. After cloning, then add the new remote Git project on Github.com as “upstream” to your local Git project so you can keep track of the original repository you forked your local project from.
Maximizing Your Use of Github by being Social
Github is definitely one of the best out of many managed web hosting sites you can find all over the internet. Get all the value you can out of Github by taking advantage of its social features. You can follow friends to see what they are working on. You can watch projects so you can stay up-to-date on what’s going on in each project. You can also issue pull requests if you want to collaborate on existing projects that you find interesting, and so much more.