So, you have decided to be a developer. You might have heard of coding, cloud computing, UI/UX designing and whatnot. Your peers, friends and family have informed you about the basics of coding and web development and the career opportunities involved with it. Today, we are going to introduce you to GitHub.
In simple words, GitHub is an application you use to store your code on free cloud storage. Also, you can use GitHub to showcase your coding skills to potential employers. But, in reality, GitHub is more than just cloud storage for codes. Today, GitHub is used by developers and teams across the world to collaborate with each other on many projects.
GitHub uses Git, which is a piece of version control software. We can download and use on our local machine. Git is separate from GitHub. (We will explore Git in another piece of article).
GitHub comes with many unique features that make it very popular of late. Besides easy storage, it's a complete ecosystem complete with an elaborate social networking aspect, it allows developers to contribute to various groups and teams on various projects. Once you get to know the flow of managing repositories using GitHub, you will know how useful it can be.
So, let's start with version control…
Version control is, as the name implies, a way to manage totally different versions of your codebase. However, why would you have different versions of the same code?
Think about the time when you’re enjoying a game. You are near to enter a tough dungeon from which you can’t escape till you beat the enemy party. Before getting into the dungeon, you’ll need to save lots of your game simply in case the enemy seems to be too hard to beat and you’re stuck in the dungeon forever. If the enemy seems to be too exhausting, all you have to try is load the version of your game where you were outside the dungeon and you’re absolve to explode and level up.
However, after you enter the dungeon and start to progress, you’ll need to save lots of your game on the way, however, you don’t need to overwrite the first game you saved outside the dungeon. Thus, after you save your game from within the dungeon, you create a completely new branch, essentially a duplicate, of your original game. If you successfully make it through the dungeon, then your current saved version becomes your new main version, and you continue on through the game. This can be almost like version control with Git and GitHub.
Here are some top GitHub features
So, let's discuss GitHub. So, as we said before, it's more than a place to save your cloud. Its a tool both local and farside teams use to collaborate on projects. Just keep in mind, projects are not just the things these teams can interact on.
Repositories to save code can be created by anyone. A single repository is generally used for a single project. GitHub repositories are, in short, open to the public. But, here, users can choose the privacy of their own repositories. GitHub charges a small fee to make the repositories private. In such a case, the owner of the repository can control the privacy of his/her repository and the code inside.
Public repositories are open to everyone. But, for someone to make changes into the codebase, they have to take the permission of the administrator. And he has to approve it. So, your code is safe in GitHub from edited by anyone else. But, yes, they can copy and use it, if it's in the public repository.
When somebody needs to make changes to a GitHub repository, the person (usually a member of the team) can produce a separate “branch”, that is solely a copy (well, it’s not really a copy…Git’s technique of storing files is more economical than that, however, we can consider it as a copy) of the present version—in most cases brought up as the “master branch”. The developer can work on the feature in this new branch until the feature is complete. At that point, the developer can “commit” (store a snap of) the code within the new branch and so he/she can create a “pull request”, which essentially lets the rest of the team apprehend that the feature is finished and prepared to be code reviewed and, finally, incorporated into the main branch. Team members will review the new code (another great way to confirm good code quality) and so the administrator will approve the merge. The code can then be merged into the main branch, and therefore the feature branch is deleted. So, this is how a GitHub works.
We are publishing a detailed working of GitHub soon, so stay tuned.