What Exactly is GitHub Anyway?

Today, the U.S. leads the world in software developers, with about 3.6 million. India has about 2.75 million. But by the end of 2018, India will have 5.2 million developers and the U.S. will have 4.5 million.

Don’t worry i am not trying to scare you. We developers are a peace loving community and most of us work toward a same goal of making world a better place by working collaboratively. Being smart peacekeepers we chose our tools wisely, One of them is GitHub.

Wait, I have heard git somewhere. Are they anyhow related?

Git is an open-source version control system that was started by Linus Trovalds - the same person who created Linux.

Git is a command-line tool, but the center around which all things involving Git revolve is the hub - GitHub - where developers store their projects and network with like minded people.

Without wasting much time, let’s get started.

After you are done signing up on GitHub you’ll see the following view but without any repositories.

A repository (usually abbreviated to “repo”) is a location where all the files for a particular project are stored. Each project has its own repo, and you can access it with a unique URL.

A repository can only be one of two types i.e public or private. All of the open source projects found on GitHub are public. Every account holder on GitHub has to upgrade their account to be gain the privilege of making private repositories.

While naming a repository try following the following conventions
- Use lower case
- Use dashes i.e my-first-repo looks way better that myfirstrepo or my_first_repo.

Once you are done with naming your repo and adding a license to it then you’ll have a good looking repo like we have here.

I know you are tempted to know what all these new options are for, well we’ll go through them one by one.

Issues: This section is one of the most popular bug tracker in the world. It provides the owners of a repository the ability to organize, tag and assign to milestones issues. If you open an issue on a project managed by someone else, it will stay open until either you close it (for example if you figure out the problem you had) or if the repo owner closes it.

Settings: This section has it’s own set of options, first we’ll cover the collborators section. Remember we talked about the peacekeepers? well this is your team of reckoning. You can find these fellas by just typing their github username.

They will recieve an invite from your side and on accepting it they attain the right to contribute to the project.

Branches display all the git branches that are present in your repository. This is where the fun part starts, you don’t have to depend on another feature to be delivered before you could start working on your own features.

Another option that we have here is webhooks. Webhooks allow external services to be pinged when certain events happen in the repository, like when code is pushed, a fork is made, a tag was created or deleted. When an event happens, GitHub sends a POST request to the URL we told it to use.

A common usage of this feature is to ping a remote server to fetch the latest code from GitHub when we push an update from our local computer. We push to GitHub, GitHub tells the server we pushed, the server pulls from GitHub.

Pull Requests: Pull requests let you tell others about changes you’ve pushed to a GitHub repository.

Once a pull request is sent, interested parties can review the set of changes, discuss potential modifications, and even push follow-up commits if necessary.

After the changes are approved, the next step is to merge these changes to the target branch. After merging these changes you can see the commits of source branch under commits of target branch.

Finishing Up
GitHub is an amazing tool and service to take advantage of, a real gem in today’s developer toolset. This effort will help you start, but the real experience of working on GitHub on open source (or closed source) projects is something not to be missed.

This is my first attempt in writing a tech blog, looking forward to your feedback. I am writing this blog while being a part of Udacity’s Mobile Web India Scholarship.
Slack Handle: @Devesh

--

--