[{"data":1,"prerenderedAt":863},["ShallowReactive",2],{"/topics/source-code-management":3,"navigation-en-us":161,"banner-en-us":584,"footer-en-us":594,"next-steps-en-us":853},{"id":4,"title":5,"body":6,"category":6,"config":6,"content":7,"description":6,"extension":150,"meta":151,"navigation":152,"path":153,"seo":154,"slug":6,"stem":159,"testContent":6,"type":6,"__hash__":160},"pages/en-us/topics/source-code-management/index.yml","",null,[8,18,25,123,148],{"type":9,"componentName":9,"componentContent":10},"CommonBreadcrumbs",{"crumbs":11},[12,16],{"title":13,"config":14},"Topics",{"href":15},"/topics/",{"title":17},"Source code management",{"type":19,"componentName":19,"componentContent":20},"CommonArticleHero",{"title":21,"text":22,"config":23},"Source code management explained","Source code management (SCM) is the practice of tracking, reviewing, and managing changes to source code and related project files. SCM gives software teams a reliable history of what changed, who changed it, and how changes move from development into a shared codebase and ultimately into production.",{"id":24},"source-code-management",{"type":26,"componentName":26,"componentContent":27},"CommonSideNavigationWithTree",{"anchors":28,"components":71},{"text":29,"data":30},"On this page",[31,35,39,43,47,51,55,59,63,67],{"config":32,"text":34},{"href":33},"#what-is-source-code-management","What is source code management?",{"config":36,"text":38},{"href":37},"#how-does-source-code-management-work","How does source code management work?",{"config":40,"text":42},{"href":41},"#why-is-source-code-management-important","Why is source code management important?",{"config":44,"text":46},{"href":45},"#scm-version-control-source-control","What is the difference between SCM, version control, and source control?",{"config":48,"text":50},{"href":49},"#what-are-the-main-types-of-version-control-systems","What are the main types of version control systems?",{"config":52,"text":54},{"href":53},"#what-should-you-look-for-in-an-scm-platform","What should you look for in an SCM platform?",{"config":56,"text":58},{"href":57},"#how-does-scm-support-devops-and-cicd","How does SCM support DevOps and CI/CD?",{"config":60,"text":62},{"href":61},"#how-do-you-implement-scm-with-gitlab","How do you implement SCM with GitLab?",{"config":64,"text":66},{"href":65},"#what-are-scm-best-practices","What are SCM best practices?",{"config":68,"text":70},{"href":69},"#take-the-next-step-with-gitlab","Take the next step with GitLab",[72,78,83,88,93,98,103,108,113,118],{"type":73,"componentName":73,"componentContent":74},"TopicsCopy",{"header":34,"text":75,"config":76},"SCM helps developers work in parallel without losing each other’s work. Teams can create branches, record changes in commits, review proposed updates, resolve conflicts, and return to an earlier version when necessary. In modern software development, SCM is closely connected to version control, code review, security, and [CI/CD](https://about.gitlab.com/topics/ci-cd/).\n\nSource code management uses a repository and a version-control system to organize changes to a project. The repository stores source code and may also contain configuration, build scripts, tests, documentation, and other files needed to develop and deliver the software.\n\nSCM is often used interchangeably with source control and version control. In practice, [version control](https://about.gitlab.com/topics/version-control/) describes the system that records revisions, while SCM can also refer to the broader collaboration and delivery workflows built around those revisions.\n\nA well-managed repository becomes a shared source of truth for the project. Developers can inspect the current state of the code, compare revisions, understand the context behind a change, and collaborate without relying on manually exchanged files or undocumented handoffs.",{"id":77},"what-is-source-code-management",{"type":73,"componentName":73,"componentContent":79},{"header":38,"config":80,"text":82},{"id":81},"how-does-source-code-management-work","An SCM workflow connects individual changes to a reviewed and traceable result. The exact commands and branching model vary by team, but the core process usually includes these steps:\n\n### 1. Create or clone a repository\n\nA team creates a repository for a project or clones an existing repository to a local development environment. Each developer can work with the files and history needed for their task while maintaining a connection to the shared project.\n\n### 2. Create a branch for a change\n\nA branch provides a separate line of development. Developers can work on a feature, fix, or experiment without changing the shared default branch before the work is ready. Short-lived branches can make changes easier to review and reduce the risk of unrelated work becoming entangled.\n\n### 3. Record progress in commits\n\nA commit records a set of related changes at a specific point in time. Focused commits make it easier for teammates to understand the change, review it, identify the reason for a regression, or return the project to a previous state.\n\nA useful commit message describes what changed and why. That context helps future contributors understand the project’s history without reconstructing the decision from scratch.\n\n### 4. Share and review the change\n\nDevelopers push their branch to the shared repository and open a merge request. A merge request gives reviewers a place to examine the proposed changes, discuss implementation details, check automated results, and confirm that the update meets the team’s standards.\n\nIn GitLab, merge requests can be combined with approval rules, protected branches, and automated pipelines to create a controlled path into the default branch. [*Learn more about GitLab source code management*](https://about.gitlab.com/solutions/source-code-management/).\n\n### 5. Resolve conflicts and merge\n\nWhen two branches change overlapping parts of a project, the SCM system may identify a conflict. The affected contributors can review the competing changes, decide which result is correct, and update the branch before merging.\n\nOnce the change is approved and required checks pass, it can be merged into the shared branch. The resulting history provides a record of the change and its review context.\n\n### 6. Validate, release, and recover\n\nSCM can connect a change to automated builds, tests, security checks, and deployment workflows. If an update causes an unexpected problem, the team can use the project history to compare revisions, revert a change, or restore a known-good state.",{"type":73,"componentName":73,"componentContent":84},{"header":42,"config":85,"text":87},{"id":86},"why-is-source-code-management-important","SCM reduces the operational risk of collaborative software development and gives teams a repeatable way to manage change.\n\n### Collaborate without overwriting work\n\nMultiple developers can work on separate branches and bring their changes together through review and merging. This is safer and more transparent than exchanging files manually or depending on informal coordination.\n\n### Understand what changed and why\n\nA repository history records changes over time. Teams can use commits, branches, merge requests, and related discussions to understand how a feature evolved and where a bug may have been introduced.\n\n### Improve quality through review and automation\n\nSCM makes code changes visible before they reach the shared branch. Pairing review with automated tests and other checks helps teams find problems earlier and apply consistent standards.\n\n### Recover from mistakes\n\nBecause revisions are retained, teams can compare the current state with earlier versions and undo changes when necessary. This creates a safety net for experimentation and incident recovery.\n\n### Establish governance and accountability\n\nSCM can provide controls over who can change protected branches, who must approve updates, and which checks must pass before a change is merged. Audit history can also help teams understand important actions in a project.",{"type":73,"componentName":73,"componentContent":89},{"header":46,"config":90,"text":92},{"id":91},"scm-version-control-source-control","These terms overlap, but they can emphasize different parts of the development workflow.\n\n| **Term** | **Meaning** |\n| :---- | :---- |\n| **Version control** | A system for recording, comparing, and reverting revisions to files over time. |\n| **Source control** | Another common term for version control, especially when referring to source code. |\n| **Source code management** | The practice of using version control plus collaboration, review, governance, and related workflows to manage source changes. |\n| **Repository** | The project location where source files and their revision history are stored. |",{"type":73,"componentName":73,"componentContent":94},{"header":50,"config":95,"text":97},{"id":96},"what-are-the-main-types-of-version-control-systems","Version control systems are commonly described as centralized or distributed.\n\n### Centralized version control\n\nA centralized system keeps the primary project history in one central repository. Developers typically connect to that system to obtain files and submit changes. This model can be straightforward to understand and administer, but work may depend more heavily on network access and the central service.\n\n### Distributed version control\n\nA distributed system gives developers a local copy of the repository and its history. Developers can create branches, inspect history, and make many changes locally before sharing them with the remote repository. Git is a distributed version-control system and is widely used for collaborative software development.\n\n### Choosing a model\n\nThe right model depends on the team’s workflow, repository size, connectivity, governance requirements, and operational constraints. For many modern teams, the important decision is not only how revisions are stored, but also how repository access, code review, automation, security, and compliance work together around those revisions.\n\n> How is AI changing source code management? Learn about [next-generation source code management](/topics/source-code-management/next-gen-source-code-management/) designed for software teams that work with both people and AI agents.",{"type":73,"componentName":73,"componentContent":99},{"header":54,"config":100,"text":102},{"id":101},"what-should-you-look-for-in-an-scm-platform","When evaluating an SCM platform, consider the complete workflow rather than repository storage alone.\n\n### Repository and branching capabilities\n\nLook for reliable Git support, clear repository organization, practical branching workflows, and tools that help teams work with the current version of a project.\n\n### Code review and approvals\n\nReview should be part of the change workflow. Consider merge requests or pull requests, inline discussion, required approvals, reviewer assignment, and visibility into unresolved feedback.\n\n### Access control and governance\n\nTeams may need granular permissions, protected branches, approval policies, audit events, and compliance controls. These capabilities help organizations apply consistent rules without relying entirely on manual enforcement.\n\n### Built-in CI/CD and automated checks\n\nSource changes should be easy to validate with automated builds, tests, security scans, and deployment workflows. A connected workflow reduces the risk that code review and delivery operate as disconnected processes.\n\n### Security and secret protection\n\nEvaluate how the platform helps protect source code and sensitive data. Relevant capabilities may include permission management, secret detection, vulnerability testing, and controls over who can push or merge changes.\n\n### Developer experience and integrations\n\nConsider how easily developers can clone, edit, review, and contribute. Web-based development tools, integrations, repository mirroring, and support for existing workflows can reduce adoption friction.\n\n### Scale and deployment flexibility\n\nLarge or distributed organizations should evaluate repository performance, administration, availability, data requirements, and deployment options. GitLab supports cloud-hosted, self-managed, and single-tenant deployment models for different organizational needs. [*Explore the GitLab platform*](https://about.gitlab.com/platform/).",{"type":73,"componentName":73,"componentContent":104},{"header":58,"config":105,"text":107},{"id":106},"how-does-scm-support-devops-and-cicd","SCM provides the change history and collaboration layer that automated software delivery depends on. A commit or merge request can trigger a pipeline that builds the application, runs tests, performs security checks, packages artifacts, and deploys to an environment.\n\nThis connection gives teams a traceable path from a code change to its validation and delivery outcome. It also helps teams see whether a change passed the required checks before it reaches a protected branch or production environment.\n\nGitLab includes source code management and [CI/CD](https://about.gitlab.com/topics/ci-cd/) in the same application. Its public CI/CD guidance describes the repository as the place for source code, configuration, libraries, tests, and build scripts, while its implementation guidance connects Git repositories, branching, merge approvals, protected branches, and built-in CI/CD.",{"type":73,"componentName":73,"componentContent":109},{"header":62,"config":110,"text":112},{"id":111},"how-do-you-implement-scm-with-gitlab","A practical implementation can start small and mature over time.\n\n### 1. Create or migrate a Git repository\n\nChoose the project structure, default branch, ownership model, and repository settings. If code remains in another Git provider during a transition, define how repositories and delivery workflows will stay synchronized.\n\n### 2. Choose a branching and merge strategy\n\nSelect a workflow that fits the team’s release cadence and risk profile. Define when branches are created, how long they should live, and how changes return to the default branch.\n\n### 3. Establish review and protection rules\n\nUse merge requests for collaborative changes. Define required reviewers, approval rules, protected branches, ownership responsibilities, and the conditions that must be satisfied before merging.\n\n### 4. Automate validation with CI/CD\n\nAdd pipelines that build and test changes consistently. Expand the pipeline over time with security checks, packaging, environment validation, and deployment steps that match the project’s needs.\n\n### 5. Apply security and compliance controls\n\nProtect credentials and sensitive settings, restrict high-impact actions, and document the policies that apply to repositories and delivery workflows. The right controls depend on the organization, project, and regulatory environment.\n\n### 6. Measure and improve the workflow\n\nReview signals such as time to review, time from approval to merge, failed changes, rollback frequency, and delivery performance. Use these measures to find bottlenecks, not to reward teams for maximizing activity.",{"type":73,"componentName":73,"componentContent":114},{"header":66,"config":115,"text":117},{"id":116},"what-are-scm-best-practices","* Commit focused, related changes frequently enough to create useful checkpoints.  \n* Write commit messages that explain the intent and context of the change.  \n* Start work from a current version of the repository.  \n* Use branches to isolate changes and merge requests to review them.  \n* Keep the default branch stable and protect it from unreviewed changes.  \n* Automate repeatable tests and checks before merge.  \n* Define ownership and approval responsibilities for important code.  \n* Protect secrets, credentials, and sensitive project settings.  \n* Agree on a branching and merge workflow that the team can follow consistently.  \n* Use repository history to investigate regressions and improve future changes.",{"type":73,"componentName":73,"componentContent":119},{"header":70,"config":120,"text":122},{"id":121},"take-the-next-step-with-gitlab","GitLab brings Git-based source code management, code review, CI/CD, security, and governance together in one platform. Teams can use a shared repository and branching workflow while applying the controls and automation needed to move software from change to delivery.\n\n> [**Explore GitLab source code management**](https://about.gitlab.com/solutions/source-code-management/)",{"type":124,"componentName":124,"componentContent":125},"CommonFaq",{"header":126,"groups":127},"Frequently Asked Questions",[128],{"questions":129},[130,133,136,139,142,145],{"question":131,"answer":132},"What is SCM in software development?","SCM is the practice of tracking, reviewing, and managing changes to source code and related project files. It helps teams collaborate, maintain history, resolve conflicts, and control how changes reach shared branches and production.",{"question":134,"answer":135},"Is SCM the same as version control?","SCM and version control are often used interchangeably. Version control is the system that records file revisions, while SCM can also describe the surrounding collaboration, review, governance, and delivery workflows.",{"question":137,"answer":138},"What is the difference between Git and GitLab?","Git is a distributed version-control system. GitLab is a platform that provides Git repositories along with code review, CI/CD, security, governance, and other software lifecycle capabilities.",{"question":140,"answer":141},"What is a source code repository?","A source code repository is the project location where source files and their change history are stored. It gives contributors a shared place to collaborate and provides the revision information needed to compare, review, and recover changes.",{"question":143,"answer":144},"Why are branches used in SCM?","Branches create separate lines of development so contributors can work on features, fixes, or experiments without changing the shared default branch before the work is ready. The changes can later be reviewed and merged.",{"question":146,"answer":147},"What should an enterprise consider when choosing an SCM platform?","Enterprises should consider repository and branching capabilities, code review, permissions, approvals, auditability, security, compliance, CI/CD, integrations, scale, deployment model, and developer experience.",{"type":149,"componentName":149},"CommonNextSteps","yml",{},true,"/en-us/topics/source-code-management",{"config":155,"title":157,"ogTitle":157,"description":158,"ogDescription":158},{"noIndex":156},false,"What is source code management (SCM)?","Learn what source code management (SCM) is, how version control, branching, code review, and CI/CD help teams ship secure software faster with GitLab.","en-us/topics/source-code-management/index","gSCpEeRoIRO-c2lO2QQvFVoeKO3kGPgv6IH-s67pKqo",{"logo":162,"freeTrial":167,"sales":172,"login":177,"items":182,"search":503,"minimal":535,"duo":554,"switchNav":563,"pricingDeployment":574},{"config":163},{"href":164,"dataGaName":165,"dataGaLocation":166},"/","gitlab logo","header",{"text":168,"config":169},"Get free trial",{"href":170,"dataGaName":171,"dataGaLocation":166},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":173,"config":174},"Request a demo",{"href":175,"dataGaName":176,"dataGaLocation":166},"/sales/?contact-topic=request-demo&entry=nav","sales",{"text":178,"config":179},"Sign in",{"href":180,"dataGaName":181,"dataGaLocation":166},"https://gitlab.com/users/sign_in/","sign in",[183,259,347,352,427,481],{"text":184,"left":152,"config":185,"menu":187},"Platform",{"dataNavLevelOne":186},"platform",{"type":188,"link":189,"columns":193,"feature":248},"lists",{"text":190,"config":191},"Explore the Platform",{"href":192,"dataGaName":186,"dataGaLocation":166},"/platform/",[194,212,230],{"title":195,"items":196},"Execution & Workflows",[197,202,207],{"text":198,"config":199},"CI/CD",{"href":200,"dataGaLocation":166,"dataGaName":201},"/solutions/continuous-integration/","ci/cd",{"text":203,"config":204},"Source Code Management",{"href":205,"dataGaLocation":166,"dataGaName":206},"/solutions/source-code-management/","source code management",{"text":208,"config":209},"Agile Delivery",{"href":210,"dataGaLocation":166,"dataGaName":211},"/solutions/agile-delivery/","agile delivery",{"title":213,"items":214},"Security & Governance",[215,220,225],{"text":216,"config":217},"Application Security Testing",{"href":218,"dataGaLocation":166,"dataGaName":219},"/solutions/application-security-testing/","application security testing",{"text":221,"config":222},"Governance & Compliance",{"href":223,"dataGaLocation":166,"dataGaName":224},"/solutions/software-compliance/","governance and compliance",{"text":226,"config":227},"Supply Chain Security",{"href":228,"dataGaLocation":166,"dataGaName":229},"/solutions/supply-chain/","supply chain security",{"title":231,"items":232},"Context & AI",[233,238,243],{"text":234,"config":235},"Agentic Orchestration",{"href":236,"dataGaLocation":166,"dataGaName":237},"/gitlab-duo-agent-platform/","agentic orchestration",{"text":239,"config":240},"Context Graph",{"href":241,"dataGaLocation":166,"dataGaName":242},"/gitlab-orbit/","context graph",{"text":244,"config":245},"Visibility & Measurement",{"href":246,"dataGaLocation":166,"dataGaName":247},"/solutions/visibility-measurement/","visibility and measurement",{"config":249,"title":252,"text":253,"link":254},{"background":250,"textColor":251},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","Why GitLab","One platform for speed with control across your software lifecycle.",{"text":255,"config":256},"Learn more",{"href":257,"dataGaName":258,"dataGaLocation":166},"/why-gitlab/","why gitlab",{"text":260,"left":152,"config":261,"menu":263},"Solutions",{"dataNavLevelOne":262},"solutions",{"type":188,"link":264,"columns":268,"feature":338},{"text":265,"config":266},"View all Solutions",{"href":267,"dataGaName":262,"dataGaLocation":166},"/solutions/",[269,287,305],{"title":270,"items":271},"Outcomes",[272,277,282],{"text":273,"config":274},"DevOps Modernization",{"href":275,"dataGaLocation":166,"dataGaName":276},"/assessments/devops-modernization-assessment/","devops modernization",{"text":278,"config":279},"Security Modernization",{"href":280,"dataGaLocation":166,"dataGaName":281},"/assessments/security-modernization-assessment/","security modernization",{"text":283,"config":284},"AI Modernization",{"href":285,"dataGaLocation":166,"dataGaName":286},"/assessments/ai-modernization-assessment/","ai modernization",{"title":288,"items":289},"By size",[290,295,300],{"text":291,"config":292},"Enterprise",{"href":293,"dataGaLocation":166,"dataGaName":294},"/enterprise/","enterprise",{"text":296,"config":297},"Small Business",{"href":298,"dataGaLocation":166,"dataGaName":299},"/small-business/","small business",{"text":301,"config":302},"Startups",{"href":303,"dataGaLocation":166,"dataGaName":304},"/solutions/startups/","startups",{"title":306,"items":307},"Industries",[308,313,318,323,328,333],{"text":309,"config":310},"Financial Services",{"href":311,"dataGaLocation":166,"dataGaName":312},"/solutions/finance/","financial services",{"text":314,"config":315},"Public Sector",{"href":316,"dataGaLocation":166,"dataGaName":317},"/solutions/public-sector/","public sector",{"text":319,"config":320},"Telecommunications",{"href":321,"dataGaLocation":166,"dataGaName":322},"/solutions/telecommunications/","telecommunications",{"text":324,"config":325},"Automotive",{"href":326,"dataGaLocation":166,"dataGaName":327},"/solutions/automotive/","automotive",{"text":329,"config":330},"Education",{"href":331,"dataGaLocation":166,"dataGaName":332},"/solutions/education/","education",{"text":334,"config":335},"Aerospace",{"href":336,"dataGaLocation":166,"dataGaName":337},"/solutions/aerospace/","aerospace",{"config":339,"title":340,"text":341,"link":342},{"background":250,"textColor":251},"GitLab Transcend","Catch our latest innovations announced at the last Transcend.",{"text":343,"config":344},"Read the blog",{"href":345,"dataGaName":346,"dataGaLocation":166},"/blog/gitlab-transcend-announcements/","gitlab transcend",{"text":348,"config":349},"Pricing",{"href":350,"dataGaName":351,"dataGaLocation":166,"dataNavLevelOne":351},"/pricing/","pricing",{"text":353,"config":354,"menu":356},"Resources",{"dataNavLevelOne":355},"resources",{"type":188,"link":357,"columns":361,"feature":418},{"text":358,"config":359},"View all resources",{"href":360,"dataGaName":355,"dataGaLocation":166},"/resources/",[362,390],{"title":363,"items":364},"Discover",[365,370,375,380,385],{"text":366,"config":367},"Docs",{"href":368,"dataGaName":369,"dataGaLocation":166},"https://docs.gitlab.com/","docs",{"text":371,"config":372},"University",{"href":373,"dataGaName":374,"dataGaLocation":166},"https://university.gitlab.com/","university",{"text":376,"config":377},"Demo Series",{"href":378,"dataGaName":379,"dataGaLocation":166},"/gitlab-technical-demo-series/","demo series",{"text":381,"config":382},"Demo Hub",{"href":383,"dataGaName":384,"dataGaLocation":166},"/demo-hub/","demo hub",{"text":386,"config":387},"Services",{"href":388,"dataGaName":389,"dataGaLocation":166},"/services/","services",{"title":391,"items":392},"Connect",[393,398,403,408,413],{"text":394,"config":395},"Blog",{"href":396,"dataGaName":397,"dataGaLocation":166},"/blog/","blog",{"text":399,"config":400},"Community",{"href":401,"dataGaName":402,"dataGaLocation":166},"/community/","community",{"text":404,"config":405},"Customers",{"href":406,"dataGaName":407,"dataGaLocation":166},"/customers/","customers",{"text":409,"config":410},"Partners",{"href":411,"dataGaName":412,"dataGaLocation":166},"/partners/","partners",{"text":414,"config":415},"Events",{"href":416,"dataGaName":417,"dataGaLocation":166},"/events/","events",{"config":419,"title":420,"text":421,"link":422},{"background":250,"textColor":251},"What’s new in GitLab","Stay updated with our latest features and improvements.",{"text":423,"config":424},"Read the latest",{"href":425,"dataGaName":426,"dataGaLocation":166},"/whats-new/","whats new",{"text":428,"config":429,"menu":431},"Company",{"dataNavLevelOne":430},"company",{"type":188,"columns":432},[433],{"items":434},[435,440,446,451,456,461,466,471,476],{"text":436,"config":437},"About",{"href":438,"dataGaName":439,"dataGaLocation":166},"/company/","about",{"text":441,"config":442,"footerGa":445},"Jobs",{"href":443,"dataGaName":444,"dataGaLocation":166},"/jobs/","jobs",{"dataGaName":444},{"text":447,"config":448},"Press",{"href":449,"dataGaName":450,"dataGaLocation":166},"/press/","press",{"text":452,"config":453},"Handbook",{"href":454,"dataGaName":455,"dataGaLocation":166},"https://handbook.gitlab.com/","handbook",{"text":457,"config":458},"Leadership",{"href":459,"dataGaName":460,"dataGaLocation":166},"/company/team/e-group/","leadership",{"text":462,"config":463},"Investor relations",{"href":464,"dataGaName":465,"dataGaLocation":166},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":467,"config":468},"Trust Center",{"href":469,"dataGaName":470,"dataGaLocation":166},"/security/","trust center",{"text":472,"config":473},"AI Transparency Center",{"href":474,"dataGaName":475,"dataGaLocation":166},"/ai-transparency-center/","ai transparency center",{"text":477,"config":478},"Newsletter",{"href":479,"dataGaName":480,"dataGaLocation":166},"/company/contact/#contact-forms","newsletter",{"text":482,"config":483,"menu":484},"Contact us",{"dataNavLevelOne":430},{"type":188,"columns":485},[486],{"items":487},[488,493,498],{"text":489,"config":490},"Talk to sales",{"href":491,"dataGaName":492,"dataGaLocation":166},"/sales/","talk to sales",{"text":494,"config":495},"Support portal",{"href":496,"dataGaName":497,"dataGaLocation":166},"https://support.gitlab.com/hc/en-us","support portal",{"text":499,"config":500},"Customer portal",{"href":501,"dataGaName":502,"dataGaLocation":166},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":504,"login":505,"suggestions":512},"Close",{"text":506,"link":507},"To search repositories and projects, login to",{"text":508,"config":509},"gitlab.com",{"href":180,"dataGaName":510,"dataGaLocation":511},"search login","search",{"text":513,"default":514},"Suggestions",[515,518,522,524,528,532],{"text":516,"config":517},"GitLab Duo Agent Platform",{"href":236,"dataGaName":516,"dataGaLocation":511},{"text":519,"config":520},"Code Suggestions (AI)",{"href":521,"dataGaName":519,"dataGaLocation":511},"/solutions/code-suggestions/",{"text":198,"config":523},{"href":200,"dataGaName":198,"dataGaLocation":511},{"text":525,"config":526},"GitLab on AWS",{"href":527,"dataGaName":525,"dataGaLocation":511},"/partners/technology-partners/aws/",{"text":529,"config":530},"GitLab on Google Cloud",{"href":531,"dataGaName":529,"dataGaLocation":511},"/partners/technology-partners/google-cloud-platform/",{"text":533,"config":534},"Why GitLab?",{"href":257,"dataGaName":533,"dataGaLocation":511},{"freeTrial":536,"mobileIcon":541,"desktopIcon":546,"secondaryButton":549},{"text":537,"config":538},"Start free trial",{"href":539,"dataGaName":171,"dataGaLocation":540},"https://gitlab.com/-/trials/new/","nav",{"altText":542,"config":543},"Gitlab Icon",{"src":544,"dataGaName":545,"dataGaLocation":540},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":542,"config":547},{"src":548,"dataGaName":545,"dataGaLocation":540},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":550,"config":551},"Get Started",{"href":552,"dataGaName":553,"dataGaLocation":540},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":555,"mobileIcon":559,"desktopIcon":561},{"text":556,"config":557},"Learn more about GitLab Duo",{"href":236,"dataGaName":558,"dataGaLocation":540},"gitlab duo",{"altText":542,"config":560},{"src":544,"dataGaName":545,"dataGaLocation":540},{"altText":542,"config":562},{"src":548,"dataGaName":545,"dataGaLocation":540},{"button":564,"mobileIcon":569,"desktopIcon":571},{"text":565,"config":566},"/switch",{"href":567,"dataGaName":568,"dataGaLocation":540},"#contact","switch",{"altText":542,"config":570},{"src":544,"dataGaName":545,"dataGaLocation":540},{"altText":542,"config":572},{"src":573,"dataGaName":545,"dataGaLocation":540},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":575,"mobileIcon":580,"desktopIcon":582},{"text":576,"config":577},"Back to pricing",{"href":350,"dataGaName":578,"dataGaLocation":540,"icon":579},"back to pricing","GoBack",{"altText":542,"config":581},{"src":544,"dataGaName":545,"dataGaLocation":540},{"altText":542,"config":583},{"src":548,"dataGaName":545,"dataGaLocation":540},{"title":585,"button":586,"config":592},"Ship at agent speed. Prove every step. Transcend returns on October 6.",{"text":587,"config":588},"Register now",{"href":589,"dataGaName":590,"dataGaLocation":591},"/events/transcend/virtual/#register","transcend-october-2026-banner","global-banner",{"layout":593,"disabled":156},"release",{"data":595},{"text":596,"source":597,"edit":603,"contribute":608,"config":613,"items":618,"minimal":842},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":598,"config":599},"View page source",{"href":600,"dataGaName":601,"dataGaLocation":602},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":604,"config":605},"Edit this page",{"href":606,"dataGaName":607,"dataGaLocation":602},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":609,"config":610},"Please contribute",{"href":611,"dataGaName":612,"dataGaLocation":602},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":614,"facebook":615,"youtube":616,"linkedin":617},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[619,666,721,769,810],{"title":348,"links":620,"subMenu":635},[621,625,630],{"text":622,"config":623},"View plans",{"href":350,"dataGaName":624,"dataGaLocation":602},"view plans",{"text":626,"config":627},"Why Premium?",{"href":628,"dataGaName":629,"dataGaLocation":602},"/pricing/premium/","why premium",{"text":631,"config":632},"Why Ultimate?",{"href":633,"dataGaName":634,"dataGaLocation":602},"/pricing/ultimate/","why ultimate",[636],{"title":637,"links":638},"Contact Us",[639,642,644,646,651,656,661],{"text":640,"config":641},"Contact sales",{"href":491,"dataGaName":176,"dataGaLocation":602},{"text":494,"config":643},{"href":496,"dataGaName":497,"dataGaLocation":602},{"text":499,"config":645},{"href":501,"dataGaName":502,"dataGaLocation":602},{"text":647,"config":648},"Status",{"href":649,"dataGaName":650,"dataGaLocation":602},"https://status.gitlab.com/","status",{"text":652,"config":653},"Terms of use",{"href":654,"dataGaName":655,"dataGaLocation":602},"/terms/","terms of use",{"text":657,"config":658},"Privacy statement",{"href":659,"dataGaName":660,"dataGaLocation":602},"/privacy/","privacy statement",{"text":662,"config":663},"Cookie preferences",{"dataGaName":664,"dataGaLocation":602,"id":665,"isOneTrustButton":152},"cookie preferences","ot-sdk-btn",{"title":184,"links":667,"subMenu":679},[668,671,673,675,677],{"text":669,"config":670},"Explore the platform",{"href":192,"dataGaName":186,"dataGaLocation":602},{"text":234,"config":672},{"href":236,"dataGaName":237,"dataGaLocation":602},{"text":198,"config":674},{"href":200,"dataGaName":201,"dataGaLocation":602},{"text":239,"config":676},{"href":241,"dataGaName":242,"dataGaLocation":602},{"text":252,"config":678},{"href":257,"dataGaName":258,"dataGaLocation":602},[680],{"title":13,"links":681},[682,686,691,696,701,706,711,716],{"text":198,"config":683},{"href":684,"dataGaName":685,"dataGaLocation":602},"/topics/ci-cd/","cicd",{"text":687,"config":688},"GitOps",{"href":689,"dataGaName":690,"dataGaLocation":602},"/topics/gitops/","gitops",{"text":692,"config":693},"DevOps",{"href":694,"dataGaName":695,"dataGaLocation":602},"/topics/devops/","devops",{"text":697,"config":698},"Version Control",{"href":699,"dataGaName":700,"dataGaLocation":602},"/topics/version-control/","version control",{"text":702,"config":703},"DevSecOps",{"href":704,"dataGaName":705,"dataGaLocation":602},"/topics/devsecops/","devsecops",{"text":707,"config":708},"Cloud Native",{"href":709,"dataGaName":710,"dataGaLocation":602},"/topics/cloud-native/","cloud native",{"text":712,"config":713},"AI for Coding",{"href":714,"dataGaName":715,"dataGaLocation":602},"/topics/devops/ai-for-coding/","ai for coding",{"text":717,"config":718},"Agentic AI",{"href":719,"dataGaName":720,"dataGaLocation":602},"/topics/agentic-ai/","agentic ai",{"title":260,"links":722},[723,726,729,732,735,738,740,742,744,746,748,751,753,756,760,765],{"text":724,"config":725},"DevOps modernization",{"href":275,"dataGaName":276,"dataGaLocation":602},{"text":727,"config":728},"Security modernization",{"href":280,"dataGaName":281,"dataGaLocation":602},{"text":730,"config":731},"AI modernization",{"href":285,"dataGaName":286,"dataGaLocation":602},{"text":733,"config":734},"Financial services",{"href":311,"dataGaName":312,"dataGaLocation":602},{"text":736,"config":737},"Public sector",{"href":316,"dataGaName":317,"dataGaLocation":602},{"text":319,"config":739},{"href":321,"dataGaName":322,"dataGaLocation":602},{"text":324,"config":741},{"href":326,"dataGaName":327,"dataGaLocation":602},{"text":329,"config":743},{"href":331,"dataGaName":332,"dataGaLocation":602},{"text":334,"config":745},{"href":336,"dataGaName":337,"dataGaLocation":602},{"text":291,"config":747},{"href":293,"dataGaName":294,"dataGaLocation":602},{"text":749,"config":750},"Small business",{"href":298,"dataGaName":299,"dataGaLocation":602},{"text":301,"config":752},{"href":303,"dataGaName":304,"dataGaLocation":602},{"text":687,"config":754},{"href":755,"dataGaName":690,"dataGaLocation":602},"/solutions/gitops/",{"text":757,"config":758},"Software composition analysis",{"href":228,"dataGaName":759,"dataGaLocation":602},"software composition analysis",{"text":761,"config":762},"Value stream management",{"href":763,"dataGaName":764,"dataGaLocation":602},"/solutions/value-stream-management/","value stream management",{"text":766,"config":767},"All solutions",{"href":267,"dataGaName":768,"dataGaLocation":602},"all solutions",{"title":353,"links":770},[771,776,781,783,785,787,789,791,793,795,797,799,801,803,806],{"text":772,"config":773},"Install",{"href":774,"dataGaName":775,"dataGaLocation":602},"/install/","install",{"text":777,"config":778},"Quick start guides",{"href":779,"dataGaName":780,"dataGaLocation":602},"/get-started/","quick setup checklists",{"text":366,"config":782},{"href":368,"dataGaName":369,"dataGaLocation":602},{"text":371,"config":784},{"href":373,"dataGaName":374,"dataGaLocation":602},{"text":376,"config":786},{"href":378,"dataGaName":379,"dataGaLocation":602},{"text":381,"config":788},{"href":383,"dataGaName":384,"dataGaLocation":602},{"text":386,"config":790},{"href":388,"dataGaName":389,"dataGaLocation":602},{"text":394,"config":792},{"href":396,"dataGaName":397,"dataGaLocation":602},{"text":399,"config":794},{"href":401,"dataGaName":402,"dataGaLocation":602},{"text":404,"config":796},{"href":406,"dataGaName":407,"dataGaLocation":602},{"text":409,"config":798},{"href":411,"dataGaName":412,"dataGaLocation":602},{"text":414,"config":800},{"href":416,"dataGaName":417,"dataGaLocation":602},{"text":477,"config":802},{"href":479,"dataGaName":480,"dataGaLocation":602},{"text":804,"config":805},"What's new",{"href":425,"dataGaName":426,"dataGaLocation":602},{"text":807,"config":808},"All resources",{"href":360,"dataGaName":809,"dataGaLocation":602},"all resources",{"title":428,"links":811},[812,814,816,818,820,822,824,826,828,832,837],{"text":436,"config":813},{"href":438,"dataGaName":430,"dataGaLocation":602},{"text":441,"config":815},{"href":443,"dataGaName":444,"dataGaLocation":602},{"text":447,"config":817},{"href":449,"dataGaName":450,"dataGaLocation":602},{"text":452,"config":819},{"href":454,"dataGaName":455,"dataGaLocation":602},{"text":457,"config":821},{"href":459,"dataGaName":460,"dataGaLocation":602},{"text":462,"config":823},{"href":464,"dataGaName":465,"dataGaLocation":602},{"text":467,"config":825},{"href":469,"dataGaName":470,"dataGaLocation":602},{"text":472,"config":827},{"href":474,"dataGaName":475,"dataGaLocation":602},{"text":829,"config":830},"Sustainability",{"href":831,"dataGaName":829,"dataGaLocation":602},"/sustainability/",{"text":833,"config":834},"Diversity, inclusion and belonging (DIB)",{"href":835,"dataGaName":836,"dataGaLocation":602},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":838,"config":839},"Modern Slavery Transparency Statement",{"href":840,"dataGaName":841,"dataGaLocation":602},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":843},[844,847,850],{"text":845,"config":846},"Terms",{"href":654,"dataGaName":655,"dataGaLocation":602},{"text":848,"config":849},"Cookies",{"dataGaName":664,"dataGaLocation":602,"id":665,"isOneTrustButton":152},{"text":851,"config":852},"Privacy",{"href":659,"dataGaName":660,"dataGaLocation":602},{"header":854,"blurb":855,"button":856,"secondaryButton":861},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":857,"config":858},"Get your free trial",{"href":859,"dataGaName":171,"dataGaLocation":860},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":640,"config":862},{"href":491,"dataGaName":176,"dataGaLocation":860},1790338530386]