Git and Github

in opensourcesoftware •  6 years ago  (edited)

GitHub is a very popular website among computer scientists, software developers, creative coders, and tech geeks. People who do not belong in these cohorts perceive GitHub as a platform exclusively for the above-mentioned crowds and do not take advantage of the system that proves to be one of the most useful websites out there. Non-technical people started learning more and more about Git and GitHub after the inception of cryptocurrency project most of which tend to be open source software usually available at GitHub. The following blog is dedicated to helping the reader understand what Git and GitHub really are and how users (technical or non-technical folks) could take the best advantage of what these services can offer.

Git
In order to understand what GitHub is, it is important to know what Git is, as it is the technology running behind GitHub. Git is a version control/management system, which helps a user to track the changes made on a document by saving these modifications and historically timestamping them. At some point in our lives, we have all experienced the trouble associated with creating and editing a document — you start with one document, then you make changes and save it as another document and at the end of the day you have many files piled up and you barely remember what each of them contains. The version control provided by Git makes it easier for a project creator to write, change, save and access editing history using one software application. Thus, Git makes the workflow more efficient.

Now, imagine you want to collaborate on a project with other people. All the project participants make changes to the document and now it is even more challenging to keep track of the original document, executed edits, previous editing history, etc. Git allows everyone to see everything that one needs to know about the project from its very genesis to the current day. Additionally and more importantly, Git’s control system makes sure that the changes executed on the project by different parties do not clash and one member does not overwrite the work created by the other. In short, this management system allows people to collaborate on the same piece of work in a more orderly and coordinated manner. And this unique feature is especially critical in the software industry since software development is a labor-intensive process and usually requires more people involved, working simultaneously on the projects.

Git software is downloadable and is stored on a local machine of a user. If there are many different people working on the same file it is paramount members’ machines to sync up and display the changes made by members in real time. In order to happen so Git requires the member computers to be all connected in the local network. If all the members are in the local network they can collaborate effectively by sending each other the git commits that ensures that the latest work version is synced up to a user’s device.

GitHub
GitHub is a user-friendly implementation of Git technology. It is a website that allows users to store and share the code of a program on the cloud — a centralized server that keeps a record of everyone’s contributions to the project as well as allows members to give out feedback and converse about the project online. While Git is the actual version control application that can be downloaded and utilized by any single user on their individual devices, GitHub is a web service, which runs the version control behind the scenes and creates a social network for the projects.

GitHub has a repository which serves as a central location where one can store project files. A GitHub user can start working on a project by creating a new repository, generating a new file, writing and saving the work by committing the new file. Commit is a term used for saving the document, which can either be branched in a new repository or kept in the same folder. Now, if a user wants to change the file s/he can click on edit, make changes and save the doc. However, changes are committed s/he has to add the description of what changes were executed — this makes it easier to communicate the modification that the file underwent. All the changes between the original copy and modified one will be highlighted by the system so that all the participants can be aware of what changes have been executed on the project.

Functionalities
GitHub is not only a repository hosting service it offers the version control through an online web-based friendly interface and is loaded with highly efficient collaboratory and access control tools. The three major features of GitHub are forking, pull request and merge. Forking allows a user to copy already existing repository and modify it according to his/her vision. Pull request allows a user to send the changed version of a project to the original owner of the code. The code creator can see the profile of the person who sent the pull request and sees all the contributions that s/he has done on GitHub — thus, your page serves as a resume comprised of all the work you have done. If the original creator approves of the proposed changes proposed s/he can merge your version with the original draft. This will give you a credit and will automatically become part of your resume — be displayed on your page. Additionally, before accepting their changes the creator can initiate a discussion regarding the proposed modifications and use the network effect of the platform to best judge if the new version is worth incorporating or needs more editing.

This workflow outlines above is exactly how a crypto project is developed; people can fork and study the code, make changes or suggestions in the community to better the project, and submit the pull request to merge their version with the original repository; the collaboration is usually world-wide and has many participants.

GitHub makes collaboration more successful and less time-consuming. Prior to GitHub, users wanting to participate in an open source project had to first download the code and then after modifying it send it to the project admin. Only this admin could evaluate the project submitted by a stranger. With GitHub, you can get the information about the person who submitted a new version and also asks the community to discuss these changes rather than draw conclusions autonomously. This way open source project development becomes easier, more reliable, more democratic and more fun.

Git is truly revolutionary — coders can host their projects online for free and ally with other creators with the same interests to perfect their projects — use the talent dispersed around the world to refine the code and create the best version of it. GitHub, a user-friendly and easily navigable implementation of Git is ranked 66th globally and 38th in the States as the most popular website in terms of the traffic it gets, according to Alexa.

Some of the advantages of GitHub include:
○ Distributed version control scheme
○ Remote work — one can work without an internet connection; the new version will be retained and uploaded once connected back to the internet
○ Supports global collaborations and social coding
○ Promotes collaboration over competition
○ Credits creators — collaborates get credit for their work. Their contributions get automatically posted on their pages, which serves as a resume, summarizing all of their work and achievement.
○ Is not only for coders — Despite its extensive use for coding and software development, GitHub can be used to just manage and store revision of any project that one undertakes created in different file formats. GitHub can be used as a filing service that organizes the drafts of your project in an accurate and understandable way. When it comes to software development, at the end of the day, software development is a collaborative activity; it needs not only coding but also idea generation through brainstorming, mock designs, so on and so forth. So GitHub is a great platform to communicate ideas among people distributed across the globe that have expertise not only in software development and code creation but also in other fields. If you one is passionate about crypto projects but does not know how to code, It is important to remember the bigger picture — this whole open source software movement that makes these projects come true — involving not only coding but also extensive discussions, brainstorming, designing, etc. It is not necessary to be computer scientists to get involved.

Conclusion
Nowadays, in our increasingly globalizing world, the workforce is widely dispersed — the human capital can be found in different parts of the word, but without the way to remotely connect these individuals with each other and let them collaborate, the big potential of creating something revolutionary is bypassed. By linking up the two concepts of social networking and code development, Git & GitHub are able to become outstanding project sharing and publishing platforms not only for programmers but for everyone who wants to take advantage of the world talent.

Since the introduction of cryptocurrencies, crypto projects have been a major topic of interest, making a lot of people curious and interested in this innovation. Almost all crypto projects use open source software and anyone can check the progress of a crypto project, contribute to the community, and evaluate the project from an investment perspective on GitHub.

There does not exist a project that does not need a better community collaboration and bigger engagement, and GitHub is the right place to do so, showcase your talent, build your reputation and contribute to the projects you are passionate about.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!