Highlights the important questions to ask and consider while evaluating Azure DevOps and GitLab for your DevOps needs.
Highlights the important questions to ask and consider while evaluating Azure DevOps and GitLab for your DevOps needs.
Explore these links for deeper insights on how Azure DevOps and GitLab compare.
- Side by side product comparisons
- Information for business decision makers
- and much more.
Step by step instructions on running GitLab within your Azure Cloud environment. GitLab is cloud agnostic and supports AWS, GCP and Azure Cloud.
FEATURES |
![]() |
|
---|---|---|
The most comprehensive import feature set
GitLab can import projects and issues from more sources (GitHub, Bitbucket, Google Code, FogBugz, Gitea and from any Git URL) than GitHub or any other VCS. We even have you covered for your move from SVN to Git with comprehensive guides and documentation. |
|
|
Lock Discussion
Lock down continued discussion in an issue or merge request as a Maintainer role or higher, to prevent further abuse, spam, or unproductive collaboration. |
|
|
Custom Notifications
Be notified by email, Slack, or to-do items anytime there are changes to an issue or merge request. |
|
|
Rich Object Summary on Link Hover
View an information-rich summary by hovering over links to users, issues, merge requests, and other objects in GitLab. |
|
|
Git has smaller size requirements
A single repository in Git is typically a number of times smaller than the same repository in SVN. |
|
|
Powerful branching
A branch in Git contains the entire history that precedes it. It’s also created or moved towards instantly and easily shared. |
|
|
Protected branches
Granular permissions for branches you want to protect. |
|
|
Commit graph and reporting tools
GitLab provides commit graphs and reporting tools about collaborators’ work. |
|
|
Required Merge Request Approvals
When a project needs multiple sign-offs, you can require every merge request to be approved before merging. With Required Merge Request Approvals you can set the number of necessary approvals and predefine a list of specific approvers. In turn, guarantee the quality and the standards of your code. |
|
|
Multiple approvers in code review
In GitLab, to ensure strict code review, you can require a minimum number of users to approve of a merge request before it is able to be merged. You can undo an approval by removing it after the fact. |
|
|
Approval rules for code review
Make sure the right people review merge requests with approval rules by specifying lists of eligible approvers, the minimum number of approvals for each, and which target branches they protect. This makes it easy to request review from different teams like Engineering, UX and Product. |
|
|
Search files with fuzzy file finder
GitLab provides a way to search a file in your repository in one keystroke. |
|
|
Fast-forward merge with option to rebase
With this setting at the project level, you can ensure that no merge commits are created and all merges are fast-forwarded. When a fast-forward merge is not possible, the user is given the option to rebase. |
|
|
Squash and merge
Combine commits into one so that main branch has a simpler to follow and revert history. |
|
|
Reject unsigned commits
GitLab Premium allows you to enforce GPG signatures by rejecting unsigned commits. |
|
|
Verified Committer
Verify that a push only contains commits by the same user performing the push. In development for GitLab. Follow this link for more information. |
|
|
Cherry-picking changes
Cherry-pick any commit in the UI by simply clicking the Cherry-Pick button in a merged merge request or a specific commit. |
|
|
GPG Signed Commits
Sign commits and prove that a commit was performed by a certain user. |
|
|
Restrict push and merge access to certain users
Extend the base functionality of protected branches and choose which users can push or merge to a protected branch. |
|
|
Protected tags
Granular permissions for tags you want to protect. |
|
|
S/MIME Signed Commits
Sign commits and prove that a commit was performed by a certain user. |
|
|
Optional Merge Request Approvals
Code review is an essential practice of every successful project, and giving your approval once a merge request is in good shape is an important part of the review process, as it clearly communicates the ability to merge the change. |
|
|
Image Discussions
Within a commit view or a merge request diff view, and with respect to a specific location of an image, you can have a resolvable discussion. Have multiple discussions specifying different areas of an image. |
|
|
Merge Request Commit Discussions
Comment on a commit within the context of a merge request itself |
|
|
Create merge request from email
Create a merge request from email by sending in the merge request title, description, and source branch name. Alternatively use patch files to create a merge request without first pushing a branch. |
|
|
First time contributor badge
Highlight first-time contributors in a project. |
|
|
Deduplicate Git objects for forked repositories
Reduce disk storage requirements of forked Git repositories by pooling Git objects. |
|
|
Variable replication factor
Allow configuration of a per-repository replication factor for repositories stored in the Gitaly Cluster. |
|
|
Web IDE
Contribute to projects faster by using the Web IDE to avoid context switching in your local development environment. The Web IDE is integrated with merge requests and GitLab CI so that you can resolve feedback, fix failing tests and preview changes live with client side evaluation without leaving the Web IDE. |
|
|
Live Preview in the Web IDE
Preview changes as you make them to your JavaScript and static HTML projects with Live Preview in the Web IDE. |
|
|
Web Terminal for Web IDE
Interact with your code in a Web Terminal in the Web IDE to inspect API responses, experiment in a REPL, or compile your code. |
|
|
File Syncing to Web Terminal
Changes made in the Web IDE will now be synced to the Web Terminal. User changes made in the Web IDE can now be tested within the Web Terminal before committing them to the project. |
|
|
EditorConfig in the Web IDE
The Web IDE supports the use of |
|
|
Paste images in Markdown in the Web IDE
When editing Markdown files in the Web IDE you can now paste images into the content so that they’ll be automatically uploaded and referenced in the content. |
|
|
Real-time feedback for .gitlab-ci.yml in Web IDE
To make it easier to configure your GitLab CI pipeline, the Web IDE now provides real-time linting and completion when editing Learn more about .gitlab-ci.yml editing feedback in the Web IDE |
|
|
Wiki based project documentation
A separate system for documentation called Wiki, is built right into each GitLab project. Every Wiki is a separate Git repository. |
|
|
Design Management
Design Management allows users to upload design assets (such as wireframes and mockups) to GitLab Issues and keep them stored in one single place, giving product designers, managers, and engineers a seamless way to collaborate on design proposals. They can be easily uploaded and are stored in versions. You can start a thread by clicking on the image on the exact location you would like the discussion to be focused on. |
|
|
GitLab-Figma Plugin
Our Figma plugin allows you to upload Figma frames and components to GitLab issues. |
|
|
Preview your changes with Review Apps
With GitLab CI/CD you can create a new environment for each one of your branches, speeding up your development process. Spin up dynamic environments for your merge requests with the ability to preview your branch in a live environment. Review Apps support both static and dynamic URLs. |
|
|
Ease of migration from other providers
GitLab lets you easily migrate all repos, issues and merge request data from your previous provider. |
|
|
Import from GitLab.com
Import projects from GitLab.com to a private GitLab instance. |
|
|
Limit project size at a global, group, and project level
Ensure that disk space usage is under control. |
|
|
Merge Requests
Create merge requests and @mention team members to review and safely merge your changes. |
|
|
Merge conflict resolution
Preview merge conflicts in the GitLab UI and tell Git which version to use. |
|
|
Merge when pipeline succeeds
When reviewing a merge request that looks ready to merge but still has one or more CI/CD jobs running, you can set it to be merged automatically when the jobs pipeline succeeds with a single click. No configuration required. |
|
|
Revert specific commits or a merge request from the UI
Revert any commit or a single merge request from GitLab’s UI, with a click of a button. Learn how to revert a commit or a merge request from the GitLab UI. |
|
|
Merge request versions
View and compare merge request diffs from the merge request UI. |
|
|
Inline commenting and discussion resolution
Code or text review is faster and more effective with inline comments in merge requests. Leave comments and resolve discussions on specific lines of code. In GitLab, Merge Request inline comments are interpreted as a discussion and can be left on any line, changed or unchanged. You can configure your project to only accept merge requests when all discussions are resolved. |
|
|
Activity Stream
View a list of the latest commits, merges, comments, and team members on your project. |
|
|
Draft merge requests
Prevent merge requests from accidentally being accepted before they’re completely ready by marking them as Draft. This gives you all the code review power of merge requests, while protecting unfinished work. |
|
|
Built-in and custom project templates
When creating a new project, you can choose to kickstart your project from a predefined template that already has some working example code and CI preconfigured. In addition, you can define a custom project templates by assigning a group. Child projects of this group are available as templates when creating a new project. |
|
|
Vulnerability Management
GitLab’s vulnerability management is about ensuring assets and applications are scanned for vulnerabilities. It also includes the processes to record, manage, and mitigate those vulnerabilities. Vulnerability management helps identify meaningful sets of vulnerabilities, in both your assets and application code, that can be mitigated, managed, and acted upon by your whole team—not just the security organization. It also provides a unified interface to the systems teams are already using for managing results from the ~”devops::secure” stage so there is always a single source of truth and single place for managing security results. |
|
|
Create projects with Git push
Push new projects to the desired location and a new private project will automatically be created. |
|
|
Pipeline status visible in pull/merge request
Status and results of pipeline runs are viewable at least in summary from the merge/pull request that they are part of. |
|
|