Log in to like this post! Why Do Developers Love GitHub? Zdravko Kolev / Friday, September 10, 2021 The year is 2008, the place is San Francisco, CA, and the people are Chris Wanstrath, Tom Preston-Werner, and PJ Hyett, with one of them being a college dropout for sure. The weather might be sunny, or might not, I cannot be 100% certain because right now for the purpose of this post all three of them sit behind their improvised desks in the good old basement like in all of those good old stories about good old technological ideas that grow into software innovations in a good old way. The numbers as of 2021 are more than 40 million, over 125 million, and 1. The 40 million is for users, 125 million is for code repositories, and 1 is for the largest, most powerful, and the most-valued open-source platform by dev communities from all around the world – GitHub. Created and co-founded 13 years ago by the three tech-entrepreneurs mentioned above, this software development tool manages to redefine a lot of things. From how tech people share and communicate knowledge, through how they build their code, to how people started seeing the clouds. Announcing the Microsoft acquisition of GitHub on his GitHub blog post from 2018 and talking about its bright future, Wanstrath points out that: “When GitHub first launched ten years ago, I could have never imagined this headline. Git was a powerful but niche tool, clouds were just things in the sky, and Microsoft was a very different company. Open source and business, people said at the time, mixed as well as oil and water.” So yes, the impact of this online version control system on the IT world is tremendous and here is how it came to be so. What is GitHub Why developers use GitHub What are the benefits of GitHub What Infragistics’ developers love in GitHub How we integrate our products into GitHub What Exactly is GitHub? Over the last decade, GitHub has turned into the world’s largest open-source platform for software development that provides cloud storage for source code, code sharing, networking, publishing services, and code talks. It boasts over 125 million code repositories and is used by millions of digital newcomers and tech-savvy brains from 200 different countries. As an open-source platform, it means that: It is free to use (the ways in which GitHub makes profit as a company is by offering hosted private repositories, premium subscription plans to teams and enterprises, and by adding fees when users buy third-party apps on their platform). It is fueled by its ever-growing community of users and contributors. To get a better understanding of how the platform works, let us break it into pieces. Firstly, I will look at the Git-part. In essence, Git represents an open-source version control system, similar to Subversion and CVS, that was initiated by the creator of Linux - Linus Torvalds. The idea behind this command-line tool is to control code revisions and allow for storing code and code modifications in one central repository. And this is where the Hub-part steps in – the actual place where projects are stored and engineers network or work together. The two work together to keep all revisions straight every time developers release a new app version. As a result, this: Streamlines the development process and makes it consistent while also making it much easier to track activities. Allows for easier collaboration. Enables everyone from the dev team or external party to see these changes, download them, and contribute to the code. Simplifies the uploading and monitoring of the latest revision. In relation to how GitHub actually works, Matthew McCullough, a trainer at GitHub, explains that when developers want to apply changes to a certain project, they are enabled to copy the entire repository to a system they use on their own. They make the changes on a local copy and can “transfer them” to the central server after that without the need to constantly connect to the server in order to change a single line of code or so. The basic working mechanism of GitHub, however, relies on these 5 fundamentals: Repository - The location where all the files for a particular project are stored in GitHub is called a repository (or “repo” in short). There is a separate repository for each project which can be accessed through a unique URL. Forking - This is perhaps the best feature of GitHub and the reason people keep using it. Forking is when you create a new project based on one that already exists on the platform. In other words, you take someone else’s project that you would like to contribute to, copy the repository, make the changes you want, and then release the new version. Pull request - Pull requests are sent when you want to notify the original creator of the project/repository about the changes you made on the so-called head branch. Once sent, the owner can view the revision and can choose whether or not to accept your changes to their project/repository. Merging - After a pull request, the changes you have made to your repository should be merged to the original repo. There are three ways to merge repos, depending on the merge options enabled for you. You can: merge all of the commits into the base branch; squash the commits into one commit; rebase the commits individually onto the base branch. Detailed information about this can be found on GitHub official documentation. Changelogs - The nature of GitHub is such that it allows many people to work on the same project, contribute and change it. In order for everyone involved to stay on the same page regarding everything that happens to the repository, the platform enables changelog, keeping track of all changes. Why Do Developers Use GitHub? Surely, there are a lot of “WOWs” when it comes to this open-source development platform. So, let us delve deeper and see why developers use GitHub. Collaborate and Manage Software in RealtimeOne of the things about the platform that attracts so many beginners and professional programmers to it is its web graphical interface. It allows them to easily exchange code, review each other’s project, and manage software code in real time. GitHub arrives with plenty of features that improve collaboration, some of which are: issue tracking, real-time analytics, feature requests, commenting and notes, feedback management, and so forth. Ability to Clone a GIT ProjectThere is no need to interact with the main server at all while working on your own project or when contributing to someone else’s. The command-line tool lets developers clone a git project and still have access to the entire history and changelog. Powerful GitHub Actions and CI/CD PipelinesAnother reason why devs use GitHub is because of its powerful Actions which make it really simple to automate software workflows. Additionally, users can easily set up a CI/CD, so once they commit changes, the CI/CD quickly pull them from the GitHub repo and apply them to the developers’ own deployment. What better way to do code coverage, code reviews, issue triaging, branch management and see your workflow run? Superb Version ControlWhat really attracts programmers to GitHub is the excellent Version Control. It lets them track any change made to their code and allows them to easily see who made it, while simultaneously keeping and providing a full version history. This is something extremely useful not only in terms of collaboration but also when it comes to the increasing remote workforce trends. Backup. Backup. Backup.No one likes losing all of their work, right? GitHub seems to be taking good care of, providing excellent backup. Any public or private code is secured and backed up, so there is no need to stock code on your hard drive. What are the Benefits of GitHub? Features Gists & Github PagesSome time ago, GitHub released its Gists feature which allows for one or several files to be easily converted into a working git repository. With the GitHub pages, on the other hand, developers have the chance to host static websites towards their GitHub. And it is so simple that the only thing that has to be done is assign an HTML page to a separate repository. Offers Well-Padded Documentation & SupportHaving a well-written guide to come back to whenever necessary is a must for software development processes. And GitHub shouldn’t really shy away with its documentation as it is one of the best ones around. People can search information about git workflows, samples and other guide-like content to learn from. What is more, comparing it to BitBucket, for instance, GitHub sufficiently wins over as it not only provides reliable online customer support but delivers adequate knowledge base and useful video tutorials. Super-Cool PodcastJust a few months ago, GitHub introduced their own podcast – ReadME. Urging everyone to keep their “headphones on, volume up”, the episodic series invites different tech people who take the role of speakers and talk about their open source projects that came to life. There is also the awesome ReadME Project launched back in 2020 - a space where everyone can read about the stories and insights of the open source community. Works Like Your Own ResumeOne of the aspects of GitHub that may be turned into an advantage is the fact that it could serve as a resume for developers and their skills. It is an unconventional type of a resume but can still do the trick. It works great when someone wants to exhibit their credits earned from accepted patches, all contributes done on the platform, and the projects and people they have collaborated with. Helps New Projects SucceedAs an open-source platform, GitHub really makes it easier for projects of different sizes and scale to enter the game. This way it not only lets people put their ideas out there but also helps young projects succeed, expand, and change. Even Isaac Schlueter admits that “Node.js wouldn’t be what it is today without GitHub.” Not Just for Developers One thing is for sure – GitHub is great for programmers! But did you know that it could be used for other purposes different from writing code and developing? It is so user-friendly that other people use it for projects like writing a book, while others take advantage of its version control system to more adequately and easily make changes to word documents. What Infragistics’ Developers Love in GitHub? “What I love about GitHub is its rich collaboration capabilities, the fact that it empowers you to build, test, and deploy your code right from GitHub, the powerful version control and most of all - GitHub Actions! With it you can accelerate your app development workflows by automating and customizing them right in your repository. It is amazing how easy it is to make code reviews, branch management, and issue triaging work just the way you want!” - Zdravko Kolev “I love GitHub because it makes it easy to work with git repos! I especially admire the UI, so simple yet powerful. It can really make you feel happy when you see the green ticks of a successful build!" - Hristo Anastasov “I love GitHub because I love to work and contribute to large projects with many people. GitHub makes the collaboration between me and fellow developers in such projects excitingly easy and clear and it just moves your focus to what matters. And last but not least, it helps you stick to your own coding streak by visualizing commits count by days, which I find helpful when one has a not-so-full-of-motivation day.” - Petko Bozhinov “I love using GitHub, because everything is easily accessible like repositories, projects, pull requests, commits etc. It is making the team collaboration easier, more maintainable and has graphs and functionalities like showing day by day contribution and good code history for tracking the changes.” - Dobromir Tsvetkov “GitHub is an incredible tool allowing cross-functional teams to collaborate and contribute to the best. You can store documents as README’s, maintain different versions of source code, set up a CI pretty easy and communicate your progress with the management via issues and project boards.” - Alex Kamenov How Do We integrate Our Products to GitHub? With the July update of the Indigo.Design App Builder, we’ve released quite significant updates – one of which was uploading an application to GitHub. One of the pillar features of App Builder is code generation. Fast-forwarding through the app-design implementation, once the app design is ready and the code reviewed, users can get the final application code. However, what makes the experience even greater is the fact that the app code can be easily uploaded to a GitHub repository directly from inside App Builder. GitHub is a favorite tool for thousands of developers, so this App Builder feature allows users to benefit from all that GitHub offers - assigning reviewers, tracking changes, commenting and many more. By delivering this feature, the Indigo.Design product team not only adds one more piece to the full design-to-code collaborative story, but also integrates the App Builder platform with a well-known service that engineers are already used to. For detailed explanation of the Upload to GitHub process, follow the official documentation.