[{"data":1,"prerenderedAt":1347},["ShallowReactive",2],{"/fr-fr/blog/whats-new-in-git-2-48-0":3,"navigation-fr-fr":565,"banner-fr-fr":998,"footer-fr-fr":1006,"blog-post-authors-fr-fr-Christian Couder":1245,"blog-related-posts-fr-fr-whats-new-in-git-2-48-0":1260,"blog-promotions-fr-fr":1284,"next-steps-fr-fr":1338},{"id":4,"title":5,"authors":6,"body":8,"category":542,"date":543,"description":544,"extension":545,"externalUrl":546,"faq":546,"featured":547,"heroImage":548,"meta":549,"navigation":547,"path":550,"seo":551,"slug":556,"stem":557,"tags":558,"template":562,"updatedDate":563,"__hash__":564},"blogPosts/fr-fr/blog/whats-new-in-git-2-48-0.md","Nouveautés de Git 2.48.0",[7],"Christian Couder",{"type":9,"value":10,"toc":531},"minimark",[11,22,27,55,64,79,82,98,101,200,211,229,236,240,249,252,255,260,264,291,305,320,327,331,346,349,362,365,369,389,398,401,406,413,420,429,432,445,452,456,471,474,483,488,492,500,527],[12,13,14,15,21],"p",{},"Le projet Git a récemment publié la ",[16,17,20],"a",{"href":18,"rel":19},"https://lore.kernel.org/git/xmqqplku7cvm.fsf@gitster.g/",[],"version 2.48.0 de Git",". Jetons un coup d'œil aux points forts de cette nouvelle version, comprenant des contributions de l'équipe Git de GitLab et de la communauté Git au sens large.",[23,24,26],"h2",{"id":25},"système-de-compilation-meson","Système de compilation Meson",[12,28,29,30,36,37,42,43,48,49,54],{},"Pendant longtemps, ",[16,31,35],{"href":32,"rel":33,"title":34},"https://about.gitlab.com/fr-fr/blog/what-is-git/",[],"Qu'est-ce que Git ? ","Git"," pouvait être compilé en utilisant un système de compilation basé sur des ",[16,38,41],{"href":39,"rel":40},"https://fr.wikipedia.org/wiki/Make",[],"Makefile"," ou sur ",[16,44,47],{"href":45,"rel":46},"https://fr.wikipedia.org/wiki/Autoconf",[],"Autoconf",". Les équipes de développement Git utilisaient principalement le système de compilation basé sur des Makefile.\n",[16,50,53],{"href":51,"rel":52},"https://lore.kernel.org/git/GV1PR02MB848925A79A9DD733848182D58D662@GV1PR02MB8489.eurprd02.prod.outlook.com/",[],"Le système de compilation basé sur Autoconf a donc pris du retard"," en termes de fonctionnalités et de maintenance. Autre problème : de nombreux développeurs Windows utilisaient des environnements de développement intégrés (IDE) qui ne\nprenaient pas correctement en charge les systèmes de compilation basés sur des Makefile et Autoconf.",[12,56,57,58,63],{},"Depuis 2020, il est possible de compiler Git à l'aide de ",[16,59,62],{"href":60,"rel":61},"https://cmake.org/",[],"CMake",". CMake a permis une meilleure prise en charge de Windows et une meilleure intégration avec les IDE, en particulier Visual Studio. Il a également apporté certaines fonctionnalités des systèmes de compilation modernes, telles que les compilations hors source.",[12,65,66,67,72,73,78],{},"Récemment, il est apparu que la prise en charge de CMake était également à la traîne\net que cette option pourrait ne jamais remplacer les deux autres\nsystèmes de compilation de manière satisfaisante. C'est pourquoi ",[16,68,71],{"href":69,"rel":70},"https://gitlab.com/pks-gitlab",[],"Patrick Steinhardt",", Git Engineering Manager chez GitLab, a mis en œuvre la prise en charge du système de compilation ",[16,74,77],{"href":75,"rel":76},"https://mesonbuild.com/",[],"Meson","\ndans le but de remplacer à terme les systèmes de compilation basés sur Autoconf, CMake et peut-être même les Makefile.",[12,80,81],{},"Le nouveau système de compilation basé sur Meson présente les avantages suivants :",[83,84,85,89,92,95],"ul",{},[86,87,88],"li",{},"Il permet aux utilisateurs de trouver facilement les options de compilation disponibles, ce qui est difficile avec les Makefile et CMake.",[86,90,91],{},"Sa syntaxe est plus simple que celles d'Autoconf et de CMake.",[86,93,94],{},"Il prend en charge de nombreux systèmes d'exploitation, compilateurs et IDE différents.",[86,96,97],{},"Il prend en charge les fonctionnalités des systèmes de compilation modernes, telles que les compilations hors source.",[12,99,100],{},"Voici un exemple qui montre comment l'utiliser pour compiler Git :",[102,103,108],"pre",{"className":104,"code":105,"language":106,"meta":107,"style":107},"language-shell shiki shiki-themes github-light","$ cd git                # go into the root of Git's source code\n$ meson setup build/    # setup \"build\" as a build directory\n$ cd build              # go into the \"build\" directory\n$ meson compile         # actually build Git\n$ meson test            # test the new build\n$ meson install         # install the new build\n\n","shell","",[109,110,111,131,148,161,174,187],"code",{"__ignoreMap":107},[112,113,116,120,124,127],"span",{"class":114,"line":115},"line",1,[112,117,119],{"class":118},"s7eDp","$",[112,121,123],{"class":122},"sYBdl"," cd",[112,125,126],{"class":122}," git",[112,128,130],{"class":129},"sAwPA","                # go into the root of Git's source code\n",[112,132,134,136,139,142,145],{"class":114,"line":133},2,[112,135,119],{"class":118},[112,137,138],{"class":122}," meson",[112,140,141],{"class":122}," setup",[112,143,144],{"class":122}," build/",[112,146,147],{"class":129},"    # setup \"build\" as a build directory\n",[112,149,151,153,155,158],{"class":114,"line":150},3,[112,152,119],{"class":118},[112,154,123],{"class":122},[112,156,157],{"class":122}," build",[112,159,160],{"class":129},"              # go into the \"build\" directory\n",[112,162,164,166,168,171],{"class":114,"line":163},4,[112,165,119],{"class":118},[112,167,138],{"class":122},[112,169,170],{"class":122}," compile",[112,172,173],{"class":129},"         # actually build Git\n",[112,175,177,179,181,184],{"class":114,"line":176},5,[112,178,119],{"class":118},[112,180,138],{"class":122},[112,182,183],{"class":122}," test",[112,185,186],{"class":129},"            # test the new build\n",[112,188,190,192,194,197],{"class":114,"line":189},6,[112,191,119],{"class":118},[112,193,138],{"class":122},[112,195,196],{"class":122}," install",[112,198,199],{"class":129},"         # install the new build\n",[12,201,202,203,206,207,210],{},"Plusieurs répertoires de compilation peuvent être configurés à l'aide de ",[109,204,205],{},"meson setup \u003Cbuild_dir>",". La configuration de la compilation dans un répertoire de compilation peut être affichée ou modifiée en exécutant ",[109,208,209],{},"meson configure"," à l'intérieur de ce répertoire.",[12,212,213,214,222,223,228],{},"Vous trouverez plus d'informations sur la façon de compiler Git à l'aide de Meson en haut du ",[16,215,218,219],{"href":216,"rel":217},"https://gitlab.com/gitlab-org/git/-/blob/master/meson.build",[],"fichier ",[109,220,221],{},"meson.build"," dans le dépôt de code Git. Une\n",[16,224,227],{"href":225,"rel":226},"https://gitlab.com/gitlab-org/git/-/blob/master/Documentation/technical/build-systems.txt",[],"comparaison des différents systèmes de compilation"," pour Git est disponible dans la documentation technique de Git.",[12,230,231,232,235],{},"Ce projet a été mené par ",[16,233,71],{"href":69,"rel":234},[],".",[23,237,239],{"id":238},"git-est-maintenant-exempt-de-fuites-de-mémoire-tel-que-vérifié-par-la-suite-de-tests","Git est maintenant exempt de fuites de mémoire (tel que vérifié par la suite de tests)",[12,241,242,243,248],{},"Dans notre article présentant la version Git 2.47.0 précédente, nous\navons évoqué nos ",[16,244,247],{"href":245,"rel":246},"https://about.gitlab.com/fr-fr/blog/whats-new-in-git-2-47-0/#r%C3%A9usinage-du-code-et-am%C3%A9lioration-de-la-maintenabilit%C3%A9",[],"efforts constants pour corriger toutes les fuites de mémoire"," mises en évidence par les tests existants dans le projet. Comme nous l'avons souligné, avant la version 2.47.0 de Git, le projet comptait 223 fichiers de test contenant des fuites de mémoire.\nCe nombre avait été réduit à seulement 60.",[12,250,251],{},"Nous avons le plaisir d'annoncer que les fuites de mémoire dans ces 60 fichiers de test restants ont été résolues. En conséquence, Git, tel qu'il est vérifié par la suite de tests, est désormais exempt de fuites de mémoire. Il s'agit d'une étape importante menant vers notre objectif de longue date de partitionner les composants internes de Git en une bibliothèque de composants. Cette amélioration aidera également à optimiser l'utilisation de la mémoire avec Git.",[12,253,254],{},"Tout test nouvellement ajouté doit désormais être exempt de fuites de mémoire par défaut. Il demeure possible d'exécuter des tests contenant des fuites de mémoire, mais les auteurs devront demander une exception pour cela et justifier pourquoi leur test ne peut pas être exempt de fuites de mémoire.",[12,256,231,257,235],{},[16,258,71],{"href":69,"rel":259},[],[23,261,263],{"id":262},"amélioration-des-vérifications-du-bundle-uri","Amélioration des vérifications du bundle URI",[12,265,266,267,272,273,278,279,284,285,290],{},"Dans notre article présentant la version 2.46.0 de Git, nous avons mentionné\ncertaines ",[16,268,271],{"href":269,"rel":270},"https://about.gitlab.com/fr-fr/blog/whats-new-in-git-2-46-0/#correction-du-bundle-uri",[],"corrections du bundle URI","\napportées par ",[16,274,277],{"href":275,"rel":276},"https://lore.kernel.org/git/pull.1730.git.1715742069966.gitgitgadget@gmail.com/",[],"Xing Xin",".\nUne fois ces corrections implémentées, le travail de Xing Xin a rendu possible la ",[16,280,283],{"href":281,"rel":282},"https://lore.kernel.org/git/pull.1730.v8.git.1718770053.gitgitgadget@gmail.com/",[],"vérification complète des récupérations à l'aide de bundles","\nen utilisant le mécanisme ",[16,286,289],{"href":287,"rel":288},"https://git-scm.com/docs/git-fsck/fr",[],"fsck"," comme s'il s'agissait de récupérations standard.",[12,292,293,294,298,299,304],{},"Lors de la validation des récupérations standard, il est possible de spécifier\n",[16,295,297],{"href":287,"rel":296},[],"différents niveaux de gravité"," pour ",[16,300,303],{"href":301,"rel":302},"https://git-scm.com/docs/git-fsck/fr#_messages_fsck",[],"différents problèmes fsck",".\nLa gestion de ce qui est accepté ou rejeté dans un dépôt spécifique s'en trouve affinée. Cela n'était auparavant pas possible pour les récupérations à l'aide de bundles.",[12,306,307,308,313,314,319],{},"Pour renforcer encore l'utilité et la sécurité du ",[16,309,312],{"href":310,"rel":311},"https://git-scm.com/docs/bundle-uri",[],"bundle-uri",", nous avons ",[16,315,318],{"href":316,"rel":317},"https://lore.kernel.org/git/20241121204119.1440773-1-jltobler@gmail.com/",[],"résolu ce problème",". Les différents niveaux de gravité indiqués pour différents problèmes fsck sont désormais\négalement utilisés lors de la vérification des récupérations à l'aide de bundles.",[12,321,231,322,235],{},[16,323,326],{"href":324,"rel":325},"https://gitlab.com/justintobler",[],"Justin Tobler",[23,328,330],{"id":329},"ajout-des-vérifications-de-cohérence-des-références","Ajout des vérifications de cohérence des références",[12,332,333,334,339,340,345],{},"Dans notre article présentant la version 2.47.0 de Git, nous avons mentionné\nle travail de Jialuo She sur ",[16,335,338],{"href":336,"rel":337},"https://about.gitlab.com/fr-fr/blog/whats-new-in-git-2-47-0/#nouvelle-sous-commande-pour-git-refs(1)",[],"l'ajout d'une nouvelle sous-commande « verify »"," à git-refs(1) dans le cadre du ",[16,341,344],{"href":342,"rel":343},"https://summerofcode.withgoogle.com/archive/2024/projects/ukm4PTEF",[],"Google Summer of Code 2024"," (GSoC 2024).",[12,347,348],{},"Nous avions alors déclaré que l'objectif était à terme d'intégrer cette nouvelle sous-commande à git-fsck(1) afin de fournir un moyen unifié d'exécuter les vérifications de cohérence des dépôts. Jialuo She a décidé de travailler sur ce sujet à l'issue du GSoC.",[12,350,351,352,357,358,361],{},"Le résultat de ",[16,353,356],{"href":354,"rel":355},"https://lore.kernel.org/git/ZrtrT1CPI4YUf5db@ArchLinux/",[],"cet effort","\nest que git-fsck(1) peut maintenant détecter et gérer un certain nombre de problèmes liés aux références, par exemple, lorsque le contenu est de mauvaise qualité, lorsqu'un lien symbolique est utilisé comme référence symbolique ou lorsque la cible d'une référence symbolique ne pointe pas vers une référence valide. Il nous reste toujours à appeler ",[109,359,360],{},"git refs verify"," via git-fsck(1), et demander à la commande d'effectuer toutes les vérifications non spécifiques au backend dans le processus en cours git-fsck(1). Toutefois, nous avons progressé vers notre objectif final qui est de disposer d'un moyen unifié d'exécuter toutes les vérifications de cohérence des références.",[12,363,364],{},"Ce projet a été mené par Jialuo She.",[23,366,368],{"id":367},"réutilisation-des-itérateurs-dans-les-reftables","Réutilisation des itérateurs dans les « reftables »",[12,370,371,372,377,378,383,384,235],{},"Dans la version ",[16,373,376],{"href":374,"rel":375},"https://gitlab.com/gitlab-org/git/-/raw/master/Documentation/RelNotes/2.45.0.txt",[],"Git 2.45.0",", le format « reftable » a été introduit en tant que nouveau backend pour stocker des références (principalement des branches et des tags). Si le backend « reftable » ne vous est pas encore\nfamilier, n'hésitez pas à consulter notre précédent ",[16,379,382],{"href":380,"rel":381},"https://about.gitlab.com/fr-fr/blog/whats-new-in-git-2-45-0/",[],"article de blog consacré à la version 2.45.0 de Git",". Nous y présentons ce nouveau format, ainsi que notre guide intitulé ",[16,385,388],{"href":386,"rel":387},"https://about.gitlab.com/fr-fr/blog/a-beginners-guide-to-the-git-reftable-format/",[],"Format reftable de Git : guide pour les débutants",[12,390,391,392,397],{},"Nous avons depuis continué à améliorer ce backend. Récemment, nous nous sommes concentrés sur l'amélioration de ses performances en ",[16,393,396],{"href":394,"rel":395},"https://lore.kernel.org/git/cover.1730732881.git.ps@pks.im/",[],"réutilisant certains itérateurs internes"," lors de la lecture de références aléatoires. Avant ces changements, la lecture d'une seule référence nous obligeait à créer un tout nouvel itérateur, à le déplacer au bon endroit dans les tables respectives, puis à lire la valeur suivante. Cette démarche se révèle assez inefficace lors de la lecture en succession rapide de nombreuses références. Nous ne créons désormais plus qu'un seul itérateur et le réutilisons pour lire plusieurs références, ce qui permet d'alléger le travail effectué.",[12,399,400],{},"Les performances dans un certain nombre de cas d'utilisation liés aux « reftables » sont par conséquent améliorées. Nous avons notamment mesuré une accélération de 7 % lors de la création de nombreuses références dans une transaction qui effectue de nombreuses lectures aléatoires. Notre travail ouvre de plus la porte à davantage d'optimisations, car nous pouvons continuer à réutiliser une plus grande quantité d'états conservés dans les itérateurs.",[12,402,231,403,235],{},[16,404,71],{"href":69,"rel":405},[],[23,407,409,410],{"id":408},"prise-en-charge-des-reflogs-dans-git-refs-migrate","Prise en charge des reflogs dans ",[109,411,412],{},"git-refs migrate",[12,414,415,416,419],{},"Suite à l'introduction du backend « reftable » dans Git 2.45.0, nous avons travaillé sur des outils pour migrer les backends de gestion des références dans Git 2.46.0. Il s'agissait d'ajouter une nouvelle sous-commande ",[109,417,418],{},"migrate"," à git-refs(1).",[12,421,422,423,428],{},"Notre article consacré à Git 2.46.0 ",[16,424,427],{"href":425,"rel":426},"https://about.gitlab.com/fr-fr/blog/whats-new-in-git-2-46-0/#outils-pour-migrer-les-backends-de-r%C3%A9f%C3%A9rences",[],"décrivait cette tâche"," et mentionnait certaines limitations encore présentes. L'article soulignait notamment les points suivants :",[12,430,431],{},"« Les reflogs dans un dépôt font partie du backend de gestion des références et nécessitent également une migration lors du changement de format. Malheureusement, l'outil n'est pas encore capable de convertir les reflogs entre les backends « fichiers » et les backends « reftable ». »",[12,433,434,435,440,441,444],{},"Nous sommes heureux d'annoncer que nous avons ",[16,436,439],{"href":437,"rel":438},"https://lore.kernel.org/git/20241216-320-git-refs-migrate-reflogs-v4-0-d7cd3f197453@gmail.com/",[],"levé cette limitation dans la version Git 2.48.0",".\nLes reflogs peuvent désormais également être migrés avec ",[109,442,443],{},"git refs migrate",". L'outil de migration n'est pas encore capable de gérer un dépôt contenant des arbres de travail séparés (« worktrees »), mais il s'agit de la dernière limitation restante. Si vous n'utilisez pas d'arbres de travail séparés (« worktrees »), vous pouvez déjà utiliser le backend « reftable » dans vos dépôts existants.",[12,446,231,447,235],{},[16,448,451],{"href":449,"rel":450},"https://gitlab.com/knayakgl",[],"Karthik Nayak",[23,453,455],{"id":454},"optimisation-du-filtre-des-références","Optimisation du filtre des références",[12,457,458,459,462,463,466,467,470],{},"Le sous-système 'ref-filter' est un code de mise en forme utilisé par des commandes telles que ",[109,460,461],{},"git for-each-ref",", ",[109,464,465],{},"git branch"," et ",[109,468,469],{},"git tag"," pour trier, filtrer, mettre en forme et afficher les informations relatives aux références Git.",[12,472,473],{},"À mesure que les dépôts se développent, la quantité de références qu'ils contiennent peut devenir astronomique. C'est pourquoi nous avons du travail à faire non seulement pour améliorer les backends qui stockent des références, comme le backend « reftable » (voir ci-dessus), mais\naussi pour optimiser le code de mise en forme, comme le sous-système 'ref-filter'.",[12,475,476,477,482],{},"Nous avons récemment ",[16,478,481],{"href":479,"rel":480},"https://lore.kernel.org/git/d23c3e3ee7fdb49fcd05b4f2e52dd2a1cfdc10f2.1729510342.git.ps@pks.im/",[],"trouvé une méthode","\npour éviter de mettre temporairement les références en mémoire tampon et de les traiter chacune plusieurs fois dans le code de filtrage des références. Désormais, celles-ci sont traitées directement dans l'ordre de tri fourni par les backends. Cette amélioration réduit la consommation de mémoire et accélère certaines commandes, pouvant les rendre jusqu'à 770 fois plus rapides dans certains\ncas.",[12,484,231,485,235],{},[16,486,71],{"href":69,"rel":487},[],[23,489,491],{"id":490},"en-savoir-plus","En savoir plus",[12,493,494,495,235],{},"Cet article n'a mis en évidence que quelques-unes des contributions apportées par GitLab et la communauté Git au sens large pour cette nouvelle version.\nVous pouvez approfondir ce sujet en lisant l'annonce officielle du projet Git et en consultant ",[16,496,499],{"href":497,"rel":498},"https://about.gitlab.com/blog/tags/git/",[],"nos précédents articles de blog sur les nouvelles versions de Git",[83,501,502,509,516,522],{},[86,503,504],{},[16,505,508],{"href":506,"rel":507},"https://about.gitlab.com/fr-fr/blog/whats-new-in-git-2-47-0/",[],"Nouveautés de Git 2.47.0",[86,510,511],{},[16,512,515],{"href":513,"rel":514},"https://about.gitlab.com/fr-fr/blog/whats-new-in-git-2-46-0/",[],"Nouveautés de Git 2.46.0",[86,517,518],{},[16,519,521],{"href":380,"rel":520},[],"Nouveautés de Git 2.45.0",[86,523,524],{},[16,525,388],{"href":386,"rel":526},[],[528,529,530],"style",{},"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 .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":107,"searchDepth":133,"depth":133,"links":532},[533,534,535,536,537,538,540,541],{"id":25,"depth":133,"text":26},{"id":238,"depth":133,"text":239},{"id":262,"depth":133,"text":263},{"id":329,"depth":133,"text":330},{"id":367,"depth":133,"text":368},{"id":408,"depth":133,"text":539},"Prise en charge des reflogs dans git-refs migrate",{"id":454,"depth":133,"text":455},{"id":490,"depth":133,"text":491},"open-source","2025-01-10","Découvrez la dernière version de Git, y compris un nouveau système de compilation ainsi que des optimisations dans le nouveau backend « reftable ».","md",null,true,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663691/Blog/Hero%20Images/AdobeStock_752438815.jpg",{},"/fr-fr/blog/whats-new-in-git-2-48-0",{"title":5,"description":544,"ogTitle":5,"ogDescription":544,"noIndex":552,"ogImage":548,"ogUrl":553,"ogSiteName":554,"ogType":555,"canonicalUrls":553},false,"https://about.gitlab.com/blog/whats-new-in-git-2-48-0","https://about.gitlab.com","article","whats-new-in-git-2-48-0","fr-fr/blog/whats-new-in-git-2-48-0",[559,560,561],"git","open source","community","BlogPost","2025-01-20","8mFOWQ3q5ITwPMlz7ngCfsvqKOeLTIoKhq-d2e2ogRw",{"logo":566,"freeTrial":571,"sales":576,"login":581,"items":586,"search":913,"minimal":949,"duo":968,"switchNav":977,"pricingDeployment":988},{"config":567},{"href":568,"dataGaName":569,"dataGaLocation":570},"/fr-fr/","gitlab logo","header",{"text":572,"config":573},"Commencer un essai gratuit",{"href":574,"dataGaName":575,"dataGaLocation":570},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr&glm_content=default-saas-trial/","free trial",{"text":577,"config":578},"Demander une démo",{"href":579,"dataGaName":580,"dataGaLocation":570},"/fr-fr/sales/?contact-topic=request-demo","sales",{"text":582,"config":583},"Connexion",{"href":584,"dataGaName":585,"dataGaLocation":570},"https://gitlab.com/users/sign_in/","sign in",[587,615,717,722,835,891],{"text":588,"config":589,"menu":591},"Plateforme",{"dataNavLevelOne":590},"platform",{"type":592,"columns":593},"cards",[594,600,608],{"title":588,"description":595,"link":596},"La plateforme d'orchestration intelligente pour le DevSecOps",{"text":597,"config":598},"Explorer notre plateforme",{"href":599,"dataGaName":590,"dataGaLocation":570},"/fr-fr/platform/",{"title":601,"description":602,"link":603},"GitLab Duo Agent Platform","L'IA agentique pour l'ensemble du cycle de développement logiciel",{"text":604,"config":605},"Découvrir GitLab Duo",{"href":606,"dataGaName":607,"dataGaLocation":570},"/fr-fr/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":609,"description":610,"link":611},"Pourquoi GitLab ?","Découvrez les principales raisons pour lesquelles les entreprises choisissent GitLab",{"text":491,"config":612},{"href":613,"dataGaName":614,"dataGaLocation":570},"/fr-fr/why-gitlab/","why gitlab",{"text":616,"left":547,"config":617,"menu":619},"Produit",{"dataNavLevelOne":618},"solutions",{"type":620,"link":621,"columns":625,"feature":696},"lists",{"text":622,"config":623},"Voir toutes les solutions",{"href":624,"dataGaName":618,"dataGaLocation":570},"/fr-fr/solutions/",[626,651,674],{"title":627,"description":628,"link":629,"items":634},"Automatisation","CI/CD et automatisation pour accélérer le déploiement",{"config":630},{"icon":631,"href":632,"dataGaName":633,"dataGaLocation":570},"AutomatedCodeAlt","/fr-fr/solutions/delivery-automation/","automated software delivery",[635,639,642,647],{"text":636,"config":637},"CI/CD",{"href":638,"dataGaLocation":570,"dataGaName":636},"/fr-fr/solutions/continuous-integration/",{"text":601,"config":640},{"href":606,"dataGaLocation":570,"dataGaName":641},"gitlab duo agent platform - product menu",{"text":643,"config":644},"Gestion du code source",{"href":645,"dataGaLocation":570,"dataGaName":646},"/fr-fr/solutions/source-code-management/","Source Code Management",{"text":648,"config":649},"Livraison de logiciels automatisée",{"href":632,"dataGaLocation":570,"dataGaName":650},"Automated software delivery",{"title":652,"description":653,"link":654,"items":659},"Sécurité","Livrez du code plus rapidement sans compromettre la sécurité",{"config":655},{"href":656,"dataGaName":657,"dataGaLocation":570,"icon":658},"/fr-fr/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[660,664,669],{"text":661,"config":662},"Tests de sécurité des applications",{"href":656,"dataGaName":663,"dataGaLocation":570},"Application security testing",{"text":665,"config":666},"Sécurité de la chaîne d'approvisionnement logicielle",{"href":667,"dataGaLocation":570,"dataGaName":668},"/fr-fr/solutions/supply-chain/","Software supply chain security",{"text":670,"config":671},"Conformité logicielle",{"href":672,"dataGaName":673,"dataGaLocation":570},"/fr-fr/solutions/software-compliance/","software compliance",{"title":675,"link":676,"items":681},"Mesures",{"config":677},{"icon":678,"href":679,"dataGaName":680,"dataGaLocation":570},"DigitalTransformation","/fr-fr/solutions/visibility-measurement/","visibility and measurement",[682,686,691],{"text":683,"config":684},"Visibilité et mesures",{"href":679,"dataGaLocation":570,"dataGaName":685},"Visibility and Measurement",{"text":687,"config":688},"Gestion de la chaîne de valeur",{"href":689,"dataGaLocation":570,"dataGaName":690},"/fr-fr/solutions/value-stream-management/","Value Stream Management",{"text":692,"config":693},"Analyses et informations",{"href":694,"dataGaLocation":570,"dataGaName":695},"/fr-fr/solutions/analytics-and-insights/","Analytics and insights",{"title":697,"type":620,"items":698},"GitLab",[699,705,711],{"text":700,"config":701},"Entreprises",{"icon":702,"href":703,"dataGaLocation":570,"dataGaName":704},"Building","/fr-fr/enterprise/","enterprise",{"text":706,"config":707},"Pour les PME",{"icon":708,"href":709,"dataGaLocation":570,"dataGaName":710},"Work","/fr-fr/small-business/","small business",{"text":712,"config":713},"Pour le secteur public",{"icon":714,"href":715,"dataGaLocation":570,"dataGaName":716},"Organization","/fr-fr/solutions/public-sector/","public sector",{"text":718,"config":719},"Tarifs",{"href":720,"dataGaName":721,"dataGaLocation":570,"dataNavLevelOne":721},"/fr-fr/pricing/","pricing",{"text":723,"config":724,"menu":726},"Ressources",{"dataNavLevelOne":725},"resources",{"type":620,"link":727,"columns":731,"feature":824},{"text":728,"config":729},"Afficher toutes les ressources",{"href":730,"dataGaName":725,"dataGaLocation":570},"/fr-fr/resources/",[732,765,792],{"title":733,"items":734},"Premiers pas",[735,740,745,750,755,760],{"text":736,"config":737},"Installation",{"href":738,"dataGaName":739,"dataGaLocation":570},"/fr-fr/install/","install",{"text":741,"config":742},"Guides de démarrage",{"href":743,"dataGaName":744,"dataGaLocation":570},"/fr-fr/get-started/","quick setup checklists",{"text":746,"config":747},"Apprentissage",{"href":748,"dataGaLocation":570,"dataGaName":749},"https://university.gitlab.com/","learn",{"text":751,"config":752},"Documentation",{"href":753,"dataGaName":754,"dataGaLocation":570},"https://docs.gitlab.com/","product documentation",{"text":756,"config":757},"Vidéos sur les bonnes pratiques",{"href":758,"dataGaName":759,"dataGaLocation":570},"/fr-fr/getting-started-videos/","best practice videos",{"text":761,"config":762},"Intégrations",{"href":763,"dataGaName":764,"dataGaLocation":570},"/fr-fr/integrations/","integrations",{"title":766,"items":767},"Découvrir",[768,773,778,783,787],{"text":769,"config":770},"Témoignages clients",{"href":771,"dataGaName":772,"dataGaLocation":570},"/fr-fr/customers/","customer success stories",{"text":774,"config":775},"Blog",{"href":776,"dataGaName":777,"dataGaLocation":570},"/fr-fr/blog/","blog",{"text":779,"config":780},"Demo Hub",{"href":781,"dataGaName":782,"dataGaLocation":570},"/fr-fr/demo-hub/","demo hub",{"text":784,"config":785},"The Source",{"href":786,"dataGaName":777,"dataGaLocation":570},"/fr-fr/the-source/",{"text":788,"config":789},"Travail à distance",{"href":790,"dataGaName":791,"dataGaLocation":570},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":793,"items":794},"Connecter",[795,800,805,809,814,819],{"text":796,"config":797},"Services GitLab",{"href":798,"dataGaName":799,"dataGaLocation":570},"/fr-fr/services/","services",{"text":801,"config":802},"Contribuer",{"href":803,"dataGaName":804,"dataGaLocation":570},"https://contributors.gitlab.com","contribute",{"text":806,"config":807},"Communauté",{"href":808,"dataGaName":561,"dataGaLocation":570},"/community/",{"text":810,"config":811},"Forum",{"href":812,"dataGaName":813,"dataGaLocation":570},"https://forum.gitlab.com/","forum",{"text":815,"config":816},"Événements",{"href":817,"dataGaName":818,"dataGaLocation":570},"/events/","events",{"text":820,"config":821},"Partenaires",{"href":822,"dataGaName":823,"dataGaLocation":570},"/fr-fr/partners/","partners",{"config":825,"title":828,"text":829,"link":830},{"background":826,"textColor":827},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","Nouveautés de GitLab","Découvrez les dernières fonctionnalités et améliorations.",{"text":831,"config":832},"Lire les articles les plus récents",{"href":833,"dataGaName":834,"dataGaLocation":570},"/fr-fr/whats-new/","whats new",{"text":836,"config":837,"menu":839},"Société",{"dataNavLevelOne":838},"company",{"type":620,"columns":840},[841],{"items":842},[843,848,854,856,861,866,871,876,881,886],{"text":844,"config":845},"À propos",{"href":846,"dataGaName":847,"dataGaLocation":570},"/fr-fr/company/","about",{"text":849,"config":850,"footerGa":853},"Carrières",{"href":851,"dataGaName":852,"dataGaLocation":570},"/jobs/","jobs",{"dataGaName":852},{"text":815,"config":855},{"href":817,"dataGaName":818,"dataGaLocation":570},{"text":857,"config":858},"Leadership",{"href":859,"dataGaName":860,"dataGaLocation":570},"/company/team/e-group/","leadership",{"text":862,"config":863},"Manuel",{"href":864,"dataGaName":865,"dataGaLocation":570},"https://handbook.gitlab.com/","handbook",{"text":867,"config":868},"Relations avec les investisseurs",{"href":869,"dataGaName":870,"dataGaLocation":570},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":872,"config":873},"Trust Center",{"href":874,"dataGaName":875,"dataGaLocation":570},"/fr-fr/security/","trust center",{"text":877,"config":878},"Centre pour la transparence de l'IA",{"href":879,"dataGaName":880,"dataGaLocation":570},"/fr-fr/ai-transparency-center/","ai transparency center",{"text":882,"config":883},"Newsletter",{"href":884,"dataGaName":885,"dataGaLocation":570},"/company/contact/#contact-forms","newsletter",{"text":887,"config":888},"Presse",{"href":889,"dataGaName":890,"dataGaLocation":570},"/press/","press",{"text":892,"config":893,"menu":894},"Nous contacter",{"dataNavLevelOne":838},{"type":620,"columns":895},[896],{"items":897},[898,903,908],{"text":899,"config":900},"Contacter l'équipe commerciale",{"href":901,"dataGaName":902,"dataGaLocation":570},"/fr-fr/sales/","talk to sales",{"text":904,"config":905},"Assistance GitLab",{"href":906,"dataGaName":907,"dataGaLocation":570},"https://support.gitlab.com/hc/en-us","support portal",{"text":909,"config":910},"Portail clients GitLab",{"href":911,"dataGaName":912,"dataGaLocation":570},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":914,"login":915,"suggestions":922},"Fermer",{"text":916,"link":917},"Pour rechercher des dépôts et des projets, connectez-vous à",{"text":918,"config":919},"GitLab.com",{"href":584,"dataGaName":920,"dataGaLocation":921},"search login","search",{"text":923,"default":924},"Suggestions",[925,928,933,935,940,945],{"text":601,"config":926},{"href":606,"dataGaName":927,"dataGaLocation":921},"GitLab Duo Agent Platform",{"text":929,"config":930},"Suggestions de code (IA)",{"href":931,"dataGaName":932,"dataGaLocation":921},"/fr-fr/solutions/code-suggestions/","Code Suggestions (AI)",{"text":636,"config":934},{"href":638,"dataGaName":636,"dataGaLocation":921},{"text":936,"config":937},"GitLab sur AWS",{"href":938,"dataGaName":939,"dataGaLocation":921},"/fr-fr/partners/technology-partners/aws/","GitLab on AWS",{"text":941,"config":942},"GitLab sur Google Cloud",{"href":943,"dataGaName":944,"dataGaLocation":921},"/fr-fr/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":946,"config":947},"Pourquoi utiliser GitLab ?",{"href":613,"dataGaName":948,"dataGaLocation":921},"Why GitLab?",{"freeTrial":950,"mobileIcon":955,"desktopIcon":960,"secondaryButton":963},{"text":951,"config":952},"Commencer votre essai gratuit",{"href":953,"dataGaName":575,"dataGaLocation":954},"https://gitlab.com/-/trials/new/","nav",{"altText":956,"config":957},"Icône GitLab",{"src":958,"dataGaName":959,"dataGaLocation":954},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":956,"config":961},{"src":962,"dataGaName":959,"dataGaLocation":954},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":964,"config":965},"Commencer",{"href":966,"dataGaName":967,"dataGaLocation":954},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr/get-started/","get started",{"freeTrial":969,"mobileIcon":973,"desktopIcon":975},{"text":970,"config":971},"En savoir plus sur GitLab Duo",{"href":606,"dataGaName":972,"dataGaLocation":954},"gitlab duo",{"altText":956,"config":974},{"src":958,"dataGaName":959,"dataGaLocation":954},{"altText":956,"config":976},{"src":962,"dataGaName":959,"dataGaLocation":954},{"button":978,"mobileIcon":983,"desktopIcon":985},{"text":979,"config":980},"/switch",{"href":981,"dataGaName":982,"dataGaLocation":954},"#contact","switch",{"altText":956,"config":984},{"src":958,"dataGaName":959,"dataGaLocation":954},{"altText":956,"config":986},{"src":987,"dataGaName":959,"dataGaLocation":954},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":989,"mobileIcon":994,"desktopIcon":996},{"text":990,"config":991},"Retour aux tarifs",{"href":720,"dataGaName":992,"dataGaLocation":954,"icon":993},"back to pricing","GoBack",{"altText":956,"config":995},{"src":958,"dataGaName":959,"dataGaLocation":954},{"altText":956,"config":997},{"src":962,"dataGaName":959,"dataGaLocation":954},{"title":999,"button":1000,"config":1004},"GitLab Orbit est arrivé : la couche de contexte pour les agents d'IA.",{"text":491,"config":1001},{"href":1002,"dataGaName":1003,"dataGaLocation":570},"/fr-fr/gitlab-orbit/","orbit",{"layout":1005,"disabled":552},"release",{"data":1007},{"text":1008,"source":1009,"edit":1015,"contribute":1020,"config":1024,"items":1029,"minimal":1237},"Git est une marque déposée de Software Freedom Conservancy et notre utilisation de « GitLab » est sous licence.",{"text":1010,"config":1011},"Afficher le code source de la page",{"href":1012,"dataGaName":1013,"dataGaLocation":1014},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":1016,"config":1017},"Modifier cette page",{"href":1018,"dataGaName":1019,"dataGaLocation":1014},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":801,"config":1021},{"href":1022,"dataGaName":1023,"dataGaLocation":1014},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":1025,"facebook":1026,"youtube":1027,"linkedin":1028},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[1030,1076,1129,1172,1204],{"title":718,"links":1031,"subMenu":1046},[1032,1036,1041],{"text":1033,"config":1034},"Voir les forfaits",{"href":720,"dataGaName":1035,"dataGaLocation":1014},"view plans",{"text":1037,"config":1038},"GitLab Premium",{"href":1039,"dataGaName":1040,"dataGaLocation":1014},"/fr-fr/pricing/premium/","why premium",{"text":1042,"config":1043},"GitLab Ultimate",{"href":1044,"dataGaName":1045,"dataGaLocation":1014},"/fr-fr/pricing/ultimate/","why ultimate",[1047],{"title":892,"links":1048},[1049,1051,1053,1056,1061,1066,1071],{"text":899,"config":1050},{"href":901,"dataGaName":580,"dataGaLocation":1014},{"text":904,"config":1052},{"href":906,"dataGaName":907,"dataGaLocation":1014},{"text":1054,"config":1055},"Portail clients",{"href":911,"dataGaName":912,"dataGaLocation":1014},{"text":1057,"config":1058},"Statut",{"href":1059,"dataGaName":1060,"dataGaLocation":1014},"https://status.gitlab.com/","status",{"text":1062,"config":1063},"Conditions d'utilisation",{"href":1064,"dataGaName":1065,"dataGaLocation":1014},"/terms/","terms of use",{"text":1067,"config":1068},"Politique de confidentialité",{"href":1069,"dataGaName":1070,"dataGaLocation":1014},"/fr-fr/privacy/","privacy statement",{"text":1072,"config":1073},"Gestion des cookies",{"dataGaName":1074,"dataGaLocation":1014,"id":1075,"isOneTrustButton":547},"cookie preferences","ot-sdk-btn",{"title":616,"links":1077,"subMenu":1086},[1078,1082],{"text":1079,"config":1080},"Plateforme DevSecOps",{"href":599,"dataGaName":1081,"dataGaLocation":1014},"devsecops platform",{"text":1083,"config":1084},"Développement assisté par l'IA",{"href":606,"dataGaName":1085,"dataGaLocation":1014},"ai-assisted development",[1087],{"title":1088,"links":1089},"Thèmes",[1090,1094,1099,1104,1109,1114,1119,1124],{"text":636,"config":1091},{"href":1092,"dataGaName":1093,"dataGaLocation":1014},"/fr-fr/topics/ci-cd/","cicd",{"text":1095,"config":1096},"GitOps",{"href":1097,"dataGaName":1098,"dataGaLocation":1014},"/fr-fr/topics/gitops/","gitops",{"text":1100,"config":1101},"DevOps",{"href":1102,"dataGaName":1103,"dataGaLocation":1014},"/fr-fr/topics/devops/","devops",{"text":1105,"config":1106},"Contrôle de version",{"href":1107,"dataGaName":1108,"dataGaLocation":1014},"/fr-fr/topics/version-control/","version control",{"text":1110,"config":1111},"DevSecOps",{"href":1112,"dataGaName":1113,"dataGaLocation":1014},"/fr-fr/topics/devsecops/","devsecops",{"text":1115,"config":1116},"Cloud-native",{"href":1117,"dataGaName":1118,"dataGaLocation":1014},"/fr-fr/topics/cloud-native/","cloud native",{"text":1120,"config":1121},"IA pour la programmation",{"href":1122,"dataGaName":1123,"dataGaLocation":1014},"/fr-fr/topics/devops/ai-for-coding/","ai for coding",{"text":1125,"config":1126},"IA agentique",{"href":1127,"dataGaName":1128,"dataGaLocation":1014},"/fr-fr/topics/agentic-ai/","agentic ai",{"title":1130,"links":1131},"Solutions",[1132,1135,1137,1142,1145,1148,1151,1154,1156,1159,1162,1167],{"text":661,"config":1133},{"href":656,"dataGaName":1134,"dataGaLocation":1014},"Application Security Testing",{"text":648,"config":1136},{"href":632,"dataGaName":633,"dataGaLocation":1014},{"text":1138,"config":1139},"Développement Agile",{"href":1140,"dataGaName":1141,"dataGaLocation":1014},"/fr-fr/solutions/agile-delivery/","agile delivery",{"text":643,"config":1143},{"href":645,"dataGaName":1144,"dataGaLocation":1014},"source code management",{"text":636,"config":1146},{"href":638,"dataGaName":1147,"dataGaLocation":1014},"continuous integration & delivery",{"text":687,"config":1149},{"href":689,"dataGaName":1150,"dataGaLocation":1014},"value stream management",{"text":1095,"config":1152},{"href":1153,"dataGaName":1098,"dataGaLocation":1014},"/fr-fr/solutions/gitops/",{"text":700,"config":1155},{"href":703,"dataGaName":704,"dataGaLocation":1014},{"text":1157,"config":1158},"PME",{"href":709,"dataGaName":710,"dataGaLocation":1014},{"text":1160,"config":1161},"Secteur public",{"href":715,"dataGaName":716,"dataGaLocation":1014},{"text":1163,"config":1164},"Éducation",{"href":1165,"dataGaName":1166,"dataGaLocation":1014},"/fr-fr/solutions/education/","education",{"text":1168,"config":1169},"Services financiers",{"href":1170,"dataGaName":1171,"dataGaLocation":1014},"/fr-fr/solutions/finance/","financial services",{"title":723,"links":1173},[1174,1176,1178,1180,1183,1185,1188,1190,1192,1194,1196,1198,1200,1202],{"text":736,"config":1175},{"href":738,"dataGaName":739,"dataGaLocation":1014},{"text":741,"config":1177},{"href":743,"dataGaName":744,"dataGaLocation":1014},{"text":746,"config":1179},{"href":748,"dataGaName":749,"dataGaLocation":1014},{"text":751,"config":1181},{"href":753,"dataGaName":1182,"dataGaLocation":1014},"docs",{"text":774,"config":1184},{"href":776,"dataGaName":777,"dataGaLocation":1014},{"text":1186,"config":1187},"Nouveautés",{"href":833,"dataGaName":834,"dataGaLocation":1014},{"text":769,"config":1189},{"href":771,"dataGaName":772,"dataGaLocation":1014},{"text":788,"config":1191},{"href":790,"dataGaName":791,"dataGaLocation":1014},{"text":796,"config":1193},{"href":798,"dataGaName":799,"dataGaLocation":1014},{"text":801,"config":1195},{"href":803,"dataGaName":804,"dataGaLocation":1014},{"text":806,"config":1197},{"href":808,"dataGaName":561,"dataGaLocation":1014},{"text":810,"config":1199},{"href":812,"dataGaName":813,"dataGaLocation":1014},{"text":815,"config":1201},{"href":817,"dataGaName":818,"dataGaLocation":1014},{"text":820,"config":1203},{"href":822,"dataGaName":823,"dataGaLocation":1014},{"title":836,"links":1205},[1206,1208,1210,1212,1214,1216,1221,1226,1228,1230,1232],{"text":844,"config":1207},{"href":846,"dataGaName":838,"dataGaLocation":1014},{"text":849,"config":1209},{"href":851,"dataGaName":852,"dataGaLocation":1014},{"text":857,"config":1211},{"href":859,"dataGaName":860,"dataGaLocation":1014},{"text":862,"config":1213},{"href":864,"dataGaName":865,"dataGaLocation":1014},{"text":867,"config":1215},{"href":869,"dataGaName":870,"dataGaLocation":1014},{"text":1217,"config":1218},"Développement durable",{"href":1219,"dataGaName":1220,"dataGaLocation":1014},"/sustainability/","Sustainability",{"text":1222,"config":1223},"Diversité, inclusion et appartenance (DIB)",{"href":1224,"dataGaName":1225,"dataGaLocation":1014},"/fr-fr/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":872,"config":1227},{"href":874,"dataGaName":875,"dataGaLocation":1014},{"text":882,"config":1229},{"href":884,"dataGaName":885,"dataGaLocation":1014},{"text":887,"config":1231},{"href":889,"dataGaName":890,"dataGaLocation":1014},{"text":1233,"config":1234},"Déclaration de transparence sur l'esclavage moderne",{"href":1235,"dataGaName":1236,"dataGaLocation":1014},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1238},[1239,1241,1243],{"text":1062,"config":1240},{"href":1064,"dataGaName":1065,"dataGaLocation":1014},{"text":1072,"config":1242},{"dataGaName":1074,"dataGaLocation":1014,"id":1075,"isOneTrustButton":547},{"text":1067,"config":1244},{"href":1069,"dataGaName":1070,"dataGaLocation":1014},[1246],{"id":1247,"title":7,"body":546,"config":1248,"content":1250,"description":546,"extension":1254,"meta":1255,"navigation":547,"path":1256,"seo":1257,"stem":1258,"__hash__":1259},"blogAuthors/en-us/blog/authors/christian-couder.yml",{"template":1249},"BlogAuthor",{"name":7,"config":1251},{"headshot":1252,"ctfId":1253},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663687/Blog/Author%20Headshots/chriscool-headshot.jpg","chriscool","yml",{},"/en-us/blog/authors/christian-couder",{},"en-us/blog/authors/christian-couder","6VsKjKNdm1XKAmFMZHj53ROyylDlxaSJhcARRkw6EQQ",[1261,1269,1276],{"title":1262,"description":1263,"heroImage":1264,"category":542,"date":1265,"authors":1266,"slug":1268,"externalUrl":546},"Nouveautés de Git 2.55.0","Découvrez les nouveautés de Git 2.55 : commande fixup de git-history(1), daemon fsmonitor pour Linux, push vers des groupes de dépôts distants et plus encore.","https://res.cloudinary.com/about-gitlab-com/image/upload/f_auto,q_auto,c_lfill/v1782732487/ztwgrvlolpifo01vj8qc.png","2026-07-01",[1267],"Toon Claes","whats-new-in-git-2-55-0",{"title":1270,"description":1271,"heroImage":1272,"category":542,"date":1273,"authors":1274,"slug":1275,"externalUrl":546},"Nouveautés de Git 2.54.0","Découvrez les contributions à cette release de Git 2.54.0, notamment la nouvelle maintenance des dépôts, une nouvelle commande pour modifier l'historique des commits, le remplacement de git-sizer(1) et plus encore.","https://res.cloudinary.com/about-gitlab-com/image/upload/f_auto,q_auto,c_lfill/v1776711651/sj7xxyyuimlarswbyft5.png","2026-04-27",[71],"whats-new-in-git-2-54-0",{"title":1277,"description":1278,"heroImage":1279,"category":542,"date":1280,"authors":1281,"slug":1283,"externalUrl":546},"GitLab AI Hackathon 2026 : découvrez les gagnants","Près de 7 000 développeurs ont créé plus de 600 agents et flows d'IA sur GitLab Duo Agent Platform. Découvrez les gagnants et leurs projets.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1776457632/llddiylsgwuze0u1rjks.png","2026-04-22",[1282],"Nick Veenhof","gitlab-ai-hackathon-2026-meet-the-winners",{"promotions":1285},[1286,1300,1312,1324],{"id":1287,"categories":1288,"header":1290,"text":1291,"button":1292,"image":1297},"ai-modernization",[1289],"ai","L'IA tient-elle ses promesses à grande échelle ?","Le questionnaire ne prendra pas plus de 5 minutes.",{"text":1293,"config":1294},"Obtenez votre score de maturité IA",{"href":1295,"dataGaName":1296,"dataGaLocation":777},"/fr-fr/assessments/ai-modernization-assessment/","modernization assessment",{"config":1298},{"src":1299},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1301,"categories":1302,"header":1304,"text":1291,"button":1305,"image":1309},"devops-modernization",[1303,1113],"product","Vous contentez-vous de gérer des outils ou de livrer des innovations ?",{"text":1306,"config":1307},"Obtenez votre score de maturité DevOps",{"href":1308,"dataGaName":1296,"dataGaLocation":777},"/fr-fr/assessments/devops-modernization-assessment/",{"config":1310},{"src":1311},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1313,"categories":1314,"header":1316,"text":1291,"button":1317,"image":1321},"security-modernization",[1315],"security","Faut-il sacrifier la rapidité pour garantir la sécurité ?",{"text":1318,"config":1319},"Obtenez votre score de maturité en matière de sécurité",{"href":1320,"dataGaName":1296,"dataGaLocation":777},"/fr-fr/assessments/security-modernization-assessment/",{"config":1322},{"src":1323},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1325,"paths":1326,"header":1329,"text":1330,"button":1331,"image":1336},"github-azure-migration",[1327,1328],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","Votre équipe est-elle prête pour la migration de GitHub vers Azure ?","GitHub a déjà commencé sa migration vers Azure. Découvrez ce que cela signifie pour vous.",{"text":1332,"config":1333},"Découvrez les différences entre GitLab et GitHub",{"href":1334,"dataGaName":1335,"dataGaLocation":777},"/fr-fr/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1337},{"src":1311},{"header":1339,"blurb":1340,"button":1341,"secondaryButton":1345},"Commencez à développer plus rapidement dès aujourd'hui","Découvrez ce que votre équipe peut accomplir avec la plateforme d'orchestration intelligente pour le DevSecOps.\n",{"text":572,"config":1342},{"href":1343,"dataGaName":575,"dataGaLocation":1344},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/fr-fr/","feature",{"text":899,"config":1346},{"href":901,"dataGaName":580,"dataGaLocation":1344},1786803777375]