GitHub is a web-based version-control and collaboration platform for software developers. Microsoft, the biggest single contributor to GitHub, initiated an acquisition of GitHub for $7.5 billion in June 2018. GitHub, which is delivered through a software-as-a-service (SaaS) business model, was started in 2008 and was founded on Git, an open source code management system created by Linus Torvalds to make software builds faster.
Git is used to store the source code for a project and track the complete history of all changes to that code. It allow developers to collaborate on a project more effectively by providing tools for managing possibly conflicting changes from multiple developers. GitHub allows developers to change, adapt and improve software from its public repositories for free, but it charges for private repositories, offering various paid plans. Each public or private repository contains all of a project’s files, as well as each file’s revision history. Repositories can have multiple collaborators and can be either public or private.
GitHub facilitates social coding by providing a web interface to the Git code repository and management tools for collaboration. GitHub can be thought of as a serious social networking site for software developers. Members can follow each other, rate each other’s work, receive updates for specific projects and communicate publicly or privately.
Three important terms used by developers in GitHub is Fork, pull request and merge. A fork, also known as a branch, is simply a repository that has been copied from one member’s account to another member’s account. Forks and branches allow a developer to make modifications without affecting the original code. If the developer would like to share the modifications, she can send a pull request to the owner of the original repository. If, after reviewing the modifications, the original owner would like to pull the modifications into the repository, she can accept the modifications and merge them with the original repository. Commits are, by default, all retained and interleaved onto the master project, or can be combined into a simpler merge via commit squashing.
How to use GitHub.
Because GitHub is so intuitive to use and its version-control tools are so useful for collaboration, non-programmers have also begun to use GitHub to work on document-based and multimedia projects. GitLab is an open source alternative to GitHub.
GitHub products and features
GitHub offers an on-premises version in addition to the well-known SaaS product. GitHub Enterprise supports integrated development environments and continuous integration tool integration, as well as a litany of third-party apps and services. It offers increased security and audit-ability than the SaaS version.
Other products and features of note include:
Github Gist allows GitHub users to share pieces of code or other notes.
GitHub Flow is a lightweight, branch-based workflow for regularly updated deployments.
GitHub Pages are static web-pages to host a project, pulling information directly from an individual’s or organization’s GitHub repository.
GitHub Desktop enables users to access GitHub from Windows or Mac desktops, rather than going to GitHub’s website.
GitHub Student Developer Pack is a free offering of developer tools that are limited to students and includes cloud resources, programming tools, and support, and GitHub access.
Bitbucket is our Git repository management solution designed for professional teams. It gives you a central place to manage git repositories, collaborate on your source code and guide you through the development flow. It provides awesome features that include:
Access control to restrict access to your source code.
Workflow control to enforce a project or team workflow.
Pull requests with in-line commenting for collaboration on code review.
Jira integration for full development traceability.
Full Rest API to build features custom to your workflow if they are not already available from our Marketplace
We offer three deployments options for Bitbucket. For an understanding of the basic differences between these deployment options, you can read our Pros and Cons of Cloud vs. Server or this article about Server vs. Data Center.
Hence, the three deployment of Bitbucket offers different features that are summarized in this features comparison matrix:
Bitbucket Cloud is hosted on Atlassian’s servers and accessed via a URL. Bitbucket Cloud has an exclusive built-in continuous integration tool, Pipelines, that enables you to build, test and deploy from directly within Bitbucket. You can learn more about Pipelines features and capabilities here. However, there are some restricted functions in Atlassian Cloud apps.
Bitbucket Server is hosted on-premise, in your environment. Bitbucket Server does not come with a built-in testing and deployment tool, but it has strong integrations with Bamboo, our powerful continuous integration and a continuous delivery tool that allows you to completely automate your build processes. There are also more apps available than for Cloud, and the license is perpetual.
Bitbucket Data Center (our Enterprise offering) looks like a single instance of Bitbucket Server to users, but it is hosted on a number of servers in a cluster on your environment. This provides important benefits over Bitbucket Server:
Performance at scale: A cluster of many machines running Bitbucket Server can handle more load than a single machine.
High Availability: If one cluster node goes down, then the remaining cluster node(s) can continue servicing requests so users should see little or no loss of availability.
Smart mirroring: Smart Mirroring can improve Git clone speeds for distributed teams working with large repositories.
Developed on the basis of Git version control system, GitLab is one of the best web platforms for hosting project source codes. Although GitLab is similar to GitHub in terms of functionality, it seems to be a better choice for teamwork than its famous counterpart and GitLab features may be different somewhat.
GitLab exists in two forms. The first one is SAAS?—?website with open registration, and the second one is an individual solution GitLab Community Edition. They both can be perfectly customized to any service.
GitLab benefits: reasons to use GitLab
Free service. Users can find an unlimited number of private repositories in GitLab. This service is completely free. Nevertheless, there is a notification that users will have to pay for storing files that exceed 10 Gb in their size.
Open source code repository. GitLab software is available under the license with an open source code.
Free hosting. There is a Community Edition?—?free source code repository for Debian, Ubuntu and CentOS computers. Enterprise Edition is a paid solution that adds proprietary features over Community Edition, improving integration with other online tools, server options management, workflow management as well as authentication and integration with authorization.
Bug tracking mechanism. GitLab has an effective integrated bug tracking mechanism. Users can create tasks, comment and close them.
Files editing in the web interface. Editing of files is possible directly in the web interface and you can do it without loading of the repository. So if you need to make small changes in an open source code websites, this way is that what you need.
LDAP integration. Full integration with LDAP. Lightweight Directory Access Protocol is an app protocol for access and support of distributed directories services around the Internet. GitLab EE adds additional features such as support of several LDAP servers and group synchronization.
The interface is rather slow?—?switching from one page to another takes some time.
Technical problems with repositories are quite frequent.
As you see, each repository has its strengths and weaknesses. All three of them?—?GitHub, GitLab and Bitbucket have their loyal audience for a number of reasons.
Of the three repository management services, only GitLab is open source. The source code of GitLab Community Edition is available on their website, the corporate version is proprietary. GitHub, which and hosts the largest number of open source projects, is not open source itself. Bitbucket is not open source, but when you purchase a stand-alone version, the full source code is provided with product configuration options.