We are all in love with Git but without GitHub, we love Git less. On GitHub, we can maintain our projects very efficiently. Pull Request” and "Issues" features of GitHub are the key factors for that IMO. You can even send yourself a pull request from one branch to another and discuss that particular change with your team. As your discussion flows, your code can flow accordingly, too. This is just one of the many coolest features of GitHub.
There is a cool Git extension for GitHub which is maintained by one of the founders of GitHub: Chris Wanstrath. This cool extension named hub lets us work with GitHub more efficiently from the command line and perform GitHub specific operations easily like sending pull requests, forking repositories, etc. It’s fairly easy to install it on other platforms as far as I can see but it’s not that straight forward for Windows.
You should first go and install msysgit on Windows and I am assuming most of us using this on Windows for Git. Secondly, we should install Ruby on windows. You can install Ruby on windows through RubyInstaller easily.
After installing ruby on our machine successfully, we should add the bin path of Ruby to our system PATH variable. In order to do this, press Windows Key + PAUSE BREAK to open up the Windows System window and click "Advanced system settings" link on the left hand side of the window.
A new window should appear. From there, click "Environment Variables..." button to open up the Environment Variables window.
From there, you should see "System variables" section. Find the Path variable and concatenate the proper ruby bin path to that semicolon-separated list.
Last step is actually installing the hub. You should grab the standalone file and then rename it to "hub". Then, put it under the Git\bin folder. The full path of my Git\bin folder on my 64x machine is "C:\Program Files (x86)\Git\bin".
Now you should be able to run hub command from Git Bash:
Special GitHub commands you get through hub extension is nicely documented on the "Readme" file of the project. I think the coolest feature of hub is the pull-request feature. On GitHub, You can send pull requests to another repository through GitHub web site or GitHub API and hub extension uses GitHub API under the covers to send pull requests. You can even attach your pull request to an existing issue. For example, the following command sends a pull request to master branch of the tugberkugurlu’s repository from the branch that I am currently on and attaches this to an existing issue #1.
hub pull-request -i 1 -b tugberkugurlu:master
This weekend, I participated in an event as a speaker in Izmir. I also had the chance to meet Fatih Boy, İkay İlknur, Umut Erkal and Oğuzhan Yılmaz at the event. There were great sessions throughout the first and second day.
I gave two talks during the event and one of them was on Git and GitHub. You can see the slides for that session below:
At the second day, I talked about asynchronous programming for .NET server applications. Slides for that session is also available on my SpeakerDeck page. You can also get the source code for the demos: https://github.com/tugberkugurlu/IzmirDEU201301ServerSideAsync.
You may know that I have been co-authoring a book on ASP.NET Web API for a while now and it is available as an alpha book if you would like to get the early bits and pieces. One of the aim’s of this book is to provide a well-structured resource for ASP.NET Web API and also to give you a hint on how you would go and build a real world application with this super-awesome framework. In order to make our second goal easy, we have dedicated 3 chapters to build a real world HTTP API from scratch for a small city delivery company and we called it PingYourPackage. These three chapters will be covering the application structure, building the data layer, building and testing the core API layer, creating the .NET wrapper around this API and consuming this through an ASP.NET MVC 4 web application.
Although the writing process for those chapters are still not completed, we wanted to give you an early glimpse on the sample application and the source code of the project is now up on GitHub.
After cloning the source code, you can either directly build the project through the Visual Studio 2012 (or Web Developer Express) or you can run the build script. You can open up the entire solution by double clicking the PingYourPackage.sln file and build it from there.
To run the build script, open up a PowerShell console and make sure your execution policy is not restricted. When you run the .\scripts\build.ps1 script, it will install the missing NuGet packages, build the entire application and runs the unit/integration tests. The output will be put under .\artifacts folder.
As mentioned, it’s not completely done yet but the server level code is complete. The .NET wrapper and web client will be there so soon.
As you already probably know, GitHub is amazingly awesome and keeps beating crap out of others (cough, Codeplex, cough). As a company, they have a very unique organization and that amazes me as well. And I am also going to tell this: GitHub is not #1 because of the fact that they support Git. They are #1 because they know what we want and how important UX is for the overall quality.
Anyway, couple of days ago I came across that GitHub offers Educational Accounts for academic people (student, teacher, etc.) and that covers free micro plan for students for 2 years.
As I am (still!) a collage student, I filled up the form and sent it. I was expecting to be rejected since I thought they wouldn't accept students outside of the USA for this plan but they were very positive about it and set my account in a short time.
If you are student, go to https://github.com/edu, fill up the form indicating that you are a student, want to benefit from the free edu plan and get the micro plan as free of charge for two years.
God bless Octocats