[{"data":1,"prerenderedAt":1153},["ShallowReactive",2],{"/blog/gitlab-annex-solves-the-problem-of-versioning-large-binaries-with-git":3,"navigation-en-us":389,"banner-en-us":820,"footer-en-us":830,"blog-post-authors-en-us-Sid Sijbrandij":1090,"blog-related-posts-en-us-gitlab-annex-solves-the-problem-of-versioning-large-binaries-with-git":1109,"blog-share-wrapper-en-us":1133,"next-steps-en-us":1143},{"id":4,"title":5,"authors":6,"body":8,"category":330,"date":331,"description":332,"extension":333,"externalUrl":334,"faq":334,"featured":335,"heroImage":336,"meta":337,"navigation":378,"path":379,"seo":380,"slug":385,"stem":386,"tags":334,"template":387,"updatedDate":334,"__hash__":388},"blogPosts/en-us/blog/gitlab-annex-solves-the-problem-of-versioning-large-binaries-with-git.md","GitLab Annex solves the problem of versioning large binaries with git",[7],"Sid Sijbrandij",{"type":9,"value":10,"toc":325},"minimark",[11,23,58,66,69,77,82,85,193,196,235,238,264,267,271,280,295,298,302,305,318,322],[12,13,14],"p",{},[15,16,19],"span",{"className":17},[18],"red",[20,21,22],"strong",{},"WARNING",[12,24,25,28,29,32,33,39,40,32,47,52,53],{},[20,26,27],{},"git-annex"," support on GitLab EE was ",[20,30,31],{},"deprecated"," in\n",[34,35,38],"a",{"href":36,"rel":37},"https://docs.gitlab.com/releases/#git-annex-support",[],"GitLab 8.17"," (2017/02/22),\nand was ",[34,41,44],{"href":42,"rel":43},"https://gitlab.com/gitlab-org/gitlab-ee/issues/1648",[],[20,45,46],{},"permanently removed",[34,48,51],{"href":49,"rel":50},"https://docs.gitlab.com/releases/#git-annex-deprecation",[],"GitLab 9.0"," (2017/03/22). Read through the\nmigration guide from git-annex to git-lfs.\n",[15,54,57],{"className":55},[56],"note","Updated on 2017/04/04.",[12,59,60,61,65],{},"The biggest limitation of git compared to some older centralized ",[34,62,64],{"href":63},"/topics/version-control/","version control systems"," has been the maximum size of the repositories.\nThe general recommendation is to not have git repositories larger than 1GB to preserve performance.\nAlthough GitLab has no limit (some repositories in GitLab are over 50GB!) we subscribe to the advice to keep repositories as small as you can.",[12,67,68],{},"Not being able to version control large binaries is a big problem for many larger organizations.\nVideo, photo's, audio, compiled binaries and many other types of files are too large.\nAs a workaround, people keep artwork-in-progress in a Dropbox folder and only check in the final result.\nThis results in using outdated files, not having a complete history and the risk of losing work.",[12,70,71,72,76],{},"In GitLab 7.8 Enterprise Edition this problem is solved by integrating the awesome ",[34,73,27],{"href":74,"rel":75},"https://git-annex.branchable.com/",[],".\nGit-annex allows managing large binaries with git, without checking the contents into git.\nYou check in only a symlink that contains the SHA-1 of the large binary.\nIf you need the large binary you can sync it from the GitLab server over rsync, a very fast file copying tool.",[78,79,81],"h2",{"id":80},"using-gitlab-annex","Using GitLab Annex",[12,83,84],{},"For example, if you want to upload a very large file and check it into your Git repository:",[86,87,92],"pre",{"className":88,"code":89,"language":90,"meta":91,"style":91},"language-bash shiki shiki-themes github-light","git clone git@gitlab.example.com:group/project.git\ngit annex init 'My Laptop'            # initialize the annex project\ncp ~/tmp/debian.iso ./                # copy a large file into the current directory\ngit annex add .                       # add the large file to git annex\ngit commit -am \"Added Debian iso\"      # commit the file meta data\ngit annex sync --content              # sync the git repo and large file to the GitLab server\n","bash","",[93,94,95,110,128,143,159,177],"code",{"__ignoreMap":91},[15,96,99,103,107],{"class":97,"line":98},"line",1,[15,100,102],{"class":101},"s7eDp","git",[15,104,106],{"class":105},"sYBdl"," clone",[15,108,109],{"class":105}," git@gitlab.example.com:group/project.git\n",[15,111,113,115,118,121,124],{"class":97,"line":112},2,[15,114,102],{"class":101},[15,116,117],{"class":105}," annex",[15,119,120],{"class":105}," init",[15,122,123],{"class":105}," 'My Laptop'",[15,125,127],{"class":126},"sAwPA","            # initialize the annex project\n",[15,129,131,134,137,140],{"class":97,"line":130},3,[15,132,133],{"class":101},"cp",[15,135,136],{"class":105}," ~/tmp/debian.iso",[15,138,139],{"class":105}," ./",[15,141,142],{"class":126},"                # copy a large file into the current directory\n",[15,144,146,148,150,153,156],{"class":97,"line":145},4,[15,147,102],{"class":101},[15,149,117],{"class":105},[15,151,152],{"class":105}," add",[15,154,155],{"class":105}," .",[15,157,158],{"class":126},"                       # add the large file to git annex\n",[15,160,162,164,167,171,174],{"class":97,"line":161},5,[15,163,102],{"class":101},[15,165,166],{"class":105}," commit",[15,168,170],{"class":169},"sYu0t"," -am",[15,172,173],{"class":105}," \"Added Debian iso\"",[15,175,176],{"class":126},"      # commit the file meta data\n",[15,178,180,182,184,187,190],{"class":97,"line":179},6,[15,181,102],{"class":101},[15,183,117],{"class":105},[15,185,186],{"class":105}," sync",[15,188,189],{"class":169}," --content",[15,191,192],{"class":126},"              # sync the git repo and large file to the GitLab server\n",[12,194,195],{},"Downloading a single large file is also very simple:",[86,197,199],{"className":88,"code":198,"language":90,"meta":91,"style":91},"git clone git@gitlab.example.com:group/project.git\ngit annex sync                        # sync git branches but not the large file\ngit annex get debian.iso              # download the large file\n",[93,200,201,209,220],{"__ignoreMap":91},[15,202,203,205,207],{"class":97,"line":98},[15,204,102],{"class":101},[15,206,106],{"class":105},[15,208,109],{"class":105},[15,210,211,213,215,217],{"class":97,"line":112},[15,212,102],{"class":101},[15,214,117],{"class":105},[15,216,186],{"class":105},[15,218,219],{"class":126},"                        # sync git branches but not the large file\n",[15,221,222,224,226,229,232],{"class":97,"line":130},[15,223,102],{"class":101},[15,225,117],{"class":105},[15,227,228],{"class":105}," get",[15,230,231],{"class":105}," debian.iso",[15,233,234],{"class":126},"              # download the large file\n",[12,236,237],{},"To download all files:",[86,239,241],{"className":88,"code":240,"language":90,"meta":91,"style":91},"git clone git@gitlab.example.com:group/project.git\ngit annex sync --content              # sync git branches and download all the large files\n",[93,242,243,251],{"__ignoreMap":91},[15,244,245,247,249],{"class":97,"line":98},[15,246,102],{"class":101},[15,248,106],{"class":105},[15,250,109],{"class":105},[15,252,253,255,257,259,261],{"class":97,"line":112},[15,254,102],{"class":101},[15,256,117],{"class":105},[15,258,186],{"class":105},[15,260,189],{"class":169},[15,262,263],{"class":126},"              # sync git branches and download all the large files\n",[12,265,266],{},"By integrating git-annex into GitLab it becomes much easier and safer to use.\nYou don't have to set up git-annex on a separate server or add annex remotes to the repository.\nGit-annex without GitLab gives everyone that can access the server access to the files of all projects.\nGitLab annex ensures you can only access files of projects you work on (developer, master or owner role).",[78,268,270],{"id":269},"how-it-works","How it works",[12,272,273,274,279],{},"As far as we know GitLab is the first git repository management solution that integrates git-annex.\nThis is possible because both git-annex and GitLab stay very close to the unix paradigms.\nInternally GitLab uses ",[34,275,278],{"href":276,"rel":277},"https://gitlab.com/gitlab-org/gitlab-shell",[],"GitLab Shell"," to handle ssh access and this was a great integration point for git-annex.\nWe've added a setting to GitLab Shell so you can disable GitLab Annex support if you don't want it.",[12,281,282,283,288,289,294],{},"Of course we are very thankful for the awesome git-annex software that makes all of this possible.\nIt was mainly written by Joey Hess whose work is sponsored by ",[34,284,287],{"href":285,"rel":286},"https://campaign.joeyh.name/",[],"community fundraisers",".\nIt may be interesting to know that git-annex is ",[34,290,293],{"href":291,"rel":292},"http://joeyh.name/screencasts/git-annex_coding_in_haskell/",[],"written in Haskell",", making it very fast and reliable.",[12,296,297],{},"To use GitLab annex you have to use GitLab Enterprise Edition 7.8 (which will be released on February 22) or GitLab.com.\nYou'll have to use the Git over SSH protocol to connect to your GitLab server instead of the Git over HTTPS protocol.\nWe look forward to feedback and enhancements from the rest of the community.\nFor example, it would be nice if the GitLab UI shows the file size of the large file instead of the symlink.\nBut let's first celebrate this milestone, being able to easily version control your large files!",[78,299,301],{"id":300},"update","Update",[12,303,304],{},"We made a video of Dmitriy, CTO of GitLab, explaining how git-annex integrates with GitLab Enterprise Edition. The video is raw and unedited.",[306,307,310,311],"figure",{"className":308},[309],"video_container","\n  ",[312,313,317],"iframe",{"src":314,"frameBorder":315,"allowFullScreen":316},"https://www.youtube.com/embed/6PhmANuSVGE","0","true"," ",[319,320,321],"style",{},"\n  .red { color: red !important; }\n  .black { color: black !important; }\n",[319,323,324],{},"html pre.shiki code .s7eDp, html code.shiki .s7eDp{--shiki-default:#6F42C1}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":91,"searchDepth":112,"depth":112,"links":326},[327,328,329],{"id":80,"depth":112,"text":81},{"id":269,"depth":112,"text":270},{"id":300,"depth":112,"text":301},"company","2015-02-17","GitLab solves the biggest limitation of git compared to some older centralized version control systems has been the maximum size of the repositories.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666750/Blog/Hero%20Images/annex.jpg",{"excerpt":338},{"type":9,"value":339},[340,347,367,371,373],[12,341,342],{},[15,343,345],{"className":344},[18],[20,346,22],{},[12,348,349,28,351,32,353,39,356,32,361,52,364],{},[20,350,27],{},[20,352,31],{},[34,354,38],{"href":36,"rel":355},[],[34,357,359],{"href":42,"rel":358},[],[20,360,46],{},[34,362,51],{"href":49,"rel":363},[],[15,365,57],{"className":366},[56],[12,368,60,369,65],{},[34,370,64],{"href":63},[12,372,68],{},[12,374,71,375,76],{},[34,376,27],{"href":74,"rel":377},[],true,"/en-us/blog/gitlab-annex-solves-the-problem-of-versioning-large-binaries-with-git",{"title":381,"description":332,"ogTitle":381,"ogDescription":332,"noIndex":335,"ogImage":336,"ogUrl":382,"ogSiteName":383,"ogType":384,"canonicalUrls":382},"GitLab Annex enables versioning of large binaries with git","https://about.gitlab.com/blog/gitlab-annex-solves-the-problem-of-versioning-large-binaries-with-git","https://about.gitlab.com","article","gitlab-annex-solves-the-problem-of-versioning-large-binaries-with-git","en-us/blog/gitlab-annex-solves-the-problem-of-versioning-large-binaries-with-git","BlogPost","MMy33qy8Rk5UouwX0OdO-_jbjHbkHKSg8PwVFmUHCBg",{"logo":390,"freeTrial":395,"sales":400,"login":405,"items":410,"search":740,"minimal":771,"duo":790,"switchNav":799,"pricingDeployment":810},{"config":391},{"href":392,"dataGaName":393,"dataGaLocation":394},"/","gitlab logo","header",{"text":396,"config":397},"Get free trial",{"href":398,"dataGaName":399,"dataGaLocation":394},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":401,"config":402},"Request a demo",{"href":403,"dataGaName":404,"dataGaLocation":394},"/request-a-demo/","sales",{"text":406,"config":407},"Sign in",{"href":408,"dataGaName":409,"dataGaLocation":394},"https://gitlab.com/users/sign_in/","sign in",[411,497,585,590,665,718],{"text":412,"left":378,"config":413,"menu":415},"Platform",{"dataNavLevelOne":414},"platform",{"type":416,"link":417,"columns":421,"feature":486},"lists",{"text":418,"config":419},"Explore the Platform",{"href":420,"dataGaName":414,"dataGaLocation":394},"/platform/",[422,445,468],{"title":423,"items":424},"Execution & Workflows",[425,430,435,440],{"text":426,"config":427},"CI/CD",{"href":428,"dataGaLocation":394,"dataGaName":429},"/solutions/continuous-integration/","ci/cd",{"text":431,"config":432},"Source Code Management",{"href":433,"dataGaLocation":394,"dataGaName":434},"/solutions/source-code-management/","source code management",{"text":436,"config":437},"Agile Delivery",{"href":438,"dataGaLocation":394,"dataGaName":439},"/solutions/agile-delivery/","agile delivery",{"text":441,"config":442},"Artifact Management",{"href":443,"dataGaLocation":394,"dataGaName":444},"/artifact-central/","artifact management",{"title":446,"items":447},"Security & Governance",[448,453,458,463],{"text":449,"config":450},"Application Security Testing",{"href":451,"dataGaLocation":394,"dataGaName":452},"/solutions/application-security-testing/","application security testing",{"text":454,"config":455},"Governance & Compliance",{"href":456,"dataGaLocation":394,"dataGaName":457},"/solutions/software-compliance/","governance and compliance",{"text":459,"config":460},"Secrets Management",{"href":461,"dataGaLocation":394,"dataGaName":462},"/gitlab-secrets-manager/","secrets management",{"text":464,"config":465},"Supply Chain Security",{"href":466,"dataGaLocation":394,"dataGaName":467},"/solutions/supply-chain/","supply chain security",{"title":469,"items":470},"Context & AI",[471,476,481],{"text":472,"config":473},"Agentic Orchestration",{"href":474,"dataGaLocation":394,"dataGaName":475},"/gitlab-duo-agent-platform/","agentic orchestration",{"text":477,"config":478},"Context Graph",{"href":479,"dataGaLocation":394,"dataGaName":480},"/gitlab-orbit/","context graph",{"text":482,"config":483},"Visibility & Measurement",{"href":484,"dataGaLocation":394,"dataGaName":485},"/solutions/visibility-measurement/","visibility and measurement",{"config":487,"title":490,"text":491,"link":492},{"background":488,"textColor":489},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1790185102/o7dn32anqcb6z8dgd3as.jpg')","#000","Why GitLab","One platform for speed with control across your software lifecycle.",{"text":493,"config":494},"Learn more",{"href":495,"dataGaName":496,"dataGaLocation":394},"/why-gitlab/","why gitlab",{"text":498,"left":378,"config":499,"menu":501},"Solutions",{"dataNavLevelOne":500},"solutions",{"type":416,"link":502,"columns":506,"feature":576},{"text":503,"config":504},"View all Solutions",{"href":505,"dataGaName":500,"dataGaLocation":394},"/solutions/",[507,525,543],{"title":508,"items":509},"Outcomes",[510,515,520],{"text":511,"config":512},"DevOps Modernization",{"href":513,"dataGaLocation":394,"dataGaName":514},"/assessments/devops-modernization-assessment/","devops modernization",{"text":516,"config":517},"Security Modernization",{"href":518,"dataGaLocation":394,"dataGaName":519},"/assessments/security-modernization-assessment/","security modernization",{"text":521,"config":522},"AI Modernization",{"href":523,"dataGaLocation":394,"dataGaName":524},"/assessments/ai-modernization-assessment/","ai modernization",{"title":526,"items":527},"By size",[528,533,538],{"text":529,"config":530},"Enterprise",{"href":531,"dataGaLocation":394,"dataGaName":532},"/enterprise/","enterprise",{"text":534,"config":535},"Small Business",{"href":536,"dataGaLocation":394,"dataGaName":537},"/small-business/","small business",{"text":539,"config":540},"Startups",{"href":541,"dataGaLocation":394,"dataGaName":542},"/solutions/startups/","startups",{"title":544,"items":545},"Industries",[546,551,556,561,566,571],{"text":547,"config":548},"Financial Services",{"href":549,"dataGaLocation":394,"dataGaName":550},"/solutions/finance/","financial services",{"text":552,"config":553},"Public Sector",{"href":554,"dataGaLocation":394,"dataGaName":555},"/solutions/public-sector/","public sector",{"text":557,"config":558},"Telecommunications",{"href":559,"dataGaLocation":394,"dataGaName":560},"/solutions/telecommunications/","telecommunications",{"text":562,"config":563},"Automotive",{"href":564,"dataGaLocation":394,"dataGaName":565},"/solutions/automotive/","automotive",{"text":567,"config":568},"Education",{"href":569,"dataGaLocation":394,"dataGaName":570},"/solutions/education/","education",{"text":572,"config":573},"Aerospace",{"href":574,"dataGaLocation":394,"dataGaName":575},"/solutions/aerospace/","aerospace",{"config":577,"title":578,"text":579,"link":580},{"background":488,"textColor":489},"GitLab Security Standard","Learn how to harden your software factory and let AI agents earn autonomy, without trading away security.",{"text":581,"config":582},"Explore the standard",{"href":583,"dataGaName":584,"dataGaLocation":394},"/gitlab-security-standard/","gitlab security standard",{"text":586,"config":587},"Pricing",{"href":588,"dataGaName":589,"dataGaLocation":394,"dataNavLevelOne":589},"/pricing/","pricing",{"text":591,"config":592,"menu":594},"Resources",{"dataNavLevelOne":593},"resources",{"type":416,"link":595,"columns":599,"feature":656},{"text":596,"config":597},"View all resources",{"href":598,"dataGaName":593,"dataGaLocation":394},"/resources/",[600,628],{"title":601,"items":602},"Discover",[603,608,613,618,623],{"text":604,"config":605},"Docs",{"href":606,"dataGaName":607,"dataGaLocation":394},"https://docs.gitlab.com/","docs",{"text":609,"config":610},"University",{"href":611,"dataGaName":612,"dataGaLocation":394},"https://university.gitlab.com/","university",{"text":614,"config":615},"Demo Series",{"href":616,"dataGaName":617,"dataGaLocation":394},"/gitlab-technical-demo-series/","demo series",{"text":619,"config":620},"Demo Hub",{"href":621,"dataGaName":622,"dataGaLocation":394},"/demo-hub/","demo hub",{"text":624,"config":625},"Services",{"href":626,"dataGaName":627,"dataGaLocation":394},"/services/","services",{"title":629,"items":630},"Connect",[631,636,641,646,651],{"text":632,"config":633},"Blog",{"href":634,"dataGaName":635,"dataGaLocation":394},"/blog/","blog",{"text":637,"config":638},"Community",{"href":639,"dataGaName":640,"dataGaLocation":394},"/community/","community",{"text":642,"config":643},"Customers",{"href":644,"dataGaName":645,"dataGaLocation":394},"/customers/","customers",{"text":647,"config":648},"Partners",{"href":649,"dataGaName":650,"dataGaLocation":394},"/partners/","partners",{"text":652,"config":653},"Events",{"href":654,"dataGaName":655,"dataGaLocation":394},"/events/","events",{"config":657,"title":658,"text":659,"link":660},{"background":488,"textColor":489},"What’s new in GitLab","Stay updated with our latest features and improvements.",{"text":661,"config":662},"Read the latest",{"href":663,"dataGaName":664,"dataGaLocation":394},"/whats-new/","whats new",{"text":666,"config":667,"menu":668},"Company",{"dataNavLevelOne":330},{"type":416,"columns":669},[670],{"items":671},[672,677,683,688,693,698,703,708,713],{"text":673,"config":674},"About",{"href":675,"dataGaName":676,"dataGaLocation":394},"/company/","about",{"text":678,"config":679,"footerGa":682},"Jobs",{"href":680,"dataGaName":681,"dataGaLocation":394},"/jobs/","jobs",{"dataGaName":681},{"text":684,"config":685},"Press",{"href":686,"dataGaName":687,"dataGaLocation":394},"/press/","press",{"text":689,"config":690},"Handbook",{"href":691,"dataGaName":692,"dataGaLocation":394},"https://handbook.gitlab.com/","handbook",{"text":694,"config":695},"Leadership",{"href":696,"dataGaName":697,"dataGaLocation":394},"/company/team/e-group/","leadership",{"text":699,"config":700},"Investor relations",{"href":701,"dataGaName":702,"dataGaLocation":394},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":704,"config":705},"Trust Center",{"href":706,"dataGaName":707,"dataGaLocation":394},"/security/","trust center",{"text":709,"config":710},"AI Transparency Center",{"href":711,"dataGaName":712,"dataGaLocation":394},"/ai-transparency-center/","ai transparency center",{"text":714,"config":715},"Newsletter",{"href":716,"dataGaName":717,"dataGaLocation":394},"/company/contact/#contact-forms","newsletter",{"text":719,"config":720,"menu":721},"Contact us",{"dataNavLevelOne":330},{"type":416,"columns":722},[723],{"items":724},[725,730,735],{"text":726,"config":727},"Talk to sales",{"href":728,"dataGaName":729,"dataGaLocation":394},"/sales/","talk to sales",{"text":731,"config":732},"Support portal",{"href":733,"dataGaName":734,"dataGaLocation":394},"https://support.gitlab.com/hc/en-us","support portal",{"text":736,"config":737},"Customer portal",{"href":738,"dataGaName":739,"dataGaLocation":394},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":741,"login":742,"suggestions":749},"Close",{"text":743,"link":744},"To search repositories and projects, login to",{"text":745,"config":746},"gitlab.com",{"href":408,"dataGaName":747,"dataGaLocation":748},"search login","search",{"text":750,"default":751},"Suggestions",[752,755,758,760,764,768],{"text":753,"config":754},"GitLab Duo Agent Platform",{"href":474,"dataGaName":753,"dataGaLocation":748},{"text":756,"config":757},"Code Suggestions (AI)",{"href":474,"dataGaName":756,"dataGaLocation":748},{"text":426,"config":759},{"href":428,"dataGaName":426,"dataGaLocation":748},{"text":761,"config":762},"GitLab on AWS",{"href":763,"dataGaName":761,"dataGaLocation":748},"/partners/technology-partners/aws/",{"text":765,"config":766},"GitLab on Google Cloud",{"href":767,"dataGaName":765,"dataGaLocation":748},"/partners/technology-partners/google-cloud-platform/",{"text":769,"config":770},"Why GitLab?",{"href":495,"dataGaName":769,"dataGaLocation":748},{"freeTrial":772,"mobileIcon":777,"desktopIcon":782,"secondaryButton":785},{"text":773,"config":774},"Start free trial",{"href":775,"dataGaName":399,"dataGaLocation":776},"https://gitlab.com/-/trials/new/","nav",{"altText":778,"config":779},"Gitlab Icon",{"src":780,"dataGaName":781,"dataGaLocation":776},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":778,"config":783},{"src":784,"dataGaName":781,"dataGaLocation":776},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":786,"config":787},"Get Started",{"href":788,"dataGaName":789,"dataGaLocation":776},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":791,"mobileIcon":795,"desktopIcon":797},{"text":792,"config":793},"Learn more about GitLab Duo",{"href":474,"dataGaName":794,"dataGaLocation":776},"gitlab duo",{"altText":778,"config":796},{"src":780,"dataGaName":781,"dataGaLocation":776},{"altText":778,"config":798},{"src":784,"dataGaName":781,"dataGaLocation":776},{"button":800,"mobileIcon":805,"desktopIcon":807},{"text":801,"config":802},"/switch",{"href":803,"dataGaName":804,"dataGaLocation":776},"#contact","switch",{"altText":778,"config":806},{"src":780,"dataGaName":781,"dataGaLocation":776},{"altText":778,"config":808},{"src":809,"dataGaName":781,"dataGaLocation":776},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":811,"mobileIcon":816,"desktopIcon":818},{"text":812,"config":813},"Back to pricing",{"href":588,"dataGaName":814,"dataGaLocation":776,"icon":815},"back to pricing","GoBack",{"altText":778,"config":817},{"src":780,"dataGaName":781,"dataGaLocation":776},{"altText":778,"config":819},{"src":784,"dataGaName":781,"dataGaLocation":776},{"title":821,"button":822,"config":828},"Ship at agent speed. Prove every step. Transcend is here.",{"text":823,"config":824},"Watch now",{"href":825,"dataGaName":826,"dataGaLocation":827},"/events/transcend/virtual/#watch-gitlab-transcend","transcend-october-2026-banner","global-banner",{"layout":829,"disabled":335},"release",{"data":831},{"text":832,"source":833,"edit":839,"contribute":844,"config":849,"items":854,"minimal":1079},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":834,"config":835},"View page source",{"href":836,"dataGaName":837,"dataGaLocation":838},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":840,"config":841},"Edit this page",{"href":842,"dataGaName":843,"dataGaLocation":838},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":845,"config":846},"Please contribute",{"href":847,"dataGaName":848,"dataGaLocation":838},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":850,"facebook":851,"youtube":852,"linkedin":853},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[855,902,959,1006,1047],{"title":586,"links":856,"subMenu":871},[857,861,866],{"text":858,"config":859},"View plans",{"href":588,"dataGaName":860,"dataGaLocation":838},"view plans",{"text":862,"config":863},"Why Premium?",{"href":864,"dataGaName":865,"dataGaLocation":838},"/pricing/premium/","why premium",{"text":867,"config":868},"Why Ultimate?",{"href":869,"dataGaName":870,"dataGaLocation":838},"/pricing/ultimate/","why ultimate",[872],{"title":873,"links":874},"Contact Us",[875,878,880,882,887,892,897],{"text":876,"config":877},"Contact sales",{"href":728,"dataGaName":404,"dataGaLocation":838},{"text":731,"config":879},{"href":733,"dataGaName":734,"dataGaLocation":838},{"text":736,"config":881},{"href":738,"dataGaName":739,"dataGaLocation":838},{"text":883,"config":884},"Status",{"href":885,"dataGaName":886,"dataGaLocation":838},"https://status.gitlab.com/","status",{"text":888,"config":889},"Terms of use",{"href":890,"dataGaName":891,"dataGaLocation":838},"/terms/","terms of use",{"text":893,"config":894},"Privacy statement",{"href":895,"dataGaName":896,"dataGaLocation":838},"/privacy/","privacy statement",{"text":898,"config":899},"Cookie preferences",{"dataGaName":900,"dataGaLocation":838,"id":901,"isOneTrustButton":378},"cookie preferences","ot-sdk-btn",{"title":412,"links":903,"subMenu":917},[904,907,909,911,913,915],{"text":905,"config":906},"Explore the platform",{"href":420,"dataGaName":414,"dataGaLocation":838},{"text":472,"config":908},{"href":474,"dataGaName":475,"dataGaLocation":838},{"text":426,"config":910},{"href":428,"dataGaName":429,"dataGaLocation":838},{"text":477,"config":912},{"href":479,"dataGaName":480,"dataGaLocation":838},{"text":459,"config":914},{"href":461,"dataGaName":462,"dataGaLocation":838},{"text":490,"config":916},{"href":495,"dataGaName":496,"dataGaLocation":838},[918],{"title":919,"links":920},"Topics",[921,925,930,935,939,944,949,954],{"text":426,"config":922},{"href":923,"dataGaName":924,"dataGaLocation":838},"/topics/ci-cd/","cicd",{"text":926,"config":927},"GitOps",{"href":928,"dataGaName":929,"dataGaLocation":838},"/topics/gitops/","gitops",{"text":931,"config":932},"DevOps",{"href":933,"dataGaName":934,"dataGaLocation":838},"/topics/devops/","devops",{"text":936,"config":937},"Version Control",{"href":63,"dataGaName":938,"dataGaLocation":838},"version control",{"text":940,"config":941},"DevSecOps",{"href":942,"dataGaName":943,"dataGaLocation":838},"/topics/devsecops/","devsecops",{"text":945,"config":946},"Cloud Native",{"href":947,"dataGaName":948,"dataGaLocation":838},"/topics/cloud-native/","cloud native",{"text":950,"config":951},"AI for Coding",{"href":952,"dataGaName":953,"dataGaLocation":838},"/topics/devops/ai-for-coding/","ai for coding",{"text":955,"config":956},"Agentic AI",{"href":957,"dataGaName":958,"dataGaLocation":838},"/topics/agentic-ai/","agentic ai",{"title":498,"links":960},[961,964,967,970,973,976,978,980,982,984,986,989,991,994,998,1002],{"text":962,"config":963},"DevOps modernization",{"href":513,"dataGaName":514,"dataGaLocation":838},{"text":965,"config":966},"Security modernization",{"href":518,"dataGaName":519,"dataGaLocation":838},{"text":968,"config":969},"AI modernization",{"href":523,"dataGaName":524,"dataGaLocation":838},{"text":971,"config":972},"Financial services",{"href":549,"dataGaName":550,"dataGaLocation":838},{"text":974,"config":975},"Public sector",{"href":554,"dataGaName":555,"dataGaLocation":838},{"text":557,"config":977},{"href":559,"dataGaName":560,"dataGaLocation":838},{"text":562,"config":979},{"href":564,"dataGaName":565,"dataGaLocation":838},{"text":567,"config":981},{"href":569,"dataGaName":570,"dataGaLocation":838},{"text":572,"config":983},{"href":574,"dataGaName":575,"dataGaLocation":838},{"text":529,"config":985},{"href":531,"dataGaName":532,"dataGaLocation":838},{"text":987,"config":988},"Small business",{"href":536,"dataGaName":537,"dataGaLocation":838},{"text":539,"config":990},{"href":541,"dataGaName":542,"dataGaLocation":838},{"text":926,"config":992},{"href":993,"dataGaName":929,"dataGaLocation":838},"/solutions/gitops/",{"text":995,"config":996},"Software composition analysis",{"href":466,"dataGaName":997,"dataGaLocation":838},"software composition analysis",{"text":999,"config":1000},"Value stream management",{"href":484,"dataGaName":1001,"dataGaLocation":838},"value stream management",{"text":1003,"config":1004},"All solutions",{"href":505,"dataGaName":1005,"dataGaLocation":838},"all solutions",{"title":591,"links":1007},[1008,1013,1018,1020,1022,1024,1026,1028,1030,1032,1034,1036,1038,1040,1043],{"text":1009,"config":1010},"Install",{"href":1011,"dataGaName":1012,"dataGaLocation":838},"/install/","install",{"text":1014,"config":1015},"Quick start guides",{"href":1016,"dataGaName":1017,"dataGaLocation":838},"/get-started/","quick setup checklists",{"text":604,"config":1019},{"href":606,"dataGaName":607,"dataGaLocation":838},{"text":609,"config":1021},{"href":611,"dataGaName":612,"dataGaLocation":838},{"text":614,"config":1023},{"href":616,"dataGaName":617,"dataGaLocation":838},{"text":619,"config":1025},{"href":621,"dataGaName":622,"dataGaLocation":838},{"text":624,"config":1027},{"href":626,"dataGaName":627,"dataGaLocation":838},{"text":632,"config":1029},{"href":634,"dataGaName":635,"dataGaLocation":838},{"text":637,"config":1031},{"href":639,"dataGaName":640,"dataGaLocation":838},{"text":642,"config":1033},{"href":644,"dataGaName":645,"dataGaLocation":838},{"text":647,"config":1035},{"href":649,"dataGaName":650,"dataGaLocation":838},{"text":652,"config":1037},{"href":654,"dataGaName":655,"dataGaLocation":838},{"text":714,"config":1039},{"href":716,"dataGaName":717,"dataGaLocation":838},{"text":1041,"config":1042},"What's new",{"href":663,"dataGaName":664,"dataGaLocation":838},{"text":1044,"config":1045},"All resources",{"href":598,"dataGaName":1046,"dataGaLocation":838},"all resources",{"title":666,"links":1048},[1049,1051,1053,1055,1057,1059,1061,1063,1065,1069,1074],{"text":673,"config":1050},{"href":675,"dataGaName":330,"dataGaLocation":838},{"text":678,"config":1052},{"href":680,"dataGaName":681,"dataGaLocation":838},{"text":684,"config":1054},{"href":686,"dataGaName":687,"dataGaLocation":838},{"text":689,"config":1056},{"href":691,"dataGaName":692,"dataGaLocation":838},{"text":694,"config":1058},{"href":696,"dataGaName":697,"dataGaLocation":838},{"text":699,"config":1060},{"href":701,"dataGaName":702,"dataGaLocation":838},{"text":704,"config":1062},{"href":706,"dataGaName":707,"dataGaLocation":838},{"text":709,"config":1064},{"href":711,"dataGaName":712,"dataGaLocation":838},{"text":1066,"config":1067},"Sustainability",{"href":1068,"dataGaName":1066,"dataGaLocation":838},"/sustainability/",{"text":1070,"config":1071},"Diversity, inclusion and belonging (DIB)",{"href":1072,"dataGaName":1073,"dataGaLocation":838},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":1075,"config":1076},"Modern Slavery Transparency Statement",{"href":1077,"dataGaName":1078,"dataGaLocation":838},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1080},[1081,1084,1087],{"text":1082,"config":1083},"Terms",{"href":890,"dataGaName":891,"dataGaLocation":838},{"text":1085,"config":1086},"Cookies",{"dataGaName":900,"dataGaLocation":838,"id":901,"isOneTrustButton":378},{"text":1088,"config":1089},"Privacy",{"href":895,"dataGaName":896,"dataGaLocation":838},[1091],{"id":1092,"title":7,"body":334,"config":1093,"content":1095,"description":334,"extension":1103,"meta":1104,"navigation":378,"path":1105,"seo":1106,"stem":1107,"__hash__":1108},"blogAuthors/en-us/blog/authors/sid-sijbrandij.yml",{"template":1094},"BlogAuthor",{"role":1096,"name":7,"bio":1097,"config":1098},"Co-founder, Chief Executive Officer and Board Chair of GitLab Inc.","Sid Sijbrandij (pronounced see-brandy) is the Co-founder, Chief Executive Officer and Board Chair of GitLab Inc., the most comprehensive AI-powered DevSecOps platform. GitLab's single application helps organizations deliver software faster and more efficiently while strengthening their security and compliance.\n\nSid's career path has been anything but traditional. He spent four years building recreational submarines for U-Boat Worx and while at Ministerie van Justitie en Veiligheid he worked on the Legis project, which developed several innovative web applications to aid lawmaking. He first saw Ruby code in 2007 and loved it so much that he taught himself how to program. In 2012, as a Ruby programmer, he encountered GitLab and discovered his passion for open source. Soon after, Sid commercialized GitLab, and by 2015 he led the company through Y Combinator's Winter 2015 batch. Under his leadership, the company has grown with an estimated 30 million+ registered users from startups to global enterprises.\n\nSid studied at the University of Twente in the Netherlands where he received an M.S. in Management Science. Sid was named one of the greatest minds of the pandemic by Forbes for spreading the gospel of remote work.",{"headshot":1099,"twitter":1100,"linkedin":1101,"ctfId":1102},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665383/Blog/Author%20Headshots/sytses-headshot.png","https://twitter.com/sytses","https://www.linkedin.com/in/sijbrandij","sytses","yml",{},"/en-us/blog/authors/sid-sijbrandij",{},"en-us/blog/authors/sid-sijbrandij","ZdVvFbtL6NKLtKZEjFCVOecdpvuPzX3wmEZBrC6pRWg",[1110,1118,1125],{"title":1111,"description":1112,"heroImage":1113,"category":330,"date":1114,"authors":1115,"slug":1117,"externalUrl":334},"Why GitLab signed the Open Weights and American AI Leadership letter","GitLab supports customer choice, data privacy, and AI model neutrality, empowering teams to run secure, cost-effective, local solutions.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1785333264/ww4mlighwlvvzgnmbe6w.png","2026-07-29",[1116],"Bill Staples","open-weight-model-letter",{"title":1119,"description":1120,"heroImage":1121,"category":330,"date":1122,"authors":1123,"slug":1124,"externalUrl":334},"GitLab Act 2","A letter to our customers and our investors.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1776362275/ozbwn9tk0dditpnfddlz.png","2026-05-11",[1116],"gitlab-act-2",{"title":1126,"description":1127,"heroImage":1128,"category":330,"date":1129,"authors":1130,"slug":1132,"externalUrl":334},"GitLab named a 2026 Omdia Universe Leader","Omdia's 2026 report on AI-assisted software development ranked 19 vendors. Here is what GitLab's top scores mean for engineering teams.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1774465167/n5hlvrsrheadeccyr1oz.png","2026-04-13",[1131],"Rebecca Carter","gitlab-named-a-2026-omdia-universe-leader",{"header":1134,"text":1135,"button":1139,"disclaimer":1142},"Start your free\n\n30-day GitLab trial\n",[1136,1137,1138],"GitLab Duo Agent Platform access","Try our most advanced features","Automate complex tasks with AI",{"text":396,"config":1140},{"href":1141,"dataGaName":399,"dataGaLocation":635},"https://gitlab.com/-/trials/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/blog/","No credit card required.",{"header":1144,"blurb":1145,"button":1146,"secondaryButton":1151},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":1147,"config":1148},"Get your free trial",{"href":1149,"dataGaName":399,"dataGaLocation":1150},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":876,"config":1152},{"href":728,"dataGaName":404,"dataGaLocation":1150},1791990507954]