What makes Github So Special and How Does It Work?
Table of Contents
While Git is most often associated with programming, McCullough states that it can be used to handle any kind of file, including Word documents and Final Cut projects. Consider it a filing method for any document draft.
Any of Git’s predecessors, such as CVS and Subversion, provide a central “repository” for all of a project’s files. When a developer makes changes, they are rendered directly to the central repository, according to McCullough.
If you wish to make a change to a project, you copy the whole repository to your own system with distributed version control systems like Git. You work on your local copy first, then “check-in” the updates to the central server. Since you don’t have to bind to the server any time you make a change, McCullough claims that this enables the exchange of more granular updates.
GitHub is a website that hosts Git repositories, but it still has a lot of its own functionality. GitHub is a web-based graphical interface for Git, which is a command-line tool. Each project also includes access control and other collaboration functions, such as wikis and basic task management tools.
GitHub’s most common feature is “forking,” which involves moving a repository from one user’s account to another. This encourages you to change a project that you do not have write access to on your own account. When you make changes that you’d like to share, you should contact the original owner with a “pull request.” The user will then combine the modifications made in your repo with the original repo with a single click of a mouse.
The three features that render GitHub so strong are fork, pull request, and merge. Before GitHub, if you tried to add to an open-source project, you had to manually compile the project’s source code, make the modifications locally, generate a list of changes called a “patch,” and then e-mail the patch to the project’s maintainer, according to Gregg Pollack of Code School.
The maintainer will then have to evaluate this patch, which may have been submitted by a stranger, and consider whether or not to combine the adjustments.
We’ve established that Git is a version control system that is similar to but superior to the many available alternatives. So, what is it about Git Hub that makes it so unique?
Git is a command-line tool, but the hub—GitHub.com—where developers store their projects and network with like-minded people is at the center of everything involving Git.
Let’s take a look at some of the main reasons for using Git Hub and learn a bit of terminology on the way.
A repository (shortly known as “repo”) is a location where all of the files for a project are housed. Each project has its own repository, which can be accessed with a specific URL.
Forking a Repo
When you create a new project based on an existing project, this is known as “forking.” This is a great feature that strongly promotes the development of new programs and projects.
If you find a project on Git Hub that you’d like to add to, you can fork it, make the modifications you like, and then republish it as a new repo. You will simply apply patches to your current fork if the original repository that you forked to build your new project is updated.
You’ve forked a repository, made an excellent adjustment to the project, and want the original developers to note it—perhaps even include it in the official project/repository. Build a pull request to do this.
The original repository’s developers will be able to see your work and decide whether or not to accept it into the official project. When you submit a pull request, Git Hub provides an excellent communication channel between you and the main project’s maintainer.
GitHub’s social networking element is perhaps the most important feature, enabling projects to expand faster than almost all of the other features available. On Git Hub, each user has their own profile, which serves as a resume, displaying their previous work and contributions to other projects through pull requests.
Plan revisions can be discussed openly, encouraging a wide number of professionals to share their expertise and work to drive a project forward. Until Git Hub, developers who wanted to contribute to a project had to find a way to reach the authors—usually via email—and then persuade them that they should be trusted and that their input was legitimate.
It’s difficult to keep track of changes as many parties work on a project—who modified what, when, and where those files are stored. This dilemma is solved by GitHub, which keeps track of all the updates that have been pushed to the repository.
All of the discussion about how great Git Hub is for programmers will lead you to believe that programmers are the only ones who can benefit from it. Git Hub can be used with any kind of file, despite its lack of popularity. You might use Git Hub as a version control system if you have a team that is continually making updates to a word document, for example. This isn’t a normal practice since there are always better options, so it’s something to bear in mind.