[{"data":1,"prerenderedAt":1482},["ShallowReactive",2],{"/en-us/blog/tags/git":3,"navigation-en-us":18,"banner-en-us":418,"footer-en-us":428,"git-tag-posts-en-us":670},{"id":4,"title":5,"body":6,"category":6,"config":7,"content":9,"description":6,"extension":11,"meta":12,"navigation":13,"path":14,"seo":15,"slug":6,"stem":16,"testContent":6,"type":6,"__hash__":17},"blogTags/en-us/blog/tags/git.yml","Git",null,{"template":8},"BlogTag",{"tag":10,"tagSlug":10},"git","yml",{},true,"/en-us/blog/tags/git",{},"en-us/blog/tags/git","f9yav7tdkPmMM9LFRsBxzcj-AXaYzF14HtbM4IcOubc",{"data":19},{"logo":20,"freeTrial":25,"sales":30,"login":35,"items":40,"search":348,"minimal":379,"duo":398,"pricingDeployment":408},{"config":21},{"href":22,"dataGaName":23,"dataGaLocation":24},"/","gitlab logo","header",{"text":26,"config":27},"Get free trial",{"href":28,"dataGaName":29,"dataGaLocation":24},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":31,"config":32},"Talk to sales",{"href":33,"dataGaName":34,"dataGaLocation":24},"/sales/","sales",{"text":36,"config":37},"Sign in",{"href":38,"dataGaName":39,"dataGaLocation":24},"https://gitlab.com/users/sign_in/","sign in",[41,68,163,168,269,329],{"text":42,"config":43,"cards":45},"Platform",{"dataNavLevelOne":44},"platform",[46,52,60],{"title":42,"description":47,"link":48},"The intelligent orchestration platform for DevSecOps",{"text":49,"config":50},"Explore our Platform",{"href":51,"dataGaName":44,"dataGaLocation":24},"/platform/",{"title":53,"description":54,"link":55},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":56,"config":57},"Meet GitLab Duo",{"href":58,"dataGaName":59,"dataGaLocation":24},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":61,"description":62,"link":63},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":64,"config":65},"Learn more",{"href":66,"dataGaName":67,"dataGaLocation":24},"/why-gitlab/","why gitlab",{"text":69,"left":13,"config":70,"link":72,"lists":76,"footer":145},"Product",{"dataNavLevelOne":71},"solutions",{"text":73,"config":74},"View all Solutions",{"href":75,"dataGaName":71,"dataGaLocation":24},"/solutions/",[77,101,124],{"title":78,"description":79,"link":80,"items":85},"Automation","CI/CD and automation to accelerate deployment",{"config":81},{"icon":82,"href":83,"dataGaName":84,"dataGaLocation":24},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[86,90,93,97],{"text":87,"config":88},"CI/CD",{"href":89,"dataGaLocation":24,"dataGaName":87},"/solutions/continuous-integration/",{"text":53,"config":91},{"href":58,"dataGaLocation":24,"dataGaName":92},"gitlab duo agent platform - product menu",{"text":94,"config":95},"Source Code Management",{"href":96,"dataGaLocation":24,"dataGaName":94},"/solutions/source-code-management/",{"text":98,"config":99},"Automated Software Delivery",{"href":83,"dataGaLocation":24,"dataGaName":100},"Automated software delivery",{"title":102,"description":103,"link":104,"items":109},"Security","Deliver code faster without compromising security",{"config":105},{"href":106,"dataGaName":107,"dataGaLocation":24,"icon":108},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[110,114,119],{"text":111,"config":112},"Application Security Testing",{"href":106,"dataGaName":113,"dataGaLocation":24},"Application security testing",{"text":115,"config":116},"Software Supply Chain Security",{"href":117,"dataGaLocation":24,"dataGaName":118},"/solutions/supply-chain/","Software supply chain security",{"text":120,"config":121},"Software Compliance",{"href":122,"dataGaName":123,"dataGaLocation":24},"/solutions/software-compliance/","software compliance",{"title":125,"link":126,"items":131},"Measurement",{"config":127},{"icon":128,"href":129,"dataGaName":130,"dataGaLocation":24},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[132,136,140],{"text":133,"config":134},"Visibility & Measurement",{"href":129,"dataGaLocation":24,"dataGaName":135},"Visibility and Measurement",{"text":137,"config":138},"Value Stream Management",{"href":139,"dataGaLocation":24,"dataGaName":137},"/solutions/value-stream-management/",{"text":141,"config":142},"Analytics & Insights",{"href":143,"dataGaLocation":24,"dataGaName":144},"/solutions/analytics-and-insights/","Analytics and insights",{"title":146,"items":147},"GitLab for",[148,153,158],{"text":149,"config":150},"Enterprise",{"href":151,"dataGaLocation":24,"dataGaName":152},"/enterprise/","enterprise",{"text":154,"config":155},"Small Business",{"href":156,"dataGaLocation":24,"dataGaName":157},"/small-business/","small business",{"text":159,"config":160},"Public Sector",{"href":161,"dataGaLocation":24,"dataGaName":162},"/solutions/public-sector/","public sector",{"text":164,"config":165},"Pricing",{"href":166,"dataGaName":167,"dataGaLocation":24,"dataNavLevelOne":167},"/pricing/","pricing",{"text":169,"config":170,"link":172,"lists":176,"feature":256},"Resources",{"dataNavLevelOne":171},"resources",{"text":173,"config":174},"View all resources",{"href":175,"dataGaName":171,"dataGaLocation":24},"/resources/",[177,210,228],{"title":178,"items":179},"Getting started",[180,185,190,195,200,205],{"text":181,"config":182},"Install",{"href":183,"dataGaName":184,"dataGaLocation":24},"/install/","install",{"text":186,"config":187},"Quick start guides",{"href":188,"dataGaName":189,"dataGaLocation":24},"/get-started/","quick setup checklists",{"text":191,"config":192},"Learn",{"href":193,"dataGaLocation":24,"dataGaName":194},"https://university.gitlab.com/","learn",{"text":196,"config":197},"Product documentation",{"href":198,"dataGaName":199,"dataGaLocation":24},"https://docs.gitlab.com/","product documentation",{"text":201,"config":202},"Best practice videos",{"href":203,"dataGaName":204,"dataGaLocation":24},"/getting-started-videos/","best practice videos",{"text":206,"config":207},"Integrations",{"href":208,"dataGaName":209,"dataGaLocation":24},"/integrations/","integrations",{"title":211,"items":212},"Discover",[213,218,223],{"text":214,"config":215},"Customer success stories",{"href":216,"dataGaName":217,"dataGaLocation":24},"/customers/","customer success stories",{"text":219,"config":220},"Blog",{"href":221,"dataGaName":222,"dataGaLocation":24},"/blog/","blog",{"text":224,"config":225},"Remote",{"href":226,"dataGaName":227,"dataGaLocation":24},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":229,"items":230},"Connect",[231,236,241,246,251],{"text":232,"config":233},"GitLab Services",{"href":234,"dataGaName":235,"dataGaLocation":24},"/services/","services",{"text":237,"config":238},"Community",{"href":239,"dataGaName":240,"dataGaLocation":24},"/community/","community",{"text":242,"config":243},"Forum",{"href":244,"dataGaName":245,"dataGaLocation":24},"https://forum.gitlab.com/","forum",{"text":247,"config":248},"Events",{"href":249,"dataGaName":250,"dataGaLocation":24},"/events/","events",{"text":252,"config":253},"Partners",{"href":254,"dataGaName":255,"dataGaLocation":24},"/partners/","partners",{"backgroundColor":257,"textColor":258,"text":259,"image":260,"link":264},"#2f2a6b","#fff","Insights for the future of software development",{"altText":261,"config":262},"the source promo card",{"src":263},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":265,"config":266},"Read the latest",{"href":267,"dataGaName":268,"dataGaLocation":24},"/the-source/","the source",{"text":270,"config":271,"lists":273},"Company",{"dataNavLevelOne":272},"company",[274],{"items":275},[276,281,287,289,294,299,304,309,314,319,324],{"text":277,"config":278},"About",{"href":279,"dataGaName":280,"dataGaLocation":24},"/company/","about",{"text":282,"config":283,"footerGa":286},"Jobs",{"href":284,"dataGaName":285,"dataGaLocation":24},"/jobs/","jobs",{"dataGaName":285},{"text":247,"config":288},{"href":249,"dataGaName":250,"dataGaLocation":24},{"text":290,"config":291},"Leadership",{"href":292,"dataGaName":293,"dataGaLocation":24},"/company/team/e-group/","leadership",{"text":295,"config":296},"Team",{"href":297,"dataGaName":298,"dataGaLocation":24},"/company/team/","team",{"text":300,"config":301},"Handbook",{"href":302,"dataGaName":303,"dataGaLocation":24},"https://handbook.gitlab.com/","handbook",{"text":305,"config":306},"Investor relations",{"href":307,"dataGaName":308,"dataGaLocation":24},"https://ir.gitlab.com/","investor relations",{"text":310,"config":311},"Trust Center",{"href":312,"dataGaName":313,"dataGaLocation":24},"/security/","trust center",{"text":315,"config":316},"AI Transparency Center",{"href":317,"dataGaName":318,"dataGaLocation":24},"/ai-transparency-center/","ai transparency center",{"text":320,"config":321},"Newsletter",{"href":322,"dataGaName":323,"dataGaLocation":24},"/company/contact/#contact-forms","newsletter",{"text":325,"config":326},"Press",{"href":327,"dataGaName":328,"dataGaLocation":24},"/press/","press",{"text":330,"config":331,"lists":332},"Contact us",{"dataNavLevelOne":272},[333],{"items":334},[335,338,343],{"text":31,"config":336},{"href":33,"dataGaName":337,"dataGaLocation":24},"talk to sales",{"text":339,"config":340},"Support portal",{"href":341,"dataGaName":342,"dataGaLocation":24},"https://support.gitlab.com","support portal",{"text":344,"config":345},"Customer portal",{"href":346,"dataGaName":347,"dataGaLocation":24},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":349,"login":350,"suggestions":357},"Close",{"text":351,"link":352},"To search repositories and projects, login to",{"text":353,"config":354},"gitlab.com",{"href":38,"dataGaName":355,"dataGaLocation":356},"search login","search",{"text":358,"default":359},"Suggestions",[360,362,366,368,372,376],{"text":53,"config":361},{"href":58,"dataGaName":53,"dataGaLocation":356},{"text":363,"config":364},"Code Suggestions (AI)",{"href":365,"dataGaName":363,"dataGaLocation":356},"/solutions/code-suggestions/",{"text":87,"config":367},{"href":89,"dataGaName":87,"dataGaLocation":356},{"text":369,"config":370},"GitLab on AWS",{"href":371,"dataGaName":369,"dataGaLocation":356},"/partners/technology-partners/aws/",{"text":373,"config":374},"GitLab on Google Cloud",{"href":375,"dataGaName":373,"dataGaLocation":356},"/partners/technology-partners/google-cloud-platform/",{"text":377,"config":378},"Why GitLab?",{"href":66,"dataGaName":377,"dataGaLocation":356},{"freeTrial":380,"mobileIcon":385,"desktopIcon":390,"secondaryButton":393},{"text":381,"config":382},"Start free trial",{"href":383,"dataGaName":29,"dataGaLocation":384},"https://gitlab.com/-/trials/new/","nav",{"altText":386,"config":387},"Gitlab Icon",{"src":388,"dataGaName":389,"dataGaLocation":384},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":386,"config":391},{"src":392,"dataGaName":389,"dataGaLocation":384},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":394,"config":395},"Get Started",{"href":396,"dataGaName":397,"dataGaLocation":384},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/compare/gitlab-vs-github/","get started",{"freeTrial":399,"mobileIcon":404,"desktopIcon":406},{"text":400,"config":401},"Learn more about GitLab Duo",{"href":402,"dataGaName":403,"dataGaLocation":384},"/gitlab-duo/","gitlab duo",{"altText":386,"config":405},{"src":388,"dataGaName":389,"dataGaLocation":384},{"altText":386,"config":407},{"src":392,"dataGaName":389,"dataGaLocation":384},{"freeTrial":409,"mobileIcon":414,"desktopIcon":416},{"text":410,"config":411},"Back to pricing",{"href":166,"dataGaName":412,"dataGaLocation":384,"icon":413},"back to pricing","GoBack",{"altText":386,"config":415},{"src":388,"dataGaName":389,"dataGaLocation":384},{"altText":386,"config":417},{"src":392,"dataGaName":389,"dataGaLocation":384},{"title":419,"button":420,"config":425},"See how agentic AI transforms software delivery",{"text":421,"config":422},"Watch GitLab Transcend now",{"href":423,"dataGaName":424,"dataGaLocation":24},"/events/transcend/virtual/","transcend event",{"layout":426,"icon":427},"release","AiStar",{"data":429},{"text":430,"source":431,"edit":437,"contribute":442,"config":447,"items":452,"minimal":659},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":432,"config":433},"View page source",{"href":434,"dataGaName":435,"dataGaLocation":436},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":438,"config":439},"Edit this page",{"href":440,"dataGaName":441,"dataGaLocation":436},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":443,"config":444},"Please contribute",{"href":445,"dataGaName":446,"dataGaLocation":436},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":448,"facebook":449,"youtube":450,"linkedin":451},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[453,500,554,598,625],{"title":164,"links":454,"subMenu":469},[455,459,464],{"text":456,"config":457},"View plans",{"href":166,"dataGaName":458,"dataGaLocation":436},"view plans",{"text":460,"config":461},"Why Premium?",{"href":462,"dataGaName":463,"dataGaLocation":436},"/pricing/premium/","why premium",{"text":465,"config":466},"Why Ultimate?",{"href":467,"dataGaName":468,"dataGaLocation":436},"/pricing/ultimate/","why ultimate",[470],{"title":471,"links":472},"Contact Us",[473,476,478,480,485,490,495],{"text":474,"config":475},"Contact sales",{"href":33,"dataGaName":34,"dataGaLocation":436},{"text":339,"config":477},{"href":341,"dataGaName":342,"dataGaLocation":436},{"text":344,"config":479},{"href":346,"dataGaName":347,"dataGaLocation":436},{"text":481,"config":482},"Status",{"href":483,"dataGaName":484,"dataGaLocation":436},"https://status.gitlab.com/","status",{"text":486,"config":487},"Terms of use",{"href":488,"dataGaName":489,"dataGaLocation":436},"/terms/","terms of use",{"text":491,"config":492},"Privacy statement",{"href":493,"dataGaName":494,"dataGaLocation":436},"/privacy/","privacy statement",{"text":496,"config":497},"Cookie preferences",{"dataGaName":498,"dataGaLocation":436,"id":499,"isOneTrustButton":13},"cookie preferences","ot-sdk-btn",{"title":69,"links":501,"subMenu":510},[502,506],{"text":503,"config":504},"DevSecOps platform",{"href":51,"dataGaName":505,"dataGaLocation":436},"devsecops platform",{"text":507,"config":508},"AI-Assisted Development",{"href":402,"dataGaName":509,"dataGaLocation":436},"ai-assisted development",[511],{"title":512,"links":513},"Topics",[514,519,524,529,534,539,544,549],{"text":515,"config":516},"CICD",{"href":517,"dataGaName":518,"dataGaLocation":436},"/topics/ci-cd/","cicd",{"text":520,"config":521},"GitOps",{"href":522,"dataGaName":523,"dataGaLocation":436},"/topics/gitops/","gitops",{"text":525,"config":526},"DevOps",{"href":527,"dataGaName":528,"dataGaLocation":436},"/topics/devops/","devops",{"text":530,"config":531},"Version Control",{"href":532,"dataGaName":533,"dataGaLocation":436},"/topics/version-control/","version control",{"text":535,"config":536},"DevSecOps",{"href":537,"dataGaName":538,"dataGaLocation":436},"/topics/devsecops/","devsecops",{"text":540,"config":541},"Cloud Native",{"href":542,"dataGaName":543,"dataGaLocation":436},"/topics/cloud-native/","cloud native",{"text":545,"config":546},"AI for Coding",{"href":547,"dataGaName":548,"dataGaLocation":436},"/topics/devops/ai-for-coding/","ai for coding",{"text":550,"config":551},"Agentic AI",{"href":552,"dataGaName":553,"dataGaLocation":436},"/topics/agentic-ai/","agentic ai",{"title":555,"links":556},"Solutions",[557,559,561,566,570,573,577,580,582,585,588,593],{"text":111,"config":558},{"href":106,"dataGaName":111,"dataGaLocation":436},{"text":100,"config":560},{"href":83,"dataGaName":84,"dataGaLocation":436},{"text":562,"config":563},"Agile development",{"href":564,"dataGaName":565,"dataGaLocation":436},"/solutions/agile-delivery/","agile delivery",{"text":567,"config":568},"SCM",{"href":96,"dataGaName":569,"dataGaLocation":436},"source code management",{"text":515,"config":571},{"href":89,"dataGaName":572,"dataGaLocation":436},"continuous integration & delivery",{"text":574,"config":575},"Value stream management",{"href":139,"dataGaName":576,"dataGaLocation":436},"value stream management",{"text":520,"config":578},{"href":579,"dataGaName":523,"dataGaLocation":436},"/solutions/gitops/",{"text":149,"config":581},{"href":151,"dataGaName":152,"dataGaLocation":436},{"text":583,"config":584},"Small business",{"href":156,"dataGaName":157,"dataGaLocation":436},{"text":586,"config":587},"Public sector",{"href":161,"dataGaName":162,"dataGaLocation":436},{"text":589,"config":590},"Education",{"href":591,"dataGaName":592,"dataGaLocation":436},"/solutions/education/","education",{"text":594,"config":595},"Financial services",{"href":596,"dataGaName":597,"dataGaLocation":436},"/solutions/finance/","financial services",{"title":169,"links":599},[600,602,604,606,609,611,613,615,617,619,621,623],{"text":181,"config":601},{"href":183,"dataGaName":184,"dataGaLocation":436},{"text":186,"config":603},{"href":188,"dataGaName":189,"dataGaLocation":436},{"text":191,"config":605},{"href":193,"dataGaName":194,"dataGaLocation":436},{"text":196,"config":607},{"href":198,"dataGaName":608,"dataGaLocation":436},"docs",{"text":219,"config":610},{"href":221,"dataGaName":222,"dataGaLocation":436},{"text":214,"config":612},{"href":216,"dataGaName":217,"dataGaLocation":436},{"text":224,"config":614},{"href":226,"dataGaName":227,"dataGaLocation":436},{"text":232,"config":616},{"href":234,"dataGaName":235,"dataGaLocation":436},{"text":237,"config":618},{"href":239,"dataGaName":240,"dataGaLocation":436},{"text":242,"config":620},{"href":244,"dataGaName":245,"dataGaLocation":436},{"text":247,"config":622},{"href":249,"dataGaName":250,"dataGaLocation":436},{"text":252,"config":624},{"href":254,"dataGaName":255,"dataGaLocation":436},{"title":270,"links":626},[627,629,631,633,635,637,639,643,648,650,652,654],{"text":277,"config":628},{"href":279,"dataGaName":272,"dataGaLocation":436},{"text":282,"config":630},{"href":284,"dataGaName":285,"dataGaLocation":436},{"text":290,"config":632},{"href":292,"dataGaName":293,"dataGaLocation":436},{"text":295,"config":634},{"href":297,"dataGaName":298,"dataGaLocation":436},{"text":300,"config":636},{"href":302,"dataGaName":303,"dataGaLocation":436},{"text":305,"config":638},{"href":307,"dataGaName":308,"dataGaLocation":436},{"text":640,"config":641},"Sustainability",{"href":642,"dataGaName":640,"dataGaLocation":436},"/sustainability/",{"text":644,"config":645},"Diversity, inclusion and belonging (DIB)",{"href":646,"dataGaName":647,"dataGaLocation":436},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":310,"config":649},{"href":312,"dataGaName":313,"dataGaLocation":436},{"text":320,"config":651},{"href":322,"dataGaName":323,"dataGaLocation":436},{"text":325,"config":653},{"href":327,"dataGaName":328,"dataGaLocation":436},{"text":655,"config":656},"Modern Slavery Transparency Statement",{"href":657,"dataGaName":658,"dataGaLocation":436},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":660},[661,664,667],{"text":662,"config":663},"Terms",{"href":488,"dataGaName":489,"dataGaLocation":436},{"text":665,"config":666},"Cookies",{"dataGaName":498,"dataGaLocation":436,"id":499,"isOneTrustButton":13},{"text":668,"config":669},"Privacy",{"href":493,"dataGaName":494,"dataGaLocation":436},[671,682,694,705,715,724,735,743,753,762,771,779,789,798,808,817,825,835,843,854,865,873,882,891,900,910,918,928,937,947,956,966,975,983,992,1002,1011,1020,1030,1038,1048,1058,1067,1077,1086,1098,1108,1118,1128,1138,1148,1157,1167,1176,1185,1194,1202,1212,1222,1231,1241,1251,1260,1269,1279,1289,1298,1308,1317,1327,1337,1347,1356,1364,1373,1383,1393,1402,1412,1422,1432,1441,1452,1462,1472],{"content":672,"config":680},{"title":673,"heroImage":674,"category":675,"description":676,"authors":677,"date":679},"What’s new in Git 2.53.0?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663087/Blog/Hero%20Images/git3-cover.png","open-source","Learn about release contributions, including fixes for geometric repacking, updates to git-fast-import(1) commit signature handing options, and more.",[678],"Justin Tobler","2026-02-02",{"slug":681,"externalUrl":-1},"whats-new-in-git-2-53-0",{"content":683,"config":692},{"title":684,"heroImage":685,"category":686,"description":687,"authors":688,"date":691},"Guide: Migrate from Azure DevOps to GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749658924/Blog/Hero%20Images/securitylifecycle-light.png","engineering","Learn how to carry out the full migration from Azure DevOps to GitLab using GitLab Professional Services migration tools — from planning and execution to post-migration follow-up tasks.",[689,690],"Evgeny Rudinsky","Michael Leopard","2025-12-03",{"slug":693,"externalUrl":-1},"migration-from-azure-devops-to-gitlab",{"content":695,"config":703},{"title":696,"heroImage":674,"category":675,"description":697,"authors":698,"date":702},"What’s new in Git 2.52.0?","Learn about release contributions, including the new git-last-modified(1) command, improvements to history-rewriting tools, and a new maintenance strategy.",[699,700,701],"Christian Couder","Toon Claes","Patrick Steinhardt","2025-11-17",{"slug":704,"externalUrl":-1},"whats-new-in-git-2-52-0",{"content":706,"config":713},{"title":707,"heroImage":708,"category":686,"description":709,"authors":710,"date":712},"Supercharge your Git workflows","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098264/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_519147119_2RafH61mqosMZv8HGAlsUj_1750098264407.jpg","Optimize git clone operations in any environment — up to 93% reduction in clone times and 98% reduction in disk space usage — with the Git Much Faster script.",[711],"Darwin Sanoy","2025-09-10",{"slug":714,"externalUrl":-1},"supercharge-your-git-workflows",{"content":716,"config":722},{"title":717,"heroImage":674,"category":675,"description":718,"authors":719,"date":721},"What’s new in Git 2.51.0?","Learn about the latest contributions from GitLab's Git team and the Git community, including performance optimizations for git-push(1) and git-fetch(1).",[720],"Karthik Nayak","2025-08-18",{"slug":723,"externalUrl":-1},"what-s-new-in-git-2-51-0",{"content":725,"config":733},{"title":726,"heroImage":727,"category":728,"description":729,"authors":730,"date":732},"Reduce the load on GitLab Gitaly with bundle URI","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099013/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2814%29_6VTUA8mUhOZNDaRVNPeKwl_1750099012960.png","product","Discover what the bundle URI Git feature is, how it is integrated into Gitaly, configuration best practices, and how GitLab users can benefit from it.",[731],"Olivier Campeau","2025-06-24",{"slug":734,"externalUrl":-1},"reduce-the-load-on-gitlab-gitaly-with-bundle-uri",{"content":736,"config":741},{"title":737,"heroImage":674,"category":675,"description":738,"authors":739,"date":740},"What’s new in Git 2.50.0?","Here are contributions from GitLab's Git team and the Git community such as the git-diff-pairs(1) command and git-update-ref(1) option to perform batched reference updates.",[678],"2025-06-16",{"slug":742,"externalUrl":-1},"what-s-new-in-git-2-50-0",{"content":744,"config":751},{"title":745,"heroImage":746,"category":686,"description":747,"authors":748,"date":750},"How we decreased GitLab repo backup times from 48 hours to 41 minutes","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097166/Blog/Hero%20Images/Blog/Hero%20Images/REFERENCE%20-%20display%20preview%20for%20blog%20images%20%282%29_2pKf8RsKzAaThmQfqHIaa7_1750097166565.png","Learn how we tracked a performance bottleneck to a 15-year-old Git function and fixed it, leading to enhanced efficiency that supports more robust backup strategies and can reduce risk.",[720,749],"Manuel Kraft","2025-06-05",{"slug":752,"externalUrl":-1},"how-we-decreased-gitlab-repo-backup-times-from-48-hours-to-41-minutes",{"content":754,"config":760},{"title":755,"heroImage":756,"category":675,"description":757,"authors":758,"date":759},"Journey through Git's 20-year history","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097380/Blog/Hero%20Images/Blog/Hero%20Images/git-20-years-opt2_TWNsNk8KH43b3jP0KLD0U_1750097380123.png","Follow along as we reminisce about the first commit, the unique aspects of the earliest releases, and the confusion sparked by an update to the git-push(1) default behavior.",[701],"2025-04-14",{"slug":761,"externalUrl":-1},"journey-through-gits-20-year-history",{"content":763,"config":769},{"title":764,"heroImage":765,"category":675,"description":766,"authors":767,"date":768},"Celebrating Git's 20th anniversary with creator Linus Torvalds","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662510/Blog/Hero%20Images/git-20-years-opt1.png","Discover the origins of the open-source version control system, why he handed over the reins a few months in, and what he thinks about adding new programming languages to Git.",[701],"2025-04-07",{"slug":770,"externalUrl":-1},"celebrating-gits-20th-anniversary-with-creator-linus-torvalds",{"content":772,"config":777},{"title":773,"heroImage":674,"category":675,"description":774,"authors":775,"date":776},"What's new in Git 2.49.0?","Learn about the latest version of Git, including improved performance thanks to zlib-ng, a new name-hashing algorithm, and git-backfill(1).",[700],"2025-03-14",{"slug":778,"externalUrl":-1},"whats-new-in-git-2-49-0",{"content":780,"config":787},{"title":781,"heroImage":782,"category":675,"description":783,"authors":784,"date":786},"How to use OCI images as the source of truth for continuous delivery","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097601/Blog/Hero%20Images/Blog/Hero%20Images/REFERENCE%20-%20Use%20this%20page%20as%20a%20reference%20for%20thumbnail%20sizes_76Tn5jFmEHY5LFj8RdDjNY_1750097600692.png","Discover the benefits of using Open Container Initiative images as part of GitOps workflows and the many features GitLab offers to simplify deployments to Kubernetes.",[785],"Daniel Helfand","2025-02-19",{"slug":788,"externalUrl":-1},"how-to-use-oci-images-as-the-source-of-truth-for-continuous-delivery",{"content":790,"config":796},{"title":791,"heroImage":792,"category":675,"description":793,"authors":794,"date":795},"What’s new in Git 2.48.0?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663691/Blog/Hero%20Images/AdobeStock_752438815.jpg","Learn about the latest version of Git, including a new build system and optimization in the new reftable backend. Discover contributions from GitLab's Git team and the Git community.",[699],"2025-01-10",{"slug":797,"externalUrl":-1},"whats-new-in-git-2-48-0",{"content":799,"config":806},{"title":800,"heroImage":801,"category":675,"description":802,"authors":803,"date":805},"Git command line on Windows with Git Bash","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749660028/Blog/Hero%20Images/blog-image-template-1800x945__25_.png","Learn about Git Bash, how it works, how to install it, and the main commands you need to know.",[804],"GitLab","2024-12-16",{"slug":807,"externalUrl":-1},"git-command-line-on-windows-with-git-bash",{"content":809,"config":815},{"title":810,"heroImage":811,"category":675,"description":812,"authors":813,"date":814},"What is Git? The ultimate guide to Git's role and functionality","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749673991/Blog/Hero%20Images/Git.jpg","Want to complete your projects with Git? Discover all of Git's benefits and features in our comprehensive guide.",[804],"2024-11-14",{"slug":816,"externalUrl":-1},"what-is-git-the-ultimate-guide-to-gits-role-and-functionality",{"content":818,"config":823},{"title":819,"heroImage":792,"category":675,"description":820,"authors":821,"date":822},"What's new in Git 2.47.0?","Learn about the latest version of Git, including new global variables to configure reference and object hash formats. Discover contributions from GitLab's Git team and the wider Git community.",[678],"2024-10-07",{"slug":824,"externalUrl":-1},"whats-new-in-git-2-47-0",{"content":826,"config":833},{"title":827,"heroImage":828,"category":675,"description":829,"authors":830,"date":832},"What is GitFlow?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659838/Blog/Hero%20Images/AdobeStock_662057734.jpg","This article introduces the differences between GitFlow and GitLab Flow, explains what GitFlow is, how it works, its benefits, and answers frequently asked questions.",[831],"GitLab Team","2024-09-27",{"slug":834,"externalUrl":-1},"what-is-gitflow",{"content":836,"config":841},{"title":837,"heroImage":801,"category":675,"description":838,"authors":839,"date":840},"Git pull vs. git fetch: What's the difference? ","Git pull is a Git command that performs both git fetch and git merge simultaneously. This article outlines the characteristics and appropriate uses of each.",[804],"2024-09-24",{"slug":842,"externalUrl":-1},"git-pull-vs-git-fetch-whats-the-difference",{"content":844,"config":852},{"title":845,"heroImage":846,"category":686,"description":847,"authors":848,"date":851},"Building GitLab with GitLab: A multi-region service to deliver AI features","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098664/Blog/Hero%20Images/Blog/Hero%20Images/building-gitlab-with-gitlab-no-type_building-gitlab-with-gitlab-no-type.png_1750098663794.png","Discover how we built our first multi-region deployment for teams at GitLab using the platform's many features, helping create a frictionless developer experience for GitLab Duo users.",[849,850],"Chance Feick","Sam Wiskow","2024-09-12",{"slug":853,"externalUrl":-1},"building-gitlab-with-gitlab-a-multi-region-service-to-deliver-ai-features",{"content":855,"config":863},{"title":856,"heroImage":857,"category":858,"description":859,"authors":860,"date":862},"GitLab now supports SHA256 repositories","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667390/Blog/Hero%20Images/blog-image-template-1800x945__19_.png","bulletin-board","Try this experimental security feature to create test projects.",[861],"John Cai","2024-08-19",{"slug":864,"externalUrl":-1},"gitlab-now-supports-sha256-repositories",{"content":866,"config":871},{"title":867,"heroImage":801,"category":675,"description":868,"authors":869,"date":870},"What’s new in Git 2.46.0?","Here are highlights of release contributions from GitLab's Git team and the wider Git community, including reference backend migration tooling and transactional symbolic reference updates.",[678],"2024-07-29",{"slug":872,"externalUrl":-1},"whats-new-in-git-2-46-0",{"content":874,"config":880},{"title":875,"heroImage":876,"category":675,"description":877,"authors":878,"date":879},"A beginner's guide to the Git reftable format","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664595/Blog/Hero%20Images/blog-image-template-1800x945__9_.png","In Git 2.45.0, GitLab upstreamed the reftable backend to Git, which completely changes how references are stored. Get an in-depth look at the inner workings of this new format.",[701],"2024-05-30",{"slug":881,"externalUrl":-1},"a-beginners-guide-to-the-git-reftable-format",{"content":883,"config":889},{"title":884,"heroImage":885,"category":675,"description":886,"authors":887,"date":888},"What’s new in Git 2.45.0?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659507/Blog/Hero%20Images/AdobeStock_623844718.jpg","Here are some highlights of contributions from GitLab's Git team and the wider Git community to the latest Git release, including reftables and better tooling for references.\n",[701],"2024-04-30",{"slug":890,"externalUrl":-1},"whats-new-in-git-2-45-0",{"content":892,"config":898},{"title":893,"heroImage":894,"category":675,"description":895,"authors":896,"date":897},"GitLab's contributions to Git 2.44.0","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666069/Blog/Hero%20Images/AdobeStock_639935439.jpg","Find out the topics that GitLab’s Git team – as well as the wider community – contributed to the latest Git release, including fast scripted rebases via git-replay.",[701],"2024-02-26",{"slug":899,"externalUrl":-1},"gitlabs-contributions-to-git-2-44-0",{"content":901,"config":908},{"title":902,"heroImage":903,"category":686,"description":904,"authors":905,"date":907},"Compose Readers and Writers in Golang applications","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099464/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_639935439_3oqldo5Yt5wPonEJYZOLTM_1750099464124.jpg","GitLab streams terabytes of Git data every hour using Golang abstractions of I/O implementations. Learn how to compose Readers and Writers in Golang apps.",[906],"Igor Drozdov","2024-02-15",{"slug":909,"externalUrl":-1},"compose-readers-and-writers-in-golang-applications",{"content":911,"config":916},{"title":912,"heroImage":885,"category":675,"description":913,"authors":914,"date":915},"The contributions we made to the Git 2.43 release","Git 2.43 included some improvements from GitLab's Git team. Here are some highlights from the work the team has done on Git and why it matters.",[861],"2024-01-11",{"slug":917,"externalUrl":-1},"the-contributions-we-made-to-the-git-2-43-release",{"content":919,"config":926},{"title":920,"heroImage":921,"category":675,"description":922,"authors":923,"date":925},"Google Summer of Code 2024: Contribute to GitLab and Git to prepare","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663000/Blog/Hero%20Images/tanukilifecycle.png","Learning how to contribute to GitLab and Git can help you get ready to apply for Google's program for open source development.",[924,699],"Nick Veenhof","2023-12-20",{"slug":927,"externalUrl":-1},"google-summer-of-code-2024-contribute-to-gitlab-and-git-to-prepare",{"content":929,"config":935},{"title":930,"heroImage":931,"category":686,"description":932,"authors":933,"date":934},"Why and how we rearchitected Git object database maintenance for scale","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664413/Blog/Hero%20Images/speedlights.png","Go in-depth into improvements to maintenance of the Git object database for reduced overhead and increased efficiency.",[701],"2023-11-02",{"slug":936,"externalUrl":-1},"rearchitecting-git-object-database-mainentance-for-scale",{"content":938,"config":945},{"title":939,"heroImage":940,"category":728,"description":941,"authors":942,"date":944},"Tutorial: Automate releases and release notes with GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659978/Blog/Hero%20Images/automation.png","With the GitLab Changelog API, you can automate the generation of release artifacts, release notes, and a comprehensive changelog detailing all user-centric software modifications.",[943],"Ben Ridley","2023-11-01",{"slug":946,"externalUrl":-1},"tutorial-automated-release-and-release-notes-with-gitlab",{"content":948,"config":954},{"title":949,"heroImage":950,"category":728,"description":951,"authors":952,"date":953},"Git 2.42 release: Here are four of our contributions in detail","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667792/Blog/Hero%20Images/git-241.jpg","Find out how GitLab's Git team helped improve Git 2.42.",[699],"2023-10-12",{"slug":955,"externalUrl":-1},"contributions-to-git-2-42-release",{"content":957,"config":964},{"title":958,"heroImage":959,"category":686,"description":960,"authors":961,"date":963},"How to adopt a cascading merge request strategy with GitLab Flow","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679851/Blog/Hero%20Images/cascade.jpg","This tutorial explains how to consolidate updates in a single branch and propagate them to other branches using ucascade bot.",[962],"Madou Coulibaly","2023-08-31",{"slug":965,"externalUrl":-1},"cascading-merge-requests-with-gitlab-flow",{"content":967,"config":973},{"title":968,"heroImage":950,"category":969,"description":970,"authors":971,"date":972},"GitLab Gitaly project now supports the SHA 256 hashing algorithm","news","Gitaly now supports SHA-256 repositories. Here's why it matters.",[861],"2023-08-28",{"slug":974,"externalUrl":-1},"sha256-support-in-gitaly",{"content":976,"config":981},{"title":977,"heroImage":950,"category":538,"description":978,"authors":979,"date":980},"Git 2.41 release - Here are five of our contributions in detail","Find out how GitLab's Git team helped improve the latest version of Git.",[861],"2023-06-20",{"slug":982,"externalUrl":-1},"contributions-to-latest-git-release",{"content":984,"config":990},{"title":985,"heroImage":986,"category":686,"description":987,"authors":988,"date":989},"Future-proofing Git repository maintenance","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749677736/Blog/Hero%20Images/Git.png","Learn how we revamped our architecture for faster iteration and more efficiently maintained repositories.",[701],"2023-03-20",{"slug":991,"externalUrl":-1},"scaling-repository-maintenance",{"content":993,"config":1000},{"title":994,"heroImage":995,"category":686,"description":996,"authors":997,"date":999},"Top 10 technical articles of 2022","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663736/Blog/Hero%20Images/a-deep-dive-into-the-security-analyst-persona.jpg","Let’s review our fantastic year of how-to guides. From fixing failed pipelines to making the best use of GitOps, we have you covered with our in-depth tutorials.",[998],"Valerie Silverthorne","2022-12-08",{"slug":1001,"externalUrl":-1},"top-10-technical-articles-of-2022",{"content":1003,"config":1009},{"title":1004,"heroImage":1005,"category":686,"description":1006,"authors":1007,"date":1008},"How to use Git rebase in real life","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682486/Blog/Hero%20Images/rebase-in-real-life.jpg","From fixup to autosquash here are real world ways to leverage Git rebase.",[700],"2022-11-08",{"slug":1010,"externalUrl":-1},"rebase-in-real-life",{"content":1012,"config":1018},{"title":1013,"heroImage":1014,"category":686,"description":1015,"authors":1016,"date":1017},"Take advantage of Git rebase","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665560/Blog/Hero%20Images/speedmonorepo.jpg","Tap into the Git rebase features to improve your workflow.",[699],"2022-10-06",{"slug":1019,"externalUrl":-1},"take-advantage-of-git-rebase",{"content":1021,"config":1028},{"title":1022,"heroImage":1023,"category":675,"description":1024,"authors":1025,"date":1027},"5 Git resources for visual learners","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668161/Blog/Hero%20Images/armycyberschool.jpg","Learning Git is not commonplace in code instruction, yet it is essential for modern software development. These sites get you started.",[1026],"PJ Metz","2022-09-14",{"slug":1029,"externalUrl":-1},"git-resources-for-visual-learners",{"content":1031,"config":1036},{"title":1032,"heroImage":1014,"category":686,"description":1033,"authors":1034,"date":1035},"Speed up your monorepo workflow in Git","Tap into the features that can reap huge savings in the long run for any developer team.",[861],"2022-09-06",{"slug":1037,"externalUrl":-1},"speed-up-your-monorepo-workflow-in-git",{"content":1039,"config":1046},{"title":1040,"heroImage":1041,"category":1042,"description":1043,"authors":1044,"date":1045},"Celebrating 17 years of Git","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679424/Blog/Hero%20Images/gitbirthday.jpg","insights","Here's the history, tips, tricks and even a mea culpa to help celebrate the 17th anniversary of Git.",[998],"2022-04-07",{"slug":1047,"externalUrl":-1},"celebrating-17-years-of-git",{"content":1049,"config":1056},{"title":1050,"heroImage":1051,"category":686,"description":1052,"authors":1053,"date":1055},"Git fetch performance improvements in 2021, Part 2 ","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663383/Blog/Hero%20Images/tanuki-bg-full.png","Looking back at the server-side performance improvements we made in 2021 for Git fetch.",[1054],"Jacob Vosmaer","2022-02-07",{"slug":1057,"externalUrl":-1},"git-fetch-performance-2021-part-2",{"content":1059,"config":1065},{"title":1060,"heroImage":1061,"category":686,"description":1062,"authors":1063,"date":1064},"How we made Git fetch performance improvements in 2021, part 1","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663397/Blog/Hero%20Images/logoforblogpost.jpg","Our Scalability team tackled a server CPU utilization issue. Here's the first part of a detailed look at performance improvements we made for Git fetch.",[1054],"2022-01-20",{"slug":1066,"externalUrl":-1},"git-fetch-performance",{"content":1068,"config":1075},{"title":1069,"heroImage":1070,"category":538,"description":1071,"authors":1072,"date":1074},"How to deploy the GitLab Agent for Kubernetes with limited permissions","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668655/Blog/Hero%20Images/seabass-creatives-U3m4_cKbUfc-unsplash.jpg"," Learn how to deploy the GitLab Agent for Kubernetes with Limited Permissions.",[1073],"Fernando Diaz","2021-09-10",{"slug":1076,"externalUrl":-1},"setting-up-the-k-agent",{"content":1078,"config":1084},{"title":1079,"heroImage":1061,"category":686,"description":1080,"authors":1081,"date":1083},"How to use Scaleway to self-host your GitLab Runners","Learn how to set up GitLab CI for your iOS and macOS projects using a hosted Mac mini M1.",[1082],"Benedikt Rollik","2021-06-07",{"slug":1085,"externalUrl":-1},"tuto-mac-m1-gitlab-ci",{"content":1087,"config":1096},{"title":1088,"heroImage":1089,"category":675,"description":1090,"authors":1091,"date":1095},"Technology internships meet open source in Outreachy","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664041/Blog/Hero%20Images/open-devops.png","Inside Outreachy technology internships, where participants work on Git.",[1092,1093,1094,699],"Joey Salazar","Charvi Mendiratta","Nuritzi Sanchez","2021-04-15",{"slug":1097,"externalUrl":-1},"outreachy-sponsorship-winter-2020",{"content":1099,"config":1106},{"title":1100,"heroImage":1101,"category":969,"description":1102,"authors":1103,"date":1105},"The new Git default branch name","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681942/Blog/Hero%20Images/git_gitlab.jpg","Why we're joining the Git community and updating \"master\" to \"main\".",[1104],"Daniel Gruesso","2021-03-10",{"slug":1107,"externalUrl":-1},"new-git-default-branch-name",{"content":1109,"config":1116},{"title":1110,"heroImage":1111,"category":969,"description":1112,"authors":1113,"date":1115},"A new era of Kubernetes integrations on GitLab.com","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681920/Blog/Hero%20Images/kubernetes.png","The GitLab Agent for Kubernetes enables secure deployments from GitLab SaaS to your Kubernetes cluster and provides deep integrations of your cluster to GitLab.",[1114],"Viktor Nagy","2021-02-22",{"slug":1117,"externalUrl":-1},"gitlab-kubernetes-agent-on-gitlab-com",{"content":1119,"config":1126},{"title":1120,"heroImage":1121,"category":686,"description":1122,"authors":1123,"date":1125},"Meet Praefect: The traffic manager making your Git data highly available","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669204/Blog/Hero%20Images/traffic-intersection.jpg","This router and transaction manager ensures there are multiple copies of each Git repository available in the event of an outage – no NFS required.",[1124],"Zeger-Jan van de Weg","2021-01-21",{"slug":1127,"externalUrl":-1},"high-availability-git-storage-with-praefect",{"content":1129,"config":1136},{"title":1130,"heroImage":1131,"category":686,"description":1132,"authors":1133,"date":1135},"How to keep your Git history clean with interactive rebase","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662593/Blog/Hero%20Images/title-image.png","Interactive rebase is one of Git’s most versatile tools. Here's how to use it to correct commit messages, fix mistakes, and more.",[1134],"Tobias Günther","2020-11-23",{"slug":1137,"externalUrl":-1},"keep-git-history-clean-with-interactive-rebase",{"content":1139,"config":1146},{"title":1140,"heroImage":1141,"category":1042,"description":1142,"authors":1143,"date":1145},"Why you should move from centralized version control to distributed version control","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681766/Blog/Hero%20Images/distributedvcs.jpg","We share a few reasons why high-performing software development teams use distributed version control systems over centralized version control.",[1144],"Suri Patel","2020-11-19",{"slug":1147,"externalUrl":-1},"move-to-distributed-vcs",{"content":1149,"config":1155},{"title":1150,"heroImage":1151,"category":1042,"description":1152,"authors":1153,"date":1154},"Migrating your version control to Git? Here’s what you need to know","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681731/Blog/Hero%20Images/migrategit.jpg","Change is hard, but moving to Git doesn’t have to be if you read these tips.",[1144],"2020-11-12",{"slug":1156,"externalUrl":-1},"migrating-your-version-control-to-git",{"content":1158,"config":1165},{"title":1159,"heroImage":1160,"category":969,"description":1161,"authors":1162,"date":1164},"Why AppsFlyer moved from Bitbucket to GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681252/Blog/Hero%20Images/gitlab-appsflyer.png","AppsFlyer migrated from Mercurial to Git so the company could move to GitLab's open source, self-managed solution.",[1163],"Sara Kassabian","2020-04-27",{"slug":1166,"externalUrl":-1},"appsflyer-moves-to-gitlab",{"content":1168,"config":1174},{"title":1169,"heroImage":1170,"category":675,"description":1171,"authors":1172,"date":1173},"Our ultimate guide to Git","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681222/Blog/Hero%20Images/git-15th-anniversary-cover.png","Open source pioneer Git is 15 years old. Here is our guide to making the most of it.",[998],"2020-04-20",{"slug":1175,"externalUrl":-1},"ultimate-git-guide",{"content":1177,"config":1183},{"title":1178,"heroImage":1179,"category":969,"description":1180,"authors":1181,"date":1182},"#GitChallenge: Compare GitLab to GitHub and earn swag","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681235/Blog/Hero%20Images/hero-blog-gitlab-github.jpg","Send us a review of GitLab and GitHub and get swag.",[804],"2020-04-14",{"slug":1184,"externalUrl":-1},"github-free-for-teams",{"content":1186,"config":1192},{"title":1187,"heroImage":1170,"category":1042,"description":1188,"authors":1189,"date":1191},"A guide to Git for beginners","Our senior developer evangelist answers newbie questions about Git.",[1190],"Brendan O'Leary","2020-04-13",{"slug":1193,"externalUrl":-1},"beginner-git-guide",{"content":1195,"config":1200},{"title":1196,"heroImage":1170,"category":675,"description":1197,"authors":1198,"date":1199},"15 Git tips to improve your workflow","Learn how to compare commits, delete stale branches, and write aliases to save you some time. It's time to dust off your command line and Git busy!",[1144],"2020-04-07",{"slug":1201,"externalUrl":-1},"15-git-tips-improve-workflow",{"content":1203,"config":1210},{"title":1204,"heroImage":1205,"category":675,"description":1206,"authors":1207,"date":1209},"Git Merge 2020: a celebration of Git","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681154/Blog/Hero%20Images/GitLab-sponsoring-Git-Merge.jpg","A look at Git Merge 2020 and a look forward to the next decade of remote, async, and powerful source code management.",[1208],"Jordi Mon","2020-03-25",{"slug":1211,"externalUrl":-1},"git-merge-fifteen-year-git-party",{"content":1213,"config":1220},{"title":1214,"heroImage":1215,"category":675,"description":1216,"authors":1217,"date":1219},"How Git Partial Clone lets you fetch only the large file you need","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681131/Blog/Hero%20Images/partial-clone-for-massive-repositories.jpg","Work faster with this experimental Partial Clone feature for huge Git repositories, saving you time, bandwidth, and storage, one large file at a time.",[1218],"James Ramsay","2020-03-13",{"slug":1221,"externalUrl":-1},"partial-clone-for-massive-repositories",{"content":1223,"config":1229},{"title":1224,"heroImage":1225,"category":675,"description":1226,"authors":1227,"date":1228},"The problem with Git flow","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681121/Blog/Hero%20Images/whatisgitlabflow.jpg","Learn why Git flow complicates the lifecycle and discover an alternative to streamline development.",[1144],"2020-03-05",{"slug":1230,"externalUrl":-1},"what-is-gitlab-flow",{"content":1232,"config":1239},{"title":1233,"heroImage":1234,"category":1042,"description":1235,"authors":1236,"date":1238},"Goldman Sachs partners with GitLab for next-gen platform strategies","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671845/Blog/Hero%20Images/serverless-ops-blog.jpg","Goldman Sachs’ George Grant shares how partnering with GitLab has modernized the development ecosystem.",[1237],"Brein Matturro","2020-01-24",{"slug":1240,"externalUrl":-1},"goldman-sachs-partners-with-gitlab-for-next-gen-platform-strategies",{"content":1242,"config":1249},{"title":1243,"heroImage":1244,"category":686,"description":1245,"authors":1246,"date":1248},"What tracking down missing TCP Keepalives taught me about Docker, Golang, and GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680874/Blog/Hero%20Images/network.jpg","An in-depth recap of debugging a bug in the Docker client library.",[1247],"Stan Hu","2019-11-15",{"slug":1250,"externalUrl":-1},"tracking-down-missing-tcp-keepalives",{"content":1252,"config":1258},{"title":1253,"heroImage":1254,"category":675,"description":1255,"authors":1256,"date":1257},"Optimize GitOps workflow with version control from GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749673081/Blog/Hero%20Images/gitops-image-unsplash.jpg","A GitOps workflow improves development, operations and business processes and GitLab’s CI plays a vital role.",[1237],"2019-10-28",{"slug":1259,"externalUrl":-1},"optimize-gitops-workflow",{"content":1261,"config":1267},{"title":1262,"heroImage":1263,"category":675,"description":1264,"authors":1265,"date":1266},"Redbox delivers On Demand with GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749673064/Blog/Hero%20Images/redbox-blog-jannes-glas-unsplash.jpg","Redbox's Joel Vasallo and Nicholas Konieczko explain how they ‘deliver software like a fox’ with GitLab.",[1237],"2019-10-01",{"slug":1268,"externalUrl":-1},"redbox-on-demand-delivers-with-gitlab",{"content":1270,"config":1277},{"title":1271,"heroImage":1272,"category":686,"description":1273,"authors":1274,"date":1276},"6 Lessons we learned when debugging a scaling problem on GitLab.com","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667913/Blog/Hero%20Images/clocks.jpg","Get a closer look at how we investigated errors originating from scheduled jobs, and how we stumbled upon \"the tyranny of the clock.\"",[1275],"Craig Miskell","2019-08-27",{"slug":1278,"externalUrl":-1},"tyranny-of-the-clock",{"content":1280,"config":1287},{"title":1281,"heroImage":1282,"category":1283,"description":1284,"authors":1285,"date":1286},"GitLab 101 – a primer for the non-technical","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678544/Blog/Hero%20Images/gitlab101.jpg","culture","If a set-in-her-ways English major can conquer the GitLab product and culture, you can too. Here’s what you need to know.",[998],"2019-08-02",{"slug":1288,"externalUrl":-1},"gitlab-for-the-non-technical",{"content":1290,"config":1296},{"title":1291,"heroImage":1292,"category":686,"description":1293,"authors":1294,"date":1295},"What we're doing to fix Gitaly NFS performance regressions","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670065/Blog/Hero%20Images/git-performance-nfs.jpg","How we're improving our Git IO patterns to fix performance regressions when running Gitaly on NFS.",[1218,1124],"2019-07-08",{"slug":1297,"externalUrl":-1},"git-performance-on-nfs",{"content":1299,"config":1306},{"title":1300,"heroImage":1301,"category":1042,"description":1302,"authors":1303,"date":1305},"Proximus shares its #movingtoGitLab story","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678603/Blog/Hero%20Images/traffic-at-sunset.jpg","Moving to GitLab resulted in an 80 percent drop in support tickets and an increase in developer productivity.",[1304],"Bert Van Eyck","2019-06-07",{"slug":1307,"externalUrl":-1},"proximus-customer-story-clearcase-to-gitlab",{"content":1309,"config":1315},{"title":1310,"heroImage":1061,"category":272,"description":1311,"authors":1312,"date":1314},"Git ransom campaign incident report","This is a coordinated effort to help educate and inform users on secure best practices relating to the recent Git ransomware incident.",[1313],"Atlassian Bitbucket, GitHub, GitLab","2019-05-14",{"slug":1316,"externalUrl":-1},"git-ransom-campaign-incident-report-atlassian-bitbucket-github-gitlab",{"content":1318,"config":1325},{"title":1319,"heroImage":1320,"category":1042,"description":1321,"authors":1322,"date":1324},"Let’s talk about commitment","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671258/Blog/Hero%20Images/just-commit-blog-cover.png","What possibilities could you unlock by just making the choice, committing, and moving forward?",[1323],"Todd Barr","2019-02-18",{"slug":1326,"externalUrl":-1},"just-commit-launch",{"content":1328,"config":1335},{"title":1329,"heroImage":1330,"category":686,"description":1331,"authors":1332,"date":1334},"How to tidy up your merge requests with Git","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672243/Blog/Hero%20Images/git-tricks-cover-image.png","Here's how to use a Git feature that saves a lot of time and cleans up your MRs.",[1333],"Ronald van Zon","2019-02-07",{"slug":1336,"externalUrl":-1},"start-using-git",{"content":1338,"config":1345},{"title":1339,"heroImage":1340,"category":686,"description":1341,"authors":1342,"date":1344},"Pre-commit and post-deploy code reviews are dead","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678861/Blog/Hero%20Images/pre-commit.jpg","In a world with Git, pre-commit and post-deploy code reviews are relics that can be eliminated from your workflow.",[1343],"Aricka Flowers","2019-01-31",{"slug":1346,"externalUrl":-1},"pre-commit-post-deploy-is-dead",{"content":1348,"config":1354},{"title":1349,"heroImage":1350,"category":1283,"description":1351,"authors":1352,"date":1353},"How we use Git as the blockchain for process changes","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679971/Blog/Hero%20Images/git-blockchain.jpg","Git can be useful for more than just coding and operations. It can help you run your entire business – here's how we do it.",[1343],"2019-01-15",{"slug":1355,"externalUrl":-1},"git-for-business-processes",{"content":1357,"config":1362},{"title":1358,"heroImage":1061,"category":686,"description":1359,"authors":1360,"date":1361},"Git Protocol v2 now enabled for SSH on GitLab.com","Fetch faster using Git Protocol v2 – here's how.",[1218],"2018-12-10",{"slug":1363,"externalUrl":-1},"git-protocol-v2-enabled-for-ssh-on-gitlab-dot-com",{"content":1365,"config":1371},{"title":1366,"heroImage":1367,"category":686,"description":1368,"authors":1369,"date":1370},"How we spent two weeks hunting an NFS bug in the Linux kernel","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672173/Blog/Hero%20Images/nfs-bug-hunt-detective.jpg","Here's an in-depth recap of debugging a GitLab issue that culminated in a patch for the Linux kernel.",[1247],"2018-11-14",{"slug":1372,"externalUrl":-1},"how-we-spent-two-weeks-hunting-an-nfs-bug",{"content":1374,"config":1381},{"title":1375,"heroImage":1376,"category":686,"description":1377,"authors":1378,"date":1380},"New Meltano personas, priorities, and updates from the team","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678847/Blog/Hero%20Images/meltano-fgu.jpg","There's a lot going on — here are some of the highlights on user research, dogfooding Meltano, embedding engineers, and hiring!",[1379],"Jacob Schatz","2018-10-08",{"slug":1382,"externalUrl":-1},"meltano-functional-group-update-post",{"content":1384,"config":1391},{"title":1385,"heroImage":1386,"category":686,"description":1387,"authors":1388,"date":1390},"How to work on two Git branches at the same time","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678782/Blog/Hero%20Images/working-on-two-git-branches-at-the-same-time.jpg","Watch the demo on how using the GitLab Web IDE and your local dev environment to work on two branches at once can help save time.",[1389],"William Chia","2018-10-03",{"slug":1392,"externalUrl":-1},"working-on-two-git-branches-at-the-same-time",{"content":1394,"config":1400},{"title":1395,"heroImage":1396,"category":686,"description":1397,"authors":1398,"date":1399},"The road to Gitaly v1.0 (aka, why GitLab doesn't require NFS for storing Git data anymore)","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670092/Blog/Hero%20Images/road-to-gitaly.jpg","How we went from vertical to horizontal scaling without depending on NFS by creating our own Git RPC service.",[1124],"2018-09-12",{"slug":1401,"externalUrl":-1},"the-road-to-gitaly-1-0",{"content":1403,"config":1410},{"title":1404,"heroImage":1405,"category":686,"description":1406,"authors":1407,"date":1409},"Git happens! 6 Common Git mistakes and how to fix them","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678743/Blog/Hero%20Images/fix-common-git-mistakes.jpg","Whether you added the wrong file, committed directly to master, or some other mishap, we've got you covered.",[1408],"Sam Beckham","2018-08-08",{"slug":1411,"externalUrl":-1},"git-happens",{"content":1413,"config":1420},{"title":1414,"heroImage":1415,"category":686,"description":1416,"authors":1417,"date":1419},"How to simplify your smart home configuration with GitLab CI/CD","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678717/Blog/Hero%20Images/ci-smart-home-configuration.jpg","How to use GitLab pipelines to automatically test and deploy new home-assistant configurations, wherever you are.",[1418],"Mario de la Ossa","2018-08-02",{"slug":1421,"externalUrl":-1},"using-the-gitlab-ci-slash-cd-for-smart-home-configuration-management",{"content":1423,"config":1430},{"title":1424,"heroImage":1425,"category":686,"description":1426,"authors":1427,"date":1429},"How (and why!) to keep your Git commit history clean","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659457/Blog/Hero%20Images/keep-git-commit-history-clean.jpg","Git commit history is very easy to mess up, here's how you can fix it!",[1428],"Kushal Pandya","2018-06-07",{"slug":1431,"externalUrl":-1},"keeping-git-commit-history-clean",{"content":1433,"config":1439},{"title":1434,"heroImage":1435,"category":675,"description":1436,"authors":1437,"date":1438},"Congratulations GitHub on the acquisition by Microsoft","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680101/Blog/Hero%20Images/github-news-cover.png","The acquisition of GitHub by Microsoft is validation of the growing influence of software developers in the world.",[804],"2018-06-03",{"slug":1440,"externalUrl":-1},"microsoft-acquires-github",{"content":1442,"config":1450},{"title":1443,"heroImage":1444,"category":675,"description":1445,"authors":1446,"date":1449},"Git: Not just for developers","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670464/Blog/Hero%20Images/gitlab-loves-open-source.jpg","How one company helps video editors, developers, and project managers to collaborate on interactive video, by leveraging the power of open source.",[1447,1448],"Opher Vishnia","Roy Taragan","2018-05-24",{"slug":1451,"externalUrl":-1},"git-not-just-for-developers",{"content":1453,"config":1460},{"title":1454,"heroImage":1455,"category":686,"description":1456,"authors":1457,"date":1459},"GitBot – automating boring Git operations with CI","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672374/Blog/Hero%20Images/gitbot-automate-git-operations.jpg","Guest author Kristian Larsson shares how he automates some common Git operations, like rebase, using GitLab CI.",[1458],"Kristian Larsson","2017-11-02",{"slug":1461,"externalUrl":-1},"automating-boring-git-operations-gitlab-ci",{"content":1463,"config":1470},{"title":1464,"heroImage":1465,"category":686,"description":1466,"authors":1467,"date":1469},"Git Wars: Why I'm switching to GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680411/Blog/Hero%20Images/git-wars-switching-to-gitlab.jpg","New GitLab user Christopher Watson puts us through our paces and weighs up his Git hosting options.",[1468],"Christopher Watson","2017-07-19",{"slug":1471,"externalUrl":-1},"git-wars-switching-to-gitlab",{"content":1473,"config":1480},{"title":1474,"heroImage":1475,"category":1042,"description":1476,"authors":1477,"date":1479},"From 2/3 of the self-managed Git market, to the next-generation CI system, to Auto DevOps","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679783/Blog/Hero%20Images/whats-next-for-gitlab-ci.jpg","GitLab first became the standard for self hosting git with two-thirds of the market, then became the next generation CI system, and the next step is creating Auto DevOps.",[1478],"Sid Sijbrandij","2017-06-29",{"slug":1481,"externalUrl":-1},"whats-next-for-gitlab-ci",1772652080228]