[{"data":1,"prerenderedAt":813},["ShallowReactive",2],{"/en-us/topics/version-control/version-control-best-practices/":3,"navigation-en-us":157,"banner-en-us":572,"footer-en-us":587,"next-steps-en-us":798},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"seo":8,"content":11,"_id":151,"_type":152,"title":7,"_source":153,"_file":154,"_stem":155,"_extension":156},"/en-us/topics/version-control/version-control-best-practices","version-control",false,"",{"title":9,"ogTitle":9,"description":10,"ogDescription":10},"What are Git version control best practices?","Making the most of Git involves learning best practices to streamline workflows and ensure consistency across a codebase.",[12,26,31,119,149],{"type":13,"componentName":13,"componentContent":14},"CommonBreadcrumbs",{"crumbs":15},[16,20,24],{"title":17,"config":18},"Topics",{"href":19},"/topics/",{"title":21,"config":22},"Version control",{"href":23},"/topics/version-control/",{"title":25},"Version control best practices",{"type":27,"componentName":27,"componentContent":28},"TopicsHero",{"title":9,"text":10,"config":29},{"id":30,"twoColumns":6},"what-are-git-version-control-best-practices?",{"type":32,"componentName":32,"componentContent":33},"CommonSideNavigationWithTree",{"anchors":34,"components":69},{"text":35,"data":36},"On this page",[37,41,45,49,53,57,61,65],{"text":38,"config":39},"The importance of Git version control best practices",{"href":40},"#the-importance-of-git-version-control-best-practices",{"text":42,"config":43},"Make incremental, small changes",{"href":44},"#make-incremental-small-changes",{"text":46,"config":47},"Keep commits atomic",{"href":48},"#keep-commits-atomic",{"text":50,"config":51},"Develop using branches",{"href":52},"#develop-using-branches",{"text":54,"config":55},"Write descriptive commit messages",{"href":56},"#write-descriptive-commit-messages",{"text":58,"config":59},"Obtain feedback through code reviews",{"href":60},"#obtain-feedback-through-code-reviews",{"text":62,"config":63},"Identify a branching strategy",{"href":64},"#identify-a-branching-strategy",{"text":66,"config":67},"Conclusion",{"href":68},"#conclusion",[70,76,81,86,91,96,101,106,111],{"type":71,"componentName":71,"componentContent":72},"TopicsCopy",{"header":38,"text":73,"config":74},"[Git version control](/topics/version-control/){data-ga-name=\"git version control\" data-ga-location=\"body\"} best practices help software development teams meet the demands of rapid changes in the industry combined with increasing customer demand for new features. The speed at which teams must work can lead teams to silos, which slows down velocity. Software development teams turn to version control to [streamline collaboration](/topics/version-control/software-team-collaboration/){data-ga-name=\"streamline collaboration\" data-ga-location=\"body\"} and break down information silos.\n\nUsing [Git best practices](/images/press/git-cheat-sheet.pdf){data-ga-name=\"git best practices\" data-ga-location=\"body\"}, teams can coordinate all changes in a software project and utilize fast branching to help teams quickly collaborate and share feedback, leading to immediate, actionable changes. Git, as a cornerstone of modern software development, offers a suite of powerful tools and features designed to streamline development cycles, enhance code quality, and foster collaboration among team members.\n",{"id":75},"the-importance-of-git-version-control-best-practices",{"type":71,"componentName":71,"componentContent":77},{"header":42,"text":78,"config":79},"Write the smallest amount of code possible to solve a problem. After identifying a problem or enhancement, the best way to try something new and untested is to divide the update into small batches of value that can easily and rapidly be tested with the end user to prove the validity of the proposed solution and to roll back in case it doesn't work without deprecating the whole new functionality.\n\n\nCommitting code in small batches decreases the likelihood of integration conflicts, because the longer a branch lives separated from the main branch or codeline, the longer other developers are merging changes to the main branch, so integration conflicts will likely arise when merging. Frequent, small commits solves this problem. Incremental changes also help team members easily revert if merge conflicts happen, especially when those changes have been properly documented in the form of descriptive commit messages.\n",{"id":80},"make-incremental-small-changes",{"type":71,"componentName":71,"componentContent":82},{"header":46,"text":83,"config":84},"Related to making small changes, atomic commits are a single unit of work, involving only one task or one fix (e.g. upgrade, bug fix, refactor). Atomic commits make code reviews faster and reverts easier, since they can be applied or reverted without any unintended side effects.\n\n\nThe goal of atomic commits isn't to create hundreds of commits but to group commits by context. For example, if a developer needs to refactor code and add a new feature, she would create two separate commits rather than create a monolithic commit which includes changes with different purposes.\n",{"id":85},"keep-commits-atomic",{"type":71,"componentName":71,"componentContent":87},{"header":50,"text":88,"config":89},"Using branches, software development teams can make changes without affecting the main codeline. The running history of changes are tracked in a branch, and when the code is ready, it's merged into the main branch.\n\n\nBranching organizes development and separates work in progress from stable, tested code in the main branch. Developing in branches ensures that bugs and vulnerabilities don't work their way into the source code and impact users, since testing and finding those in a branch is easier.\n",{"id":90},"develop-using-branches",{"type":71,"componentName":71,"componentContent":92},{"header":54,"text":93,"config":94},"Descriptive commit messages are as important as a change itself. Write descriptive commit messages starting with a verb in present tense in imperative mood to indicate the purpose of each commit in a clear and concise manner. Each commit should only have a single purpose explained in detail in the commit message. The [Git documentation](https://git.kernel.org/pub/scm/git/git.git/tree/Documentation/SubmittingPatches?id=HEAD#n133) provides guidance on how to write descriptive commit messages:\n\n\n> Describe your changes in imperative mood, e.g. “make xyzzy do frotz” instead of “\\[This patch] makes xyzzy do frotz” or “\\[I] changed xyzzy to do frotz,” as if you are giving orders to the codebase to change its behavior. Try to make sure your explanation can be understood without external resources. Instead of giving a URL to a mailing list archive, summarize the relevant points of the discussion.\n\n\nWriting commit messages in this way forces software teams to understand the value an add or fix makes to the existing code line. If teams find it impossible to find the value and describe it, then it might be worth reassessing the motivations behind the commit. There's always time to commit later, as long changes are stashed and there's consistency in commits.\n",{"id":95},"write-descriptive-commit-messages",{"type":71,"componentName":71,"componentContent":97},{"header":58,"text":98,"config":99},"Requesting feedback from others is an excellent way to ensure code quality. [Code reviews](/topics/version-control/what-is-code-review/){data-ga-name=\"code reviews\" data-ga-location=\"body\"} are an effective method to identify whether a proposal solves a problem in the most effective way possible. Asking individuals from other teams to review code is important, because some areas of the code base might include specific domain knowledge or even security implications beyond the individual contributor's attributions.\n\n\nBringing in a specific stakeholder to the conversation is a good practice and creates a faster feedback loop that prevents problems later in the software development lifecycle. This is especially important for junior developers, because through code review, senior developers can transfer knowledge in a very practical, hands on manner.\n",{"id":100},"obtain-feedback-through-code-reviews",{"type":71,"componentName":71,"componentContent":102},{"header":62,"text":103,"config":104},"Software development teams include professionals with diverse experiences and background, which can potentially cause conflicting workflows. Determining a single branching strategy is the solution to a chaotic development experience.\n\n\nWhile there are several approaches to development, the most common are:\n\n\n* Centralized workflow: Teams use only a single repository and commit directly to the main branch.\n\n* Feature branching: Teams use a new branch for each feature and don't commit directly to the main branch.\n\n* GitFlow: An extreme version of feature branching in which development occurs on the develop branch, moves to a release branch, and merges into the main branch.\n\n* Personal branching: Similar to feature branching, but rather than develop on a branch per feature, it's per developer. Every user merges to the main branch when they complete their work.\n\n\nMany teams decide to follow an established workflow, but others create a customized approach based on specific needs. Regardless of the strategy, it's important to communicate the decision and workflow logistics to team members and provide training if the approach is new to some members.\n",{"id":105},"identify-a-branching-strategy",{"type":71,"componentName":71,"componentContent":107},{"header":66,"text":108,"config":109},"Adopting Git version control best practices is crucial for software development teams, enabling them to leverage powerful features and tools that enhance development workflows and version history management. It ensures efficient collaboration among team members, streamlines the review process, and safeguards the integrity of software code. The Integration of version control systems into the development cycle has become a fundamental requirement.\n\nThe benefits of version control are undeniable, offering a roadmap to success for organizations looking to thrive in the competitive landscape of software development. By adopting these best practices, teams can set the stage for future growth and innovation.\n",{"id":110},"conclusion",{"type":112,"componentName":112,"componentContent":113},"TopicsCallToAction",{"subtitle":114,"primaryButton":115},"Discover how GitLab helps teams create high quality code",{"text":116,"config":117},"Learn More",{"href":118},"/solutions/source-code-management/",{"type":120,"componentName":120,"componentContent":121},"CommonResourcesContainer",{"header":122,"tabs":123},"Want to learn more about Git and best practices?",[124],{"name":125,"items":126,"config":148},"resources",[127,138],{"header":128,"type":129,"image":130,"link":133},"Learn how Worldline uses GitLab to improve code reviews","Case Study",{"altText":128,"config":131},{"src":132},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749157557/Website/Topics/resources_10.jpg",{"text":134,"config":135},"Learn more",{"href":136,"icon":137,"modal":6},"/customers/worldline/","Web",{"header":139,"type":140,"image":141,"link":144},"Discover a Git branching strategy to simplify software development","Books",{"altText":139,"config":142},{"src":143},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749157556/Website/Topics/resources_1.jpg",{"text":134,"config":145},{"href":146,"icon":147,"modal":6},"/resources/ebook-git-branching-strategies/","Book",{"key":125},{"type":150,"componentName":150},"CommonNextSteps","content:en-us:topics:version-control:version-control-best-practices:index.yml","yaml","content","en-us/topics/version-control/version-control-best-practices/index.yml","en-us/topics/version-control/version-control-best-practices/index","yml",{"_path":158,"_dir":159,"_draft":6,"_partial":6,"_locale":7,"data":160,"_id":568,"_type":152,"title":569,"_source":153,"_file":570,"_stem":571,"_extension":156},"/shared/en-us/main-navigation","en-us",{"logo":161,"freeTrial":166,"sales":171,"login":176,"items":181,"search":509,"minimal":540,"duo":559},{"config":162},{"href":163,"dataGaName":164,"dataGaLocation":165},"/","gitlab logo","header",{"text":167,"config":168},"Get free trial",{"href":169,"dataGaName":170,"dataGaLocation":165},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":172,"config":173},"Talk to sales",{"href":174,"dataGaName":175,"dataGaLocation":165},"/sales/","sales",{"text":177,"config":178},"Sign in",{"href":179,"dataGaName":180,"dataGaLocation":165},"https://gitlab.com/users/sign_in/","sign in",[182,225,320,325,430,490],{"text":183,"config":184,"cards":186,"footer":208},"Platform",{"dataNavLevelOne":185},"platform",[187,193,201],{"title":183,"description":188,"link":189},"The most comprehensive AI-powered DevSecOps Platform",{"text":190,"config":191},"Explore our Platform",{"href":192,"dataGaName":185,"dataGaLocation":165},"/platform/",{"title":194,"description":195,"link":196},"GitLab Duo (AI)","Build software faster with AI at every stage of development",{"text":197,"config":198},"Meet GitLab Duo",{"href":199,"dataGaName":200,"dataGaLocation":165},"/gitlab-duo/","gitlab duo ai",{"title":202,"description":203,"link":204},"Why GitLab","10 reasons why Enterprises choose GitLab",{"text":134,"config":205},{"href":206,"dataGaName":207,"dataGaLocation":165},"/why-gitlab/","why gitlab",{"title":209,"items":210},"Get started with",[211,216,221],{"text":212,"config":213},"Platform Engineering",{"href":214,"dataGaName":215,"dataGaLocation":165},"/solutions/platform-engineering/","platform engineering",{"text":217,"config":218},"Developer Experience",{"href":219,"dataGaName":220,"dataGaLocation":165},"/developer-experience/","Developer experience",{"text":222,"config":223},"MLOps",{"href":224,"dataGaName":222,"dataGaLocation":165},"/topics/devops/the-role-of-ai-in-devops/",{"text":226,"left":227,"config":228,"link":230,"lists":234,"footer":302},"Product",true,{"dataNavLevelOne":229},"solutions",{"text":231,"config":232},"View all Solutions",{"href":233,"dataGaName":229,"dataGaLocation":165},"/solutions/",[235,259,281],{"title":236,"description":237,"link":238,"items":243},"Automation","CI/CD and automation to accelerate deployment",{"config":239},{"icon":240,"href":241,"dataGaName":242,"dataGaLocation":165},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[244,248,252,255],{"text":245,"config":246},"CI/CD",{"href":247,"dataGaLocation":165,"dataGaName":245},"/solutions/continuous-integration/",{"text":249,"config":250},"AI-Assisted Development",{"href":199,"dataGaLocation":165,"dataGaName":251},"AI assisted development",{"text":253,"config":254},"Source Code Management",{"href":118,"dataGaLocation":165,"dataGaName":253},{"text":256,"config":257},"Automated Software Delivery",{"href":241,"dataGaLocation":165,"dataGaName":258},"Automated software delivery",{"title":260,"description":261,"link":262,"items":267},"Security","Deliver code faster without compromising security",{"config":263},{"href":264,"dataGaName":265,"dataGaLocation":165,"icon":266},"/solutions/security-compliance/","security and compliance","ShieldCheckLight",[268,271,276],{"text":269,"config":270},"Security & Compliance",{"href":264,"dataGaLocation":165,"dataGaName":269},{"text":272,"config":273},"Software Supply Chain Security",{"href":274,"dataGaLocation":165,"dataGaName":275},"/solutions/supply-chain/","Software supply chain security",{"text":277,"config":278},"Compliance & Governance",{"href":279,"dataGaLocation":165,"dataGaName":280},"/solutions/continuous-software-compliance/","Compliance and governance",{"title":282,"link":283,"items":288},"Measurement",{"config":284},{"icon":285,"href":286,"dataGaName":287,"dataGaLocation":165},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[289,293,297],{"text":290,"config":291},"Visibility & Measurement",{"href":286,"dataGaLocation":165,"dataGaName":292},"Visibility and Measurement",{"text":294,"config":295},"Value Stream Management",{"href":296,"dataGaLocation":165,"dataGaName":294},"/solutions/value-stream-management/",{"text":298,"config":299},"Analytics & Insights",{"href":300,"dataGaLocation":165,"dataGaName":301},"/solutions/analytics-and-insights/","Analytics and insights",{"title":303,"items":304},"GitLab for",[305,310,315],{"text":306,"config":307},"Enterprise",{"href":308,"dataGaLocation":165,"dataGaName":309},"/enterprise/","enterprise",{"text":311,"config":312},"Small Business",{"href":313,"dataGaLocation":165,"dataGaName":314},"/small-business/","small business",{"text":316,"config":317},"Public Sector",{"href":318,"dataGaLocation":165,"dataGaName":319},"/solutions/public-sector/","public sector",{"text":321,"config":322},"Pricing",{"href":323,"dataGaName":324,"dataGaLocation":165,"dataNavLevelOne":324},"/pricing/","pricing",{"text":326,"config":327,"link":328,"lists":332,"feature":417},"Resources",{"dataNavLevelOne":125},{"text":329,"config":330},"View all resources",{"href":331,"dataGaName":125,"dataGaLocation":165},"/resources/",[333,366,389],{"title":334,"items":335},"Getting started",[336,341,346,351,356,361],{"text":337,"config":338},"Install",{"href":339,"dataGaName":340,"dataGaLocation":165},"/install/","install",{"text":342,"config":343},"Quick start guides",{"href":344,"dataGaName":345,"dataGaLocation":165},"/get-started/","quick setup checklists",{"text":347,"config":348},"Learn",{"href":349,"dataGaLocation":165,"dataGaName":350},"https://university.gitlab.com/","learn",{"text":352,"config":353},"Product documentation",{"href":354,"dataGaName":355,"dataGaLocation":165},"https://docs.gitlab.com/","product documentation",{"text":357,"config":358},"Best practice videos",{"href":359,"dataGaName":360,"dataGaLocation":165},"/getting-started-videos/","best practice videos",{"text":362,"config":363},"Integrations",{"href":364,"dataGaName":365,"dataGaLocation":165},"/integrations/","integrations",{"title":367,"items":368},"Discover",[369,374,379,384],{"text":370,"config":371},"Customer success stories",{"href":372,"dataGaName":373,"dataGaLocation":165},"/customers/","customer success stories",{"text":375,"config":376},"Blog",{"href":377,"dataGaName":378,"dataGaLocation":165},"/blog/","blog",{"text":380,"config":381},"Remote",{"href":382,"dataGaName":383,"dataGaLocation":165},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"text":385,"config":386},"TeamOps",{"href":387,"dataGaName":388,"dataGaLocation":165},"/teamops/","teamops",{"title":390,"items":391},"Connect",[392,397,402,407,412],{"text":393,"config":394},"GitLab Services",{"href":395,"dataGaName":396,"dataGaLocation":165},"/services/","services",{"text":398,"config":399},"Community",{"href":400,"dataGaName":401,"dataGaLocation":165},"/community/","community",{"text":403,"config":404},"Forum",{"href":405,"dataGaName":406,"dataGaLocation":165},"https://forum.gitlab.com/","forum",{"text":408,"config":409},"Events",{"href":410,"dataGaName":411,"dataGaLocation":165},"/events/","events",{"text":413,"config":414},"Partners",{"href":415,"dataGaName":416,"dataGaLocation":165},"/partners/","partners",{"backgroundColor":418,"textColor":419,"text":420,"image":421,"link":425},"#2f2a6b","#fff","Insights for the future of software development",{"altText":422,"config":423},"the source promo card",{"src":424},"/images/navigation/the-source-promo-card.svg",{"text":426,"config":427},"Read the latest",{"href":428,"dataGaName":429,"dataGaLocation":165},"/the-source/","the source",{"text":431,"config":432,"lists":434},"Company",{"dataNavLevelOne":433},"company",[435],{"items":436},[437,442,448,450,455,460,465,470,475,480,485],{"text":438,"config":439},"About",{"href":440,"dataGaName":441,"dataGaLocation":165},"/company/","about",{"text":443,"config":444,"footerGa":447},"Jobs",{"href":445,"dataGaName":446,"dataGaLocation":165},"/jobs/","jobs",{"dataGaName":446},{"text":408,"config":449},{"href":410,"dataGaName":411,"dataGaLocation":165},{"text":451,"config":452},"Leadership",{"href":453,"dataGaName":454,"dataGaLocation":165},"/company/team/e-group/","leadership",{"text":456,"config":457},"Team",{"href":458,"dataGaName":459,"dataGaLocation":165},"/company/team/","team",{"text":461,"config":462},"Handbook",{"href":463,"dataGaName":464,"dataGaLocation":165},"https://handbook.gitlab.com/","handbook",{"text":466,"config":467},"Investor relations",{"href":468,"dataGaName":469,"dataGaLocation":165},"https://ir.gitlab.com/","investor relations",{"text":471,"config":472},"Trust Center",{"href":473,"dataGaName":474,"dataGaLocation":165},"/security/","trust center",{"text":476,"config":477},"AI Transparency Center",{"href":478,"dataGaName":479,"dataGaLocation":165},"/ai-transparency-center/","ai transparency center",{"text":481,"config":482},"Newsletter",{"href":483,"dataGaName":484,"dataGaLocation":165},"/company/contact/","newsletter",{"text":486,"config":487},"Press",{"href":488,"dataGaName":489,"dataGaLocation":165},"/press/","press",{"text":491,"config":492,"lists":493},"Contact us",{"dataNavLevelOne":433},[494],{"items":495},[496,499,504],{"text":172,"config":497},{"href":174,"dataGaName":498,"dataGaLocation":165},"talk to sales",{"text":500,"config":501},"Get help",{"href":502,"dataGaName":503,"dataGaLocation":165},"/support/","get help",{"text":505,"config":506},"Customer portal",{"href":507,"dataGaName":508,"dataGaLocation":165},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":510,"login":511,"suggestions":518},"Close",{"text":512,"link":513},"To search repositories and projects, login to",{"text":514,"config":515},"gitlab.com",{"href":179,"dataGaName":516,"dataGaLocation":517},"search login","search",{"text":519,"default":520},"Suggestions",[521,523,527,529,533,537],{"text":194,"config":522},{"href":199,"dataGaName":194,"dataGaLocation":517},{"text":524,"config":525},"Code Suggestions (AI)",{"href":526,"dataGaName":524,"dataGaLocation":517},"/solutions/code-suggestions/",{"text":245,"config":528},{"href":247,"dataGaName":245,"dataGaLocation":517},{"text":530,"config":531},"GitLab on AWS",{"href":532,"dataGaName":530,"dataGaLocation":517},"/partners/technology-partners/aws/",{"text":534,"config":535},"GitLab on Google Cloud",{"href":536,"dataGaName":534,"dataGaLocation":517},"/partners/technology-partners/google-cloud-platform/",{"text":538,"config":539},"Why GitLab?",{"href":206,"dataGaName":538,"dataGaLocation":517},{"freeTrial":541,"mobileIcon":546,"desktopIcon":551,"secondaryButton":554},{"text":542,"config":543},"Start free trial",{"href":544,"dataGaName":170,"dataGaLocation":545},"https://gitlab.com/-/trials/new/","nav",{"altText":547,"config":548},"Gitlab Icon",{"src":549,"dataGaName":550,"dataGaLocation":545},"/images/brand/gitlab-logo-tanuki.svg","gitlab icon",{"altText":547,"config":552},{"src":553,"dataGaName":550,"dataGaLocation":545},"/images/brand/gitlab-logo-type.svg",{"text":555,"config":556},"Get Started",{"href":557,"dataGaName":558,"dataGaLocation":545},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/compare/gitlab-vs-github/","get started",{"freeTrial":560,"mobileIcon":564,"desktopIcon":566},{"text":561,"config":562},"Learn more about GitLab Duo",{"href":199,"dataGaName":563,"dataGaLocation":545},"gitlab duo",{"altText":547,"config":565},{"src":549,"dataGaName":550,"dataGaLocation":545},{"altText":547,"config":567},{"src":553,"dataGaName":550,"dataGaLocation":545},"content:shared:en-us:main-navigation.yml","Main Navigation","shared/en-us/main-navigation.yml","shared/en-us/main-navigation",{"_path":573,"_dir":159,"_draft":6,"_partial":6,"_locale":7,"title":574,"button":575,"image":579,"config":582,"_id":584,"_type":152,"_source":153,"_file":585,"_stem":586,"_extension":156},"/shared/en-us/banner","is now in public beta!",{"text":134,"config":576},{"href":577,"dataGaName":578,"dataGaLocation":165},"/gitlab-duo/agent-platform/","duo banner",{"config":580},{"src":581},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1753720689/somrf9zaunk0xlt7ne4x.svg",{"layout":583},"release","content:shared:en-us:banner.yml","shared/en-us/banner.yml","shared/en-us/banner",{"_path":588,"_dir":159,"_draft":6,"_partial":6,"_locale":7,"data":589,"_id":794,"_type":152,"title":795,"_source":153,"_file":796,"_stem":797,"_extension":156},"/shared/en-us/main-footer",{"text":590,"source":591,"edit":597,"contribute":602,"config":607,"items":612,"minimal":786},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":592,"config":593},"View page source",{"href":594,"dataGaName":595,"dataGaLocation":596},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":598,"config":599},"Edit this page",{"href":600,"dataGaName":601,"dataGaLocation":596},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":603,"config":604},"Please contribute",{"href":605,"dataGaName":606,"dataGaLocation":596},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":608,"facebook":609,"youtube":610,"linkedin":611},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[613,636,693,722,756],{"title":183,"links":614,"subMenu":619},[615],{"text":616,"config":617},"DevSecOps platform",{"href":192,"dataGaName":618,"dataGaLocation":596},"devsecops platform",[620],{"title":321,"links":621},[622,626,631],{"text":623,"config":624},"View plans",{"href":323,"dataGaName":625,"dataGaLocation":596},"view plans",{"text":627,"config":628},"Why Premium?",{"href":629,"dataGaName":630,"dataGaLocation":596},"/pricing/premium/","why premium",{"text":632,"config":633},"Why Ultimate?",{"href":634,"dataGaName":635,"dataGaLocation":596},"/pricing/ultimate/","why ultimate",{"title":637,"links":638},"Solutions",[639,644,647,649,654,659,663,666,670,675,677,680,683,688],{"text":640,"config":641},"Digital transformation",{"href":642,"dataGaName":643,"dataGaLocation":596},"/topics/digital-transformation/","digital transformation",{"text":269,"config":645},{"href":264,"dataGaName":646,"dataGaLocation":596},"security & compliance",{"text":258,"config":648},{"href":241,"dataGaName":242,"dataGaLocation":596},{"text":650,"config":651},"Agile development",{"href":652,"dataGaName":653,"dataGaLocation":596},"/solutions/agile-delivery/","agile delivery",{"text":655,"config":656},"Cloud transformation",{"href":657,"dataGaName":658,"dataGaLocation":596},"/topics/cloud-native/","cloud transformation",{"text":660,"config":661},"SCM",{"href":118,"dataGaName":662,"dataGaLocation":596},"source code management",{"text":245,"config":664},{"href":247,"dataGaName":665,"dataGaLocation":596},"continuous integration & delivery",{"text":667,"config":668},"Value stream management",{"href":296,"dataGaName":669,"dataGaLocation":596},"value stream management",{"text":671,"config":672},"GitOps",{"href":673,"dataGaName":674,"dataGaLocation":596},"/solutions/gitops/","gitops",{"text":306,"config":676},{"href":308,"dataGaName":309,"dataGaLocation":596},{"text":678,"config":679},"Small business",{"href":313,"dataGaName":314,"dataGaLocation":596},{"text":681,"config":682},"Public sector",{"href":318,"dataGaName":319,"dataGaLocation":596},{"text":684,"config":685},"Education",{"href":686,"dataGaName":687,"dataGaLocation":596},"/solutions/education/","education",{"text":689,"config":690},"Financial services",{"href":691,"dataGaName":692,"dataGaLocation":596},"/solutions/finance/","financial services",{"title":326,"links":694},[695,697,699,701,704,706,708,710,712,714,716,718,720],{"text":337,"config":696},{"href":339,"dataGaName":340,"dataGaLocation":596},{"text":342,"config":698},{"href":344,"dataGaName":345,"dataGaLocation":596},{"text":347,"config":700},{"href":349,"dataGaName":350,"dataGaLocation":596},{"text":352,"config":702},{"href":354,"dataGaName":703,"dataGaLocation":596},"docs",{"text":375,"config":705},{"href":377,"dataGaName":378,"dataGaLocation":596},{"text":370,"config":707},{"href":372,"dataGaName":373,"dataGaLocation":596},{"text":380,"config":709},{"href":382,"dataGaName":383,"dataGaLocation":596},{"text":393,"config":711},{"href":395,"dataGaName":396,"dataGaLocation":596},{"text":385,"config":713},{"href":387,"dataGaName":388,"dataGaLocation":596},{"text":398,"config":715},{"href":400,"dataGaName":401,"dataGaLocation":596},{"text":403,"config":717},{"href":405,"dataGaName":406,"dataGaLocation":596},{"text":408,"config":719},{"href":410,"dataGaName":411,"dataGaLocation":596},{"text":413,"config":721},{"href":415,"dataGaName":416,"dataGaLocation":596},{"title":431,"links":723},[724,726,728,730,732,734,736,740,745,747,749,751],{"text":438,"config":725},{"href":440,"dataGaName":433,"dataGaLocation":596},{"text":443,"config":727},{"href":445,"dataGaName":446,"dataGaLocation":596},{"text":451,"config":729},{"href":453,"dataGaName":454,"dataGaLocation":596},{"text":456,"config":731},{"href":458,"dataGaName":459,"dataGaLocation":596},{"text":461,"config":733},{"href":463,"dataGaName":464,"dataGaLocation":596},{"text":466,"config":735},{"href":468,"dataGaName":469,"dataGaLocation":596},{"text":737,"config":738},"Sustainability",{"href":739,"dataGaName":737,"dataGaLocation":596},"/sustainability/",{"text":741,"config":742},"Diversity, inclusion and belonging (DIB)",{"href":743,"dataGaName":744,"dataGaLocation":596},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":471,"config":746},{"href":473,"dataGaName":474,"dataGaLocation":596},{"text":481,"config":748},{"href":483,"dataGaName":484,"dataGaLocation":596},{"text":486,"config":750},{"href":488,"dataGaName":489,"dataGaLocation":596},{"text":752,"config":753},"Modern Slavery Transparency Statement",{"href":754,"dataGaName":755,"dataGaLocation":596},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":757,"links":758},"Contact Us",[759,762,764,766,771,776,781],{"text":760,"config":761},"Contact an expert",{"href":174,"dataGaName":175,"dataGaLocation":596},{"text":500,"config":763},{"href":502,"dataGaName":503,"dataGaLocation":596},{"text":505,"config":765},{"href":507,"dataGaName":508,"dataGaLocation":596},{"text":767,"config":768},"Status",{"href":769,"dataGaName":770,"dataGaLocation":596},"https://status.gitlab.com/","status",{"text":772,"config":773},"Terms of use",{"href":774,"dataGaName":775,"dataGaLocation":596},"/terms/","terms of use",{"text":777,"config":778},"Privacy statement",{"href":779,"dataGaName":780,"dataGaLocation":596},"/privacy/","privacy statement",{"text":782,"config":783},"Cookie preferences",{"dataGaName":784,"dataGaLocation":596,"id":785,"isOneTrustButton":227},"cookie preferences","ot-sdk-btn",{"items":787},[788,790,792],{"text":772,"config":789},{"href":774,"dataGaName":775,"dataGaLocation":596},{"text":777,"config":791},{"href":779,"dataGaName":780,"dataGaLocation":596},{"text":782,"config":793},{"dataGaName":784,"dataGaLocation":596,"id":785,"isOneTrustButton":227},"content:shared:en-us:main-footer.yml","Main Footer","shared/en-us/main-footer.yml","shared/en-us/main-footer",{"_path":799,"_dir":159,"_draft":6,"_partial":6,"_locale":7,"header":800,"eyebrow":801,"blurb":802,"button":803,"secondaryButton":807,"_id":809,"_type":152,"title":810,"_source":153,"_file":811,"_stem":812,"_extension":156},"/shared/en-us/next-steps","Start shipping better software faster","50%+ of the Fortune 100 trust GitLab","See what your team can do with the intelligent\n\n\nDevSecOps platform.\n",{"text":167,"config":804},{"href":805,"dataGaName":170,"dataGaLocation":806},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":172,"config":808},{"href":174,"dataGaName":175,"dataGaLocation":806},"content:shared:en-us:next-steps.yml","Next Steps","shared/en-us/next-steps.yml","shared/en-us/next-steps",1753981660193]