Git and GitLab Presentation.
Git and GitLab Presentation.
.
Types Of VCS.
Centralised Version Control System.
Distributed Version Control System.
What Is Git?
● Git is a distributed version-control system for tracking changes in source
code during software development.
● It is designed for coordinating work among programmers, but it can be used
to track changes in any set of files.
● Its goals include speed, data integrity, and support for distributed, non-linear
workflows.
● Git was created by Linus Torvalds in 2005 for development of the Linux
kernel, with other kernel developers contributing to its initial development.
● As a distributed version-control systems every Git directory on every
computer is a full-fledged repository with complete history and full version-
tracking abilities, independent of network access or a central server.
● Git is free and open-source software distributed under the terms of the GNU
General Public License version 2.
Git : An Onion.
● If we did use the above analogy it becomes
easier to picture the layers that constitute Git.
Layer 1.
The Mapping.
Example.
Layer 2.
Layer 3.
Layer 4.
How Git Came To Be.
Advantages Of Git Over SVN.
A Brief Git Schema.
The Zoo Of Git Working Areas.
Features Of Git.
● Distributed.
● Compatible.
● Non-Linear.
● Branching.
● Lightweight.
● Speed.
● Open Source.
● Secure.
● Economical.
1.> Distributed.
2.> Compatible.
3.> Non-Linear.
4.> Branching.
5.> Lightweight.
6.> Speed.
7.> Open Source.
8.> Secure.
8.> Economical.
What Is A Repository?
Types Of Repositories.
Git Commands.
Git Repository Hosting Platforms.
● A source-code repository is a file archive and web
hosting facility where a large amount of source
code, for software or for web pages, is kept, either
publicly or privately. They are often used by open-
source software projects and other multi-developer
projects to handle various versions.
● GitHub
● GitLab
GitHub.
About GitHub.
● GitHub is an American company that provides hosting for software development
version control using Git.
● It is a subsidiary of Microsoft, which acquired the company in 2018 for $7.5 billion.
● It offers all of the distributed version control and source code management (SCM)
functionality of Git as well as adding its own features.
● It provides access control and several collaboration features such as bug tracking,
feature requests, task management, and wikis for every project.
● GitHub offers plans for free, professional, and enterprise accounts.
● Free GitHub accounts are commonly used to host open source projects.
● As of January 2019, GitHub offers unlimited private repositories to all plans, including
free accounts.
● As of May 2019, GitHub reports having over 37 million users and more than 100
million repositories (including at least 28 million public repositories), making it the
largest host of source code in the world.
GitLab.
GitLab Features.
GitHub And GitLab As Git Hosting
Platforms.
GitLab Vs GitHub.
Similarities.
● Tracking : Both GitLab and GitHub offer fantastic issue tracking capabilities that enable status changes and the ability
to assign owners to each issue. Additionally, bug reports can be sent instantly to both GitLab and GitHub.
● Issues : Both GitLab and GitHub are capable of quickly setting up the status, assignees, or milestones for multiple
issues at a time to easily filter them based on any type of property.
● Integrations : Both GitLab and GitHub have a wide array of 3rd party integrations available to strengthen workflows
and boost productivity. GitHub has a marketplace of 3rd party integrations for specialized tools and applications.
GitLab offers numerous integrations for development and DevOps teams.
● Support community : While GitHub’s support community is considered slightly bigger, both solutions offer a strong
community of developers who contribute to the update and upkeep of GitLab and GitHub.
●
Labels : Both GitLab and GitHub provide easy inclusion of labels to provide a simple method of categorizing issues,
merge requests, or epics based on descriptive titles such as “bug” or “documentation” which are very helpful for
tracking.
●
Description templates : Developers can add a description template to issues or merge requests in both GitLab and
GitHub by selecting a template for effective communication.
Key Differences.
● Built-in Continuous Integration/Delivery : GitLab is known for its built-in Continuous Integration/Delivery for free, which
is something that GitHub does not offer. Instead, GitHub’s offering lies in 3rd party integrations that enable Continuous
Integration/Delivery.
● Innersourcing : With GitLab, internal projects allow developers to promote inner sourcing of internal repositories - this
is something that is not offered by GitHub.
● Authentication : In GitLab, permission is granted based on people’s roles while in GitHub developers can grant read or
write access to specific repositories.
● Data import/export : GitLab offers far more detailed documentation on how to import/export data from external vendors
while GitHub’s documentation is not as detailed. GitLab is capable of importing projects and issues from more sources
than GitHub can. With that being said, GitHub does offer a tool called the GitHub Importer to bring in data. With regard
to exporting, GitLab offers a comprehensive solution to export wikis, project repositories, project uploads, webhooks
and services, and issues. On the other hand, GitHub is slightly more restrictive in terms of export features.
● Deployment platform : GitHub does not come with a built-in deployment platform and requires a 3rd party integration
with an external application to deploy applications. On the other hand, GitLab leverages Kubernetes for a seamless
deployment experience.
In Conclusion : The Way Forward.
Questions?