GitLab is a code hosting and issue tracking web platform
based around the Git version control system. First released in 2011, it has
continued to grow and evolve over the years, adding new features and
capabilities, and has turned into a one-stop tool for an agile workforce. While
it is owned and managed by GitLab Inc., who steer the direction of the project,
the core of GitLab is open source software with over 2,000 separate
contributors to date
Version control systems and Git Let's say you write code, or
work on a book, or even just want to collect and update a set of text-based
documents. You need some method of keeping track of changes, of being able to
revert mistakes in the work, or branch in new directions; and you'll probably
want some way of remotely backing up your work in case of fire, theft, or acts
of a misbehaving computer. This is where version control systems (also known as
VCS) come in handy. They save your work at certain points (commits) and can be
reverted to earlier states; many VCS offer methods of branching so that you can
– for example – work on a specific feature without interrupting someone else's
work on another component. There are many version control systems on the
market, but the most prominent in the public eye would be Git. Git is a
distributed version control system, which means that it has a full copy of all
of the code that exists on each user's computer, and users can pass patches and
changes directly between each other rather than entirely relying on a
centralized server.
Behind the scenes, git is an advanced program that is
lightning fast when it comes to performing operations like staging work,
committing changes, or swapping between branches. It's efficient at fetching
information from remote repositories to help speed up a user's workflow. Unlike
most VCS, git doesn't work by storing the changes that happen to each file.
Instead, on every commit, git stores a snapshot of the current state of all
files. If a file hasn't changed, rather than storing it again, it simply stores
a reference to the last saved version of the file. When you make a commit, git
captures the snapshot and also takes a cryptographic hash – a series of complex
mathematical operations on the data that produces a unique value – and uses the
output of that as a reference to the commit, along with some metadata, such as
the author. This snapshot sits on top of the rest of the snapshots/commits that
you've taken, and in this way you can think of git snapshots as a series of changesets
– operations that add or remove lines – that can be performed on your files to
get them to an older or newer state.
GitLab and Git
GitLab is built on top of git so that users who are
contributing work (editing code, writing chapters, and so on) to a project will
have a copy of the project downloaded/checked out/cloned on their local
computer. It provides a web interface for handling many of git's more advanced
workflows, and recommends a workflow for interacting with git for the best in
productivity, efficiency, and ease of use.
By acting as a single source of truth for your developers,
GitLab can help you avoid conflicts and the double handling of work while
maintaining uptime by relying on the battle-tested GitLab.com platform or your
own installation of it, working with tools including geographic replication,
disaster recovery, and automated failover.
Features
GitLab provides a number of ways to view and interact with a
git repository
There's also a branch viewer, which lets you see variations
of your work under active development. Alongside this is a tag viewer that lets
you explore specific releases of your work.
There are tools that can be used to analyze and view the
commit graph.
Among these tools are charting tools, which are used to get a
better understanding of the composition of the repository.
Self-managed versus Software as a Service (SaaS)
GitLab can be used in
one of two ways: either self-managed, where you host your own instance of
GitLab Community Edition/Enterprise Edition, or using the online platform
GitLab.com, which comes as a paid or free Software as a Service (SaaS) model.
Using GitLab.com comes with the benefits of no maintenance
or infrastructure costs and regular automatic updates without any manual
labour. They have an amazing setup with multiple backup strategies,
redundancies, and failovers to ensure high uptime and no loss of data in the
event of a major incident. On the other hand, you might not feel comfortable
putting all of your work on someone else's infrastructure, which is why GitLab
provides an easy-to-install omnibus package that can be installed on your own
computer or a server that you host. This can also be handy if you have strict
security and firewall requirements that don't allow for externally hosted code.
There's also the benefit of easy integration with your own LDAP or Active
Directory services for user management, and potential performance gains in
larger repositories from not having to shift large amounts of data over
external network links.
Free versus paid Lastly, there are multiple tiers of GitLab
for both the self-managed and SaaS versions. Please note that both versions can
be used for free and provide all of the main features that you'd expect (git
hosting, code review, issue management, testing, and deployment). The added
tiers provide extra features that are available at different levels of pricing
on a peruser, per-month basis. For example, at the lowest paid tier, you get
priority and nextbusiness-day support, and with the SaaS version, you also get
burndown charts, multiple approval requirements on merge requests, and issue
weighting. At the higher levels, more features get added, including the
following:
Service desk mode
Canary deployments
Support for multiple Kubernetes clusters
CI/CD for external
repositories
Disaster recovery
Epics
Roadmaps, and much more
Operating system
GitLab provides an omnibus package for installation on a
number of platforms. This package has everything required to run a full-fledged
GitLab instance, including the database (PostgreSQL), in-memory caching
platform (Redis), background task queue (Sidekiq), and monitoring platform
(Prometheus). This is the recommended way of installing GitLab for most
circumstances, unless you are setting up for a massive instance, want more
fine-grained control over the components, are looking to run your own public
code hosting platform, use an unsupported Unix-based OS, or are reusing other
equipment and servers. The omnibus package is currently available for the
following operating systems
Ubuntu
Debian
CentOS
OpenSUSE
Red Hat Enterprise Linux (RHEL)
Scientific Linux
Oracle Linux
If your operating system flavor of choice hasn't been
mentioned, there is still the option of a manual installation, which has been
tested on distributions including the following:
Arch Linux
Fedora
FreeBSD
Gentoo
mac OS
0 Comments:
Post a Comment
If you have any doubts . Please let me know.