[{"data":1,"prerenderedAt":1186},["ShallowReactive",2],{"/fr-fr/blog/celebrating-gits-20th-anniversary-with-creator-linus-torvalds":3,"navigation-fr-fr":403,"banner-fr-fr":837,"footer-fr-fr":845,"blog-post-authors-fr-fr-Patrick Steinhardt":1084,"blog-related-posts-fr-fr-celebrating-gits-20th-anniversary-with-creator-linus-torvalds":1099,"blog-promotions-fr-fr":1123,"next-steps-fr-fr":1177},{"id":4,"title":5,"authors":6,"body":8,"category":382,"date":383,"description":384,"extension":385,"externalUrl":386,"faq":386,"featured":387,"heroImage":388,"meta":389,"navigation":387,"path":390,"seo":391,"slug":396,"stem":397,"tags":398,"template":400,"updatedDate":401,"__hash__":402},"blogPosts/fr-fr/blog/celebrating-gits-20th-anniversary-with-creator-linus-torvalds.md","Git fête ses 20 ans : entretien avec son créateur Linus Torvalds",[7],"Patrick Steinhardt",{"type":9,"value":10,"toc":377},"minimark",[11,30,36,39,55,62,71,74,83,93,96,99,107,110,113,116,125,128,131,138,141,146,149,152,155,160,163,166,169,172,177,180,183,186,189,194,205,208,215,220,223,226,231,234,237,244,251,254,257,264,269,272,275,278,281,284,287,290,293,298,301,304,311,316,321],[12,13,14,15,22,23,29],"p",{},"Le système de ",[16,17,21],"a",{"href":18,"rel":19,"title":20},"https://about.gitlab.com/fr-fr/topics/version-control/",[],"Qu'est-ce que le contrôle de version ?","contrôle de version"," Git a été introduit pour la première fois le 7 avril 2005 par Linus Torvalds, le créateur du noyau Linux. À l'occasion du 20e anniversaire de ce projet majeur, désormais adopté par la quasi-majorité des équipes de développement, nous nous sommes entretenus avec Linus sur l'histoire de ",[16,24,28],{"href":25,"rel":26,"title":27},"https://about.gitlab.com/fr-fr/blog/what-is-git/",[],"Qu'est-ce que Git ? ","Git",". Nous lui avons notamment demandé pourquoi il en a délégué la maintenance et quelles sont les étapes clés du projet qu'il considère comme les plus importantes.",[12,31,32],{},[33,34,35],"strong",{},"En 2005, vous étiez déjà le chargé de maintenance du noyau Linux, qui était alors en plein essor. Pourquoi avez-vous décidé de créer un nouveau système de contrôle de version ?",[12,37,38],{},"Je me suis lancé dans cette aventure précisément parce que je détestais profondément les outils de contrôle de version existants.",[12,40,41,42,48,49,54],{},"J'avais utilisé des systèmes de contrôle de version traditionnels (CVS/RCS/SCCS) à la fois en tant qu'utilisateur final (pour suivre des projets ",[16,43,47],{"href":44,"rel":45,"title":46},"https://about.gitlab.com/fr-fr/blog/what-is-open-source/",[],"Qu'est-ce que l'open source ?","open source"," comme ",[16,50,53],{"href":51,"rel":52},"https://gcc.gnu.org/",[],"GCC",") et en tant que développeur (quand je travaillais chez Transmeta, nous utilisions exclusivement CVS) et j'en avais une aversion profonde.",[56,57],"img",{"src":58,"align":59,"width":60,"style":61},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1782398641/blog/Content%20Images/linustorvalds.png","left","200px","padding-right: 20px; padding-bottom: 10px",[12,63,64,65,70],{},"À l'époque, la plupart des projets qui utilisaient CVS étaient passés à ",[16,66,69],{"href":67,"rel":68},"https://subversion.apache.org/",[],"SVN",", mais en vérité, j'ai toujours pensé que SVN n'était qu'une pâle copie de CVS malgré les quelques améliorations apportées à l'interface utilisateur ; aucun des défauts fondamentaux n'avaient été corrigés et de nouveaux problèmes étaient même apparus.",[12,72,73],{},"Impossible d'énumérer ici tous les problèmes rencontrés avec CVS et les autres systèmes du même type. Ils sont de toute façon devenus obsolètes. Les développeurs les plus jeunes n'ont même probablement jamais eu à les utiliser. J'ai toujours refusé de m'en servir pour le noyau Linux, même si quelques sous-systèmes (notamment le côté mise en réseau) utilisaient CVS pour gérer leur code dans les années 1990.",[12,75,76,77,82],{},"À l'époque, je vivais dans la région de la baie de San Francisco, et Larry McVoy, qui était à l'origine notamment du projet ",[16,78,81],{"href":79,"rel":80},"https://www.usenix.org/legacy/publications/library/proceedings/sd96/full_papers/mcvoy.pdf",[],"lmbench",", avait lancé la société BitMover, qui proposait un nouveau modèle de contrôle de version appelé BitKeeper (BK).",[12,84,85,86,92],{},"BK n'était pas open source, mais Larry appréciait les projets open source et pensait que l'absence d'un système de contrôle de version pertinent freinait le développement du noyau Linux. Il n'avait pas tort, mais les systèmes de ",[16,87,91],{"href":88,"rel":89,"title":90},"https://about.gitlab.com/fr-fr/solutions/source-code-management/",[],"Gestion du code source","gestion du code source (SCM)"," traditionnels ne me convenaient absolument pas. Larry a pris le temps de nous montrer, à David Miller (chargé de maintenance réseau et utilisateur de CVS) et à moi, les avantages de BitKeeper.",[12,94,95],{},"BK n'était pas parfait. Il s'appuyait sur Source Code Control System (SCCS) comme tant d'autres SCM traditionnels et souffrait donc du même modèle restrictif d'« historique par fichier », qui pose un réel problème, notamment lors du renommage et de la suppression de fichiers.",[12,97,98],{},"BK présentait tout de même quelques avantages. Même s'il utilisait SCCS de base, il corrigeait des problèmes vraiment essentiels et gérait le développement distribué convenablement. Il offrait par ailleurs un véritable historique global (et non par fichier). Par conséquent, le merge de code provenant de différents arbres fonctionnait réellement.",[12,100,101,102,106],{},"Avec CVS, créer une branche et la fusionner était un événement majeur que vous deviez planifier et discuter en équipe. Avec BK, chaque dépôt correspondait à une branche. C'est une pratique courante à présent. Bien évidemment, Git l'a encore améliorée en proposant plusieurs branches ",[103,104,105],"em",{},"par"," dépôt, mais même le modèle BK beaucoup plus limité représentait déjà une avancée majeure à l'époque.",[12,108,109],{},"Encore une fois, BK n'était pas parfait. Son modèle basé sur un historique par fichier posait de réels problèmes, car les opérations de renommage et de merge de fichiers n'étaient tout simplement pas fiables, entraînant inévitablement des dysfonctionnements comparables à ceux rencontrés avec Attic pour les utilisateurs de CVS. Par ailleurs, BK manquait de robustesse en matière d’évolutivité, des limites qui ne devenaient toutefois réellement problématiques qu’à mesure que le projet gagnait en ampleur ou en complexité.",[12,111,112],{},"Mais la nécessité d'acquérir une licence pour pouvoir l'utiliser constituait un véritable obstacle. Bien que de nombreux chargés de maintenance du noyau avaient fini par l'adopter (nous l'avons d'ailleurs utilisé de 2002 à 2005), cette contrainte restait une source de frictions qui a atteint son paroxysme fin 2004, rendant l'utilisation de BK pour le développement du noyau intenable quelques mois plus tard.",[12,114,115],{},"Ainsi, pendant trois ans, j'ai enfin pu utiliser un contrôle de version qui fonctionnait et qui m'aidait à résoudre de nombreux problèmes. Je ne pouvais plus me passer d'un système de contrôle de version. Entretemps, aucun outil open source plus performant n’avait vu le jour au sein de la communauté open source.",[12,117,118,119,124],{},"Bien sûr, il était de notoriété publique que CVS et SVN ne fonctionnaient pas bien. Certaines équipes ont même tenté d'autres approches, parfois encore pires (comme un suivi de correctifs sophistiqué) ; d'autres ont eu de bonnes idées, mais qui aboutissaient pourtant à de nouvelles erreurs de conception (comme ",[16,120,123],{"href":121,"rel":122},"https://www.monotone.ca/",[],"Monotone",").",[12,126,127],{},"Après un certain temps et des recherches infructueuses, j'ai finalement décidé de créer mon propre système.",[12,129,130],{},"Techniquement, il ne m'a fallu que quelques jours pour créer la première version de Git, comme le prouve l'historique des commits. Dès que celle-ci a atteint un niveau de fonctionnalité suffisant, j'ai pu commencer à appliquer les correctifs proposés par d'autres contributeurs. Quelques jours plus tard, ma version était activement utilisée pour le développement du noyau.",[12,132,133,134,137],{},"Mais cette rapidité apparente cache un travail préparatoire de plusieurs mois de ",[103,135,136],{},"réflexion",". Écrire du code est relativement facile. Le plus important, c'est la conception initiale. L'historique des commits que j'évoquais plus tôt ne montre pas tout le travail de fond effectué en amont.",[12,139,140],{},"Et pour être honnête, cette première version était ultra rudimentaire et relativement basique par rapport aux nombreuses fonctionnalités que Git propose aujourd'hui. Mais elle incluait déjà les éléments clés de la structure fondamentale de Git.",[12,142,143],{},[33,144,145],{},"Pouvez-vous nous donner un bref aperçu des débuts du projet Git ?",[12,147,148],{},"En somme, j'avais décidé de suspendre le développement du noyau tant que je n'aurais pas d'alternative qui me convenait : un système distribué, performant et capable de garantir la détection de toute corruption de fichiers.",[12,150,151],{},"Je tiens cependant à souligner que je n'étais pas intéressé par les SCM en tant que tels. Ce qui m'importait, c'était le résultat final, pas le processus. Pour moi, Git n'avait pas le même intérêt que le noyau Linux : j'utilise Linux parce que je trouve que le fonctionnement des noyaux est fascinant, mais j'ai créé Git par obligation, pas par passion.",[12,153,154],{},"D'où le fait que j'en ai délégué la maintenance.",[12,156,157],{},[33,158,159],{},"Pourquoi avez-vous confié la maintenance de Git à Junio Hamano après quelques mois ? Pourquoi avez-vous choisi Junio ?",[12,161,162],{},"Transmettre la maintenance de Git était un choix évident. Je savais dès le départ que je me concentrerais de nouveau uniquement sur le noyau dès que j'aurais trouvé une personne de confiance à qui déléguer la maintenance.",[12,164,165],{},"Cela ne signifie pas pour autant que j'ai tout laissé tomber en priant pour que tout se passe bien. J'ai assuré la maintenance de Git pendant environ quatre mois, car je sentais que je devais trouver la perle rare qui s'investirait sur le long terme.",[12,167,168],{},"Junio a été l'une des toutes premières personnes impliquées dans ce projet, dès la première semaine de développement. Mais je ne lui ai pas attribué ce rôle dès le départ. Il m'a fallu un certain temps pour voir qui restait, qui écrivait du code pertinent et qui prenait des décisions stratégiques.",[12,170,171],{},"Junio s'est montré exceptionnel. On me donne bien trop de crédit pour les quelques mois que j’ai passés sur Git, notamment pour la célébration du 20e anniversaire de l’existence du projet. Je revendique avoir optimisé la conception centrale et lancé le projet, mais c'est vraiment grâce à Junio (et à des centaines d’autres contributeurs) que Git est ce qu’il est aujourd’hui.",[12,173,174],{},[33,175,176],{},"La version initiale du système de contrôle de version Mercurial est sortie seulement 12 jours après la version initiale de Git, le 19 avril 2005. Beaucoup prétendent que l'expérience utilisateur de Mercurial était supérieure à celle de Git, mais de nos jours, Git est nettement plus populaire. Pour quelles raisons d'après vous ?",[12,178,179],{},"C'est en grande partie dû aux effets de réseau des SCM qui ont permis à CVS de survivre aussi longtemps malgré ses limites.",[12,181,182],{},"Le fait que le noyau Linux utilise Git a joué un rôle majeur. Plus tard, la communauté Ruby on Rails a largement contribué à sa popularité, avant que l'utilisation de Git ne se généralise dans toutes les communautés de développeurs.",[12,184,185],{},"Mais je pense aussi que la conception de Git est fondamentalement supérieure. Son architecture est à la fois très simple et extrêmement puissante, ce qui, selon moi, a facilité son adaptation à d'autres environnements, comme JGit et des implémentations plus récentes telles que le système de fichiers virtuel MSgit, et bien d'autres encore.",[12,187,188],{},"Bien que Git avait la réputation d’être un outil difficile à prendre en main, les utilisateurs habitués à d'autres systèmes SCM le trouvaient contre-intuitif. Cette complexité provenait en partie du fait que Git avait adopté certains choix audacieux que jamais un utilisateur habitué aux systèmes traditionnels n'aurait osé faire.",[12,190,191],{},[33,192,193],{},"Le projet Git a toujours été actif depuis que vous en avez confié la maintenance à Junio, et sa communauté développe en permanence de nouvelles fonctionnalités. Selon vous, quelles ont été les étapes clés depuis que vous avez quitté le projet ?",[12,195,196,197,200,201,204],{},"Difficile pour moi de répondre à cette question. J'ai évidemment tout fait pour que Git convienne à mes propres besoins. Les fonctionnalités que j'utilisais ",[103,198,199],{},"moi-même"," étaient opérationnelles dès le premier jour. Faire en sorte que Git fonctionne sur Windows était évidemment une étape importante pour beaucoup de développeurs, mais cela n'a eu absolument aucun impact sur ",[103,202,203],{},"moi"," ;)",[12,206,207],{},"Il est évident que Git possède toute l'infrastructure nécessaire pour le rendre beaucoup plus facile à utiliser, mais je pense que les étapes majeures ont surtout concerné les projets construits autour de l'infrastructure Git. Ces développements sont par la suite souvent intégrés aux fonctionnalités de Git, mais, en réalité, les étapes clés sont souvent liées à des projets externes.",[12,209,210,211,214],{},"Par exemple, les grandes plateformes d'hébergement Git ont constitué des étapes importantes. Le modèle distribué de Git a grandement facilité leur création, mais la véritable ",[103,212,213],{},"étape"," a été la façon dont elles ont rendu Git tellement plus accessible et pratique pour les utilisateurs et les équipes travaillant sur divers projets.",[12,216,217],{},[33,218,219],{},"Si vous aviez la possibilité de travailler à nouveau sur Git à plein temps, qu'aimeriez-vous implémenter ?",[12,221,222],{},"Absolument rien. Git me convenait parfaitement dès le début. Mon utilisation est en fait assez limitée et je ne m'intéresse vraiment qu'à un seul projet.",[12,224,225],{},"Comme je l'ai expliqué précédemment, je n'ai jamais vraiment été passionné par les SCM. Git a fini par se différencier positivement des autres SCM, car je l'ai traité comme un système de fichiers distribué basé sur les logs, et non comme un SCM traditionnel.",[12,227,228],{},[33,229,230],{},"Y a-t-il une fonctionnalité ou une décision de conception dans Git que vous regrettez avec le recul ?",[12,232,233],{},"Des décisions de conception ? Non. Je suis convaincu que la conception globale est excellente, et vous pouvez discuter des concepts fondamentaux de Git sans jamais vous perdre dans les détails complexes de son implémentation.",[12,235,236],{},"Il est essentiel dans un projet d'avoir un certain nombre de principes de conception générale pour guider sa direction conceptuelle.",[12,238,239,240,243],{},"Les gens pensent parfois que l'étape de mise en œuvre doit suivre aveuglément les principes fondamentaux de la conception générale. Et c'est faux. La ",[103,241,242],{},"mise en œuvre"," aura son lot de cas particuliers compliqués parce les utilisateurs ont des besoins parfois étranges. L'essentiel est de définir une conception générale claire qui servira de référence au projet et à laquelle vous pourrez réfléchir avant de vous confronter à la réalité.",[12,245,246,247,250],{},"Et je pense que Git offre un équilibre parfait avec un système basique de stockage d'objets (que les experts en contrôle de version appellent  « arbres de Merkle structurés » et que les spécialistes des systèmes de fichiers appellent « stockage avec adressage par contenu »). Cette conception centrale est très simple, mais elle ne représente en réalité qu'une infime partie de la totalité du code du projet. La majeure partie du ",[103,248,249],{},"code"," de Git concerne en effet toutes les opérations et fonctionnalités que l'on peut construire autour de ce modèle central. Malgré cela, cette simplicité et cette clarté fondamentales offrent au projet une structure d'ensemble solide, compréhensible et cohérente.\nC'est une structure semblable à celle d'Unix dont le principe est que « tout est un fichier » ou à sa gestion de processus. Ces « concepts » guident la conception, mais 99 % du code a pour objectif de créer des fonctionnalités utiles pour des utilisations concrètes.",[12,252,253],{},"J'ai deux mantras en technologie : « Si j'ai pu voir aussi loin, c'est parce que j'étais juché sur les épaules de géants » (Newton) et « Le génie, c'est 1 % d'inspiration et 99 % de transpiration » (Edison).",[12,255,256],{},"Bien que je sois très satisfait des grandes lignes de la conception, avec le recul, si je devais développer Git aujourd'hui, je changerais certains détails.",[12,258,259,260,263],{},"Mais honnêtement, ce sont des détails mineurs comparés à toutes les fonctionnalités ",[103,261,262],{},"de qualité"," qui ont été créées par la communauté au cours des deux dernières décennies.",[12,265,266],{},[33,267,268],{},"Le noyau Linux a commencé à utiliser Rust comme langage de programmation pour certains de ses sous-systèmes. Pensez-vous qu'il soit logique de commencer à utiliser des langages de programmation aussi récents que celui-ci dans Git ?",[12,270,271],{},"En ce qui concerne Git, mélanger les langages n'est pas une bonne idée, car cela reste toujours un processus complexe.",[12,273,274],{},"Dans le noyau Linux, le résultat final est un binaire unique, même si une grande partie peut être chargée dynamiquement sous forme de modules.",[12,276,277],{},"Et cela rend plus difficile l'utilisation de plusieurs langages. En revanche, le noyau doit prendre en compte la sécurité de la mémoire et, par conséquent, envisager d'utiliser des langages plus récents.",[12,279,280],{},"Si un développeur veut écrire certaines parties de Git en Rust ou dans un autre langage, il est beaucoup plus logique d'opter pour une mise en œuvre séparée plutôt que de mélanger les différents langages dans un seul binaire.",[12,282,283],{},"La conception du noyau Git est suffisamment simple pour autoriser des implémentations parallèles. Vous pouvez ensuite cibler des cas spécifiques pour lesquels l'utilisation d'un langage différent fait sens.",[12,285,286],{},"JGit en est un parfait exemple. L'utilisation d'un autre langage était motivée par la présence d'un environnement web différent pour lequel ce choix de langage était beaucoup plus naturel.",[12,288,289],{},"Il existe déjà des implémentations de certaines fonctionnalités Git de base en Rust qui font sens dans des contextes spécifiques, mais je doute que cela justifie une approche globale du type « convertissons tout en Rust ».",[12,291,292],{},"Je recommande aux équipes qui souhaitent travailler avec Rust de cibler des domaines où ses avantages sont plus évidents. Je ne pense pas que C ait été si problématique dans le code source standard de Git.",[12,294,295],{},[33,296,297],{},"De nouveaux systèmes de contrôle de version voient le jour tous les deux ou trois ans. Pensez-vous que Git restera pertinent à l'avenir ?",[12,299,300],{},"J'ai déjà mentionné les effets de réseau dans les SCM. Selon moi, seul un système bien meilleur que Git sera en mesure de le remplacer. Ou alors il sera tellement compatible qu'il s'agira tout simplement d'une nouvelle implémentation de Git.",[12,302,303],{},"De plus, la situation des SCM a beaucoup évolué : Git n'a pas les énormes failles fondamentales des SCM qui l'ont précédé. Il est donc assez difficile de le surpasser.",[12,305,306,307,310],{},"Je m'attends donc à ce que Git reste pertinent à l'avenir : les développeurs travailleront sur des améliorations ",[103,308,309],{},"autour"," de Git plutôt que de le remplacer par de nouveaux systèmes.",[12,312,313],{},[103,314,315],{},"Remarque : cet entretien a été édité pour en raccourcir la longueur et améliorer la clarté.",[317,318,320],"h2",{"id":319},"en-savoir-plus-sur-git","En savoir plus sur Git",[322,323,324,343,364],"ul",{},[325,326,327,332,333,332,338],"li",{},[16,328,331],{"href":329,"rel":330},"https://about.gitlab.com/fr-fr/blog/whats-new-in-git-2-49-0/",[],"Nouveautés de Git 2.49.0","  - ",[16,334,337],{"href":335,"rel":336},"https://about.gitlab.com/fr-fr/blog/whats-new-in-git-2-48-0/",[],"Nouveautés de Git 2.48.0",[16,339,342],{"href":340,"rel":341},"https://about.gitlab.com/fr-fr/blog/a-beginners-guide-to-the-git-reftable-format/",[],"Format « reftable » de Git : guide pour les débutants",[325,344,345,351,352,351,358],{},[16,346,350],{"href":347,"rel":348,"title":349},"https://about.gitlab.com/fr-fr/blog/keeping-git-commit-history-clean/",[],"Commits Git","Commits Git : comment et pourquoi maintenir un historique propre"," - ",[16,353,357],{"href":354,"rel":355,"title":356},"https://about.gitlab.com/fr-fr/blog/git-pull-vs-git-fetch-whats-the-difference/",[],"Git fetch vs git pull","Git fetch vs git pull : quelle est la différence entre ces deux commandes Git ?",[16,359,363],{"href":360,"rel":361,"title":362},"https://about.gitlab.com/fr-fr/blog/git-bash/",[],"Git Bash","Git en ligne de commande sous Windows avec Git Bash",[325,365,366,351,372],{},[16,367,371],{"href":368,"rel":369,"title":370},"https://about.gitlab.com/fr-fr/blog/take-advantage-of-git-rebase/",[],"Git rebase","Améliorez votre workflow avec Git rebase",[16,373,376],{"href":374,"rel":375},"https://git-scm.com/",[],"Projet Git",{"title":378,"searchDepth":379,"depth":379,"links":380},"",2,[381],{"id":319,"depth":379,"text":320},"open-source","2025-04-07","Linus Torvalds nous explique les origines de Git, pourquoi il en a confié la maintenance à Junio Hamano et ce qu'il pense de l'ajout de nouveaux langages de programmation à Git.","md",null,true,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662510/Blog/Hero%20Images/git-20-years-opt1.png",{},"/fr-fr/blog/celebrating-gits-20th-anniversary-with-creator-linus-torvalds",{"title":5,"description":384,"ogTitle":5,"ogDescription":384,"noIndex":392,"ogImage":388,"ogUrl":393,"ogSiteName":394,"ogType":395,"canonicalUrls":393},false,"https://about.gitlab.com/blog/celebrating-gits-20th-anniversary-with-creator-linus-torvalds","https://about.gitlab.com","article","celebrating-gits-20th-anniversary-with-creator-linus-torvalds","fr-fr/blog/celebrating-gits-20th-anniversary-with-creator-linus-torvalds",[47,399],"git","BlogPost","2025-04-22","3uQLrjvbqD0XGO174W-Q0lFB1d8TovfOoKHdzE4Asyw",{"logo":404,"freeTrial":409,"sales":414,"login":419,"items":424,"search":752,"minimal":788,"duo":807,"switchNav":816,"pricingDeployment":827},{"config":405},{"href":406,"dataGaName":407,"dataGaLocation":408},"/fr-fr/","gitlab logo","header",{"text":410,"config":411},"Commencer un essai gratuit",{"href":412,"dataGaName":413,"dataGaLocation":408},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr&glm_content=default-saas-trial/","free trial",{"text":415,"config":416},"Demander une démo",{"href":417,"dataGaName":418,"dataGaLocation":408},"/fr-fr/sales/?contact-topic=request-demo","sales",{"text":420,"config":421},"Connexion",{"href":422,"dataGaName":423,"dataGaLocation":408},"https://gitlab.com/users/sign_in/","sign in",[425,454,555,560,674,730],{"text":426,"config":427,"menu":429},"Plateforme",{"dataNavLevelOne":428},"platform",{"type":430,"columns":431},"cards",[432,438,446],{"title":426,"description":433,"link":434},"La plateforme d'orchestration intelligente pour le DevSecOps",{"text":435,"config":436},"Explorer notre plateforme",{"href":437,"dataGaName":428,"dataGaLocation":408},"/fr-fr/platform/",{"title":439,"description":440,"link":441},"GitLab Duo Agent Platform","L'IA agentique pour l'ensemble du cycle de développement logiciel",{"text":442,"config":443},"Découvrir GitLab Duo",{"href":444,"dataGaName":445,"dataGaLocation":408},"/fr-fr/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":447,"description":448,"link":449},"Pourquoi GitLab ?","Découvrez les principales raisons pour lesquelles les entreprises choisissent GitLab",{"text":450,"config":451},"En savoir plus",{"href":452,"dataGaName":453,"dataGaLocation":408},"/fr-fr/why-gitlab/","why gitlab",{"text":455,"left":387,"config":456,"menu":458},"Produit",{"dataNavLevelOne":457},"solutions",{"type":459,"link":460,"columns":464,"feature":534},"lists",{"text":461,"config":462},"Voir toutes les solutions",{"href":463,"dataGaName":457,"dataGaLocation":408},"/fr-fr/solutions/",[465,489,512],{"title":466,"description":467,"link":468,"items":473},"Automatisation","CI/CD et automatisation pour accélérer le déploiement",{"config":469},{"icon":470,"href":471,"dataGaName":472,"dataGaLocation":408},"AutomatedCodeAlt","/fr-fr/solutions/delivery-automation/","automated software delivery",[474,478,481,485],{"text":475,"config":476},"CI/CD",{"href":477,"dataGaLocation":408,"dataGaName":475},"/fr-fr/solutions/continuous-integration/",{"text":439,"config":479},{"href":444,"dataGaLocation":408,"dataGaName":480},"gitlab duo agent platform - product menu",{"text":90,"config":482},{"href":483,"dataGaLocation":408,"dataGaName":484},"/fr-fr/solutions/source-code-management/","Source Code Management",{"text":486,"config":487},"Livraison de logiciels automatisée",{"href":471,"dataGaLocation":408,"dataGaName":488},"Automated software delivery",{"title":490,"description":491,"link":492,"items":497},"Sécurité","Livrez du code plus rapidement sans compromettre la sécurité",{"config":493},{"href":494,"dataGaName":495,"dataGaLocation":408,"icon":496},"/fr-fr/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[498,502,507],{"text":499,"config":500},"Tests de sécurité des applications",{"href":494,"dataGaName":501,"dataGaLocation":408},"Application security testing",{"text":503,"config":504},"Sécurité de la chaîne d'approvisionnement logicielle",{"href":505,"dataGaLocation":408,"dataGaName":506},"/fr-fr/solutions/supply-chain/","Software supply chain security",{"text":508,"config":509},"Conformité logicielle",{"href":510,"dataGaName":511,"dataGaLocation":408},"/fr-fr/solutions/software-compliance/","software compliance",{"title":513,"link":514,"items":519},"Mesures",{"config":515},{"icon":516,"href":517,"dataGaName":518,"dataGaLocation":408},"DigitalTransformation","/fr-fr/solutions/visibility-measurement/","visibility and measurement",[520,524,529],{"text":521,"config":522},"Visibilité et mesures",{"href":517,"dataGaLocation":408,"dataGaName":523},"Visibility and Measurement",{"text":525,"config":526},"Gestion de la chaîne de valeur",{"href":527,"dataGaLocation":408,"dataGaName":528},"/fr-fr/solutions/value-stream-management/","Value Stream Management",{"text":530,"config":531},"Analyses et informations",{"href":532,"dataGaLocation":408,"dataGaName":533},"/fr-fr/solutions/analytics-and-insights/","Analytics and insights",{"title":535,"type":459,"items":536},"GitLab",[537,543,549],{"text":538,"config":539},"Entreprises",{"icon":540,"href":541,"dataGaLocation":408,"dataGaName":542},"Building","/fr-fr/enterprise/","enterprise",{"text":544,"config":545},"Pour les PME",{"icon":546,"href":547,"dataGaLocation":408,"dataGaName":548},"Work","/fr-fr/small-business/","small business",{"text":550,"config":551},"Pour le secteur public",{"icon":552,"href":553,"dataGaLocation":408,"dataGaName":554},"Organization","/fr-fr/solutions/public-sector/","public sector",{"text":556,"config":557},"Tarifs",{"href":558,"dataGaName":559,"dataGaLocation":408,"dataNavLevelOne":559},"/fr-fr/pricing/","pricing",{"text":561,"config":562,"menu":564},"Ressources",{"dataNavLevelOne":563},"resources",{"type":459,"link":565,"columns":569,"feature":663},{"text":566,"config":567},"Afficher toutes les ressources",{"href":568,"dataGaName":563,"dataGaLocation":408},"/fr-fr/resources/",[570,603,630],{"title":571,"items":572},"Premiers pas",[573,578,583,588,593,598],{"text":574,"config":575},"Installation",{"href":576,"dataGaName":577,"dataGaLocation":408},"/fr-fr/install/","install",{"text":579,"config":580},"Guides de démarrage",{"href":581,"dataGaName":582,"dataGaLocation":408},"/fr-fr/get-started/","quick setup checklists",{"text":584,"config":585},"Apprentissage",{"href":586,"dataGaLocation":408,"dataGaName":587},"https://university.gitlab.com/","learn",{"text":589,"config":590},"Documentation",{"href":591,"dataGaName":592,"dataGaLocation":408},"https://docs.gitlab.com/","product documentation",{"text":594,"config":595},"Vidéos sur les bonnes pratiques",{"href":596,"dataGaName":597,"dataGaLocation":408},"/fr-fr/getting-started-videos/","best practice videos",{"text":599,"config":600},"Intégrations",{"href":601,"dataGaName":602,"dataGaLocation":408},"/fr-fr/integrations/","integrations",{"title":604,"items":605},"Découvrir",[606,611,616,621,625],{"text":607,"config":608},"Témoignages clients",{"href":609,"dataGaName":610,"dataGaLocation":408},"/fr-fr/customers/","customer success stories",{"text":612,"config":613},"Blog",{"href":614,"dataGaName":615,"dataGaLocation":408},"/fr-fr/blog/","blog",{"text":617,"config":618},"Demo Hub",{"href":619,"dataGaName":620,"dataGaLocation":408},"/fr-fr/demo-hub/","demo hub",{"text":622,"config":623},"The Source",{"href":624,"dataGaName":615,"dataGaLocation":408},"/fr-fr/the-source/",{"text":626,"config":627},"Travail à distance",{"href":628,"dataGaName":629,"dataGaLocation":408},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":631,"items":632},"Connecter",[633,638,643,648,653,658],{"text":634,"config":635},"Services GitLab",{"href":636,"dataGaName":637,"dataGaLocation":408},"/fr-fr/services/","services",{"text":639,"config":640},"Contribuer",{"href":641,"dataGaName":642,"dataGaLocation":408},"https://contributors.gitlab.com","contribute",{"text":644,"config":645},"Communauté",{"href":646,"dataGaName":647,"dataGaLocation":408},"/community/","community",{"text":649,"config":650},"Forum",{"href":651,"dataGaName":652,"dataGaLocation":408},"https://forum.gitlab.com/","forum",{"text":654,"config":655},"Événements",{"href":656,"dataGaName":657,"dataGaLocation":408},"/events/","events",{"text":659,"config":660},"Partenaires",{"href":661,"dataGaName":662,"dataGaLocation":408},"/fr-fr/partners/","partners",{"config":664,"title":667,"text":668,"link":669},{"background":665,"textColor":666},"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":670,"config":671},"Lire les articles les plus récents",{"href":672,"dataGaName":673,"dataGaLocation":408},"/fr-fr/whats-new/","whats new",{"text":675,"config":676,"menu":678},"Société",{"dataNavLevelOne":677},"company",{"type":459,"columns":679},[680],{"items":681},[682,687,693,695,700,705,710,715,720,725],{"text":683,"config":684},"À propos",{"href":685,"dataGaName":686,"dataGaLocation":408},"/fr-fr/company/","about",{"text":688,"config":689,"footerGa":692},"Carrières",{"href":690,"dataGaName":691,"dataGaLocation":408},"/jobs/","jobs",{"dataGaName":691},{"text":654,"config":694},{"href":656,"dataGaName":657,"dataGaLocation":408},{"text":696,"config":697},"Leadership",{"href":698,"dataGaName":699,"dataGaLocation":408},"/company/team/e-group/","leadership",{"text":701,"config":702},"Manuel",{"href":703,"dataGaName":704,"dataGaLocation":408},"https://handbook.gitlab.com/","handbook",{"text":706,"config":707},"Relations avec les investisseurs",{"href":708,"dataGaName":709,"dataGaLocation":408},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":711,"config":712},"Trust Center",{"href":713,"dataGaName":714,"dataGaLocation":408},"/fr-fr/security/","trust center",{"text":716,"config":717},"Centre pour la transparence de l'IA",{"href":718,"dataGaName":719,"dataGaLocation":408},"/fr-fr/ai-transparency-center/","ai transparency center",{"text":721,"config":722},"Newsletter",{"href":723,"dataGaName":724,"dataGaLocation":408},"/company/contact/#contact-forms","newsletter",{"text":726,"config":727},"Presse",{"href":728,"dataGaName":729,"dataGaLocation":408},"/press/","press",{"text":731,"config":732,"menu":733},"Nous contacter",{"dataNavLevelOne":677},{"type":459,"columns":734},[735],{"items":736},[737,742,747],{"text":738,"config":739},"Contacter l'équipe commerciale",{"href":740,"dataGaName":741,"dataGaLocation":408},"/fr-fr/sales/","talk to sales",{"text":743,"config":744},"Assistance GitLab",{"href":745,"dataGaName":746,"dataGaLocation":408},"https://support.gitlab.com/hc/en-us","support portal",{"text":748,"config":749},"Portail clients GitLab",{"href":750,"dataGaName":751,"dataGaLocation":408},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":753,"login":754,"suggestions":761},"Fermer",{"text":755,"link":756},"Pour rechercher des dépôts et des projets, connectez-vous à",{"text":757,"config":758},"GitLab.com",{"href":422,"dataGaName":759,"dataGaLocation":760},"search login","search",{"text":762,"default":763},"Suggestions",[764,767,772,774,779,784],{"text":439,"config":765},{"href":444,"dataGaName":766,"dataGaLocation":760},"GitLab Duo Agent Platform",{"text":768,"config":769},"Suggestions de code (IA)",{"href":770,"dataGaName":771,"dataGaLocation":760},"/fr-fr/solutions/code-suggestions/","Code Suggestions (AI)",{"text":475,"config":773},{"href":477,"dataGaName":475,"dataGaLocation":760},{"text":775,"config":776},"GitLab sur AWS",{"href":777,"dataGaName":778,"dataGaLocation":760},"/fr-fr/partners/technology-partners/aws/","GitLab on AWS",{"text":780,"config":781},"GitLab sur Google Cloud",{"href":782,"dataGaName":783,"dataGaLocation":760},"/fr-fr/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":785,"config":786},"Pourquoi utiliser GitLab ?",{"href":452,"dataGaName":787,"dataGaLocation":760},"Why GitLab?",{"freeTrial":789,"mobileIcon":794,"desktopIcon":799,"secondaryButton":802},{"text":790,"config":791},"Commencer votre essai gratuit",{"href":792,"dataGaName":413,"dataGaLocation":793},"https://gitlab.com/-/trials/new/","nav",{"altText":795,"config":796},"Icône GitLab",{"src":797,"dataGaName":798,"dataGaLocation":793},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":795,"config":800},{"src":801,"dataGaName":798,"dataGaLocation":793},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":803,"config":804},"Commencer",{"href":805,"dataGaName":806,"dataGaLocation":793},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr/get-started/","get started",{"freeTrial":808,"mobileIcon":812,"desktopIcon":814},{"text":809,"config":810},"En savoir plus sur GitLab Duo",{"href":444,"dataGaName":811,"dataGaLocation":793},"gitlab duo",{"altText":795,"config":813},{"src":797,"dataGaName":798,"dataGaLocation":793},{"altText":795,"config":815},{"src":801,"dataGaName":798,"dataGaLocation":793},{"button":817,"mobileIcon":822,"desktopIcon":824},{"text":818,"config":819},"/switch",{"href":820,"dataGaName":821,"dataGaLocation":793},"#contact","switch",{"altText":795,"config":823},{"src":797,"dataGaName":798,"dataGaLocation":793},{"altText":795,"config":825},{"src":826,"dataGaName":798,"dataGaLocation":793},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":828,"mobileIcon":833,"desktopIcon":835},{"text":829,"config":830},"Retour aux tarifs",{"href":558,"dataGaName":831,"dataGaLocation":793,"icon":832},"back to pricing","GoBack",{"altText":795,"config":834},{"src":797,"dataGaName":798,"dataGaLocation":793},{"altText":795,"config":836},{"src":801,"dataGaName":798,"dataGaLocation":793},{"title":838,"button":839,"config":843},"GitLab Orbit est arrivé : la couche de contexte pour les agents d'IA.",{"text":450,"config":840},{"href":841,"dataGaName":842,"dataGaLocation":408},"/fr-fr/gitlab-orbit/","orbit",{"layout":844,"disabled":392},"release",{"data":846},{"text":847,"source":848,"edit":854,"contribute":859,"config":863,"items":868,"minimal":1076},"Git est une marque déposée de Software Freedom Conservancy et notre utilisation de « GitLab » est sous licence.",{"text":849,"config":850},"Afficher le code source de la page",{"href":851,"dataGaName":852,"dataGaLocation":853},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":855,"config":856},"Modifier cette page",{"href":857,"dataGaName":858,"dataGaLocation":853},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":639,"config":860},{"href":861,"dataGaName":862,"dataGaLocation":853},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":864,"facebook":865,"youtube":866,"linkedin":867},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[869,915,968,1011,1043],{"title":556,"links":870,"subMenu":885},[871,875,880],{"text":872,"config":873},"Voir les forfaits",{"href":558,"dataGaName":874,"dataGaLocation":853},"view plans",{"text":876,"config":877},"GitLab Premium",{"href":878,"dataGaName":879,"dataGaLocation":853},"/fr-fr/pricing/premium/","why premium",{"text":881,"config":882},"GitLab Ultimate",{"href":883,"dataGaName":884,"dataGaLocation":853},"/fr-fr/pricing/ultimate/","why ultimate",[886],{"title":731,"links":887},[888,890,892,895,900,905,910],{"text":738,"config":889},{"href":740,"dataGaName":418,"dataGaLocation":853},{"text":743,"config":891},{"href":745,"dataGaName":746,"dataGaLocation":853},{"text":893,"config":894},"Portail clients",{"href":750,"dataGaName":751,"dataGaLocation":853},{"text":896,"config":897},"Statut",{"href":898,"dataGaName":899,"dataGaLocation":853},"https://status.gitlab.com/","status",{"text":901,"config":902},"Conditions d'utilisation",{"href":903,"dataGaName":904,"dataGaLocation":853},"/terms/","terms of use",{"text":906,"config":907},"Politique de confidentialité",{"href":908,"dataGaName":909,"dataGaLocation":853},"/fr-fr/privacy/","privacy statement",{"text":911,"config":912},"Gestion des cookies",{"dataGaName":913,"dataGaLocation":853,"id":914,"isOneTrustButton":387},"cookie preferences","ot-sdk-btn",{"title":455,"links":916,"subMenu":925},[917,921],{"text":918,"config":919},"Plateforme DevSecOps",{"href":437,"dataGaName":920,"dataGaLocation":853},"devsecops platform",{"text":922,"config":923},"Développement assisté par l'IA",{"href":444,"dataGaName":924,"dataGaLocation":853},"ai-assisted development",[926],{"title":927,"links":928},"Thèmes",[929,933,938,943,948,953,958,963],{"text":475,"config":930},{"href":931,"dataGaName":932,"dataGaLocation":853},"/fr-fr/topics/ci-cd/","cicd",{"text":934,"config":935},"GitOps",{"href":936,"dataGaName":937,"dataGaLocation":853},"/fr-fr/topics/gitops/","gitops",{"text":939,"config":940},"DevOps",{"href":941,"dataGaName":942,"dataGaLocation":853},"/fr-fr/topics/devops/","devops",{"text":944,"config":945},"Contrôle de version",{"href":946,"dataGaName":947,"dataGaLocation":853},"/fr-fr/topics/version-control/","version control",{"text":949,"config":950},"DevSecOps",{"href":951,"dataGaName":952,"dataGaLocation":853},"/fr-fr/topics/devsecops/","devsecops",{"text":954,"config":955},"Cloud-native",{"href":956,"dataGaName":957,"dataGaLocation":853},"/fr-fr/topics/cloud-native/","cloud native",{"text":959,"config":960},"IA pour la programmation",{"href":961,"dataGaName":962,"dataGaLocation":853},"/fr-fr/topics/devops/ai-for-coding/","ai for coding",{"text":964,"config":965},"IA agentique",{"href":966,"dataGaName":967,"dataGaLocation":853},"/fr-fr/topics/agentic-ai/","agentic ai",{"title":969,"links":970},"Solutions",[971,974,976,981,984,987,990,993,995,998,1001,1006],{"text":499,"config":972},{"href":494,"dataGaName":973,"dataGaLocation":853},"Application Security Testing",{"text":486,"config":975},{"href":471,"dataGaName":472,"dataGaLocation":853},{"text":977,"config":978},"Développement Agile",{"href":979,"dataGaName":980,"dataGaLocation":853},"/fr-fr/solutions/agile-delivery/","agile delivery",{"text":90,"config":982},{"href":483,"dataGaName":983,"dataGaLocation":853},"source code management",{"text":475,"config":985},{"href":477,"dataGaName":986,"dataGaLocation":853},"continuous integration & delivery",{"text":525,"config":988},{"href":527,"dataGaName":989,"dataGaLocation":853},"value stream management",{"text":934,"config":991},{"href":992,"dataGaName":937,"dataGaLocation":853},"/fr-fr/solutions/gitops/",{"text":538,"config":994},{"href":541,"dataGaName":542,"dataGaLocation":853},{"text":996,"config":997},"PME",{"href":547,"dataGaName":548,"dataGaLocation":853},{"text":999,"config":1000},"Secteur public",{"href":553,"dataGaName":554,"dataGaLocation":853},{"text":1002,"config":1003},"Éducation",{"href":1004,"dataGaName":1005,"dataGaLocation":853},"/fr-fr/solutions/education/","education",{"text":1007,"config":1008},"Services financiers",{"href":1009,"dataGaName":1010,"dataGaLocation":853},"/fr-fr/solutions/finance/","financial services",{"title":561,"links":1012},[1013,1015,1017,1019,1022,1024,1027,1029,1031,1033,1035,1037,1039,1041],{"text":574,"config":1014},{"href":576,"dataGaName":577,"dataGaLocation":853},{"text":579,"config":1016},{"href":581,"dataGaName":582,"dataGaLocation":853},{"text":584,"config":1018},{"href":586,"dataGaName":587,"dataGaLocation":853},{"text":589,"config":1020},{"href":591,"dataGaName":1021,"dataGaLocation":853},"docs",{"text":612,"config":1023},{"href":614,"dataGaName":615,"dataGaLocation":853},{"text":1025,"config":1026},"Nouveautés",{"href":672,"dataGaName":673,"dataGaLocation":853},{"text":607,"config":1028},{"href":609,"dataGaName":610,"dataGaLocation":853},{"text":626,"config":1030},{"href":628,"dataGaName":629,"dataGaLocation":853},{"text":634,"config":1032},{"href":636,"dataGaName":637,"dataGaLocation":853},{"text":639,"config":1034},{"href":641,"dataGaName":642,"dataGaLocation":853},{"text":644,"config":1036},{"href":646,"dataGaName":647,"dataGaLocation":853},{"text":649,"config":1038},{"href":651,"dataGaName":652,"dataGaLocation":853},{"text":654,"config":1040},{"href":656,"dataGaName":657,"dataGaLocation":853},{"text":659,"config":1042},{"href":661,"dataGaName":662,"dataGaLocation":853},{"title":675,"links":1044},[1045,1047,1049,1051,1053,1055,1060,1065,1067,1069,1071],{"text":683,"config":1046},{"href":685,"dataGaName":677,"dataGaLocation":853},{"text":688,"config":1048},{"href":690,"dataGaName":691,"dataGaLocation":853},{"text":696,"config":1050},{"href":698,"dataGaName":699,"dataGaLocation":853},{"text":701,"config":1052},{"href":703,"dataGaName":704,"dataGaLocation":853},{"text":706,"config":1054},{"href":708,"dataGaName":709,"dataGaLocation":853},{"text":1056,"config":1057},"Développement durable",{"href":1058,"dataGaName":1059,"dataGaLocation":853},"/sustainability/","Sustainability",{"text":1061,"config":1062},"Diversité, inclusion et appartenance (DIB)",{"href":1063,"dataGaName":1064,"dataGaLocation":853},"/fr-fr/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":711,"config":1066},{"href":713,"dataGaName":714,"dataGaLocation":853},{"text":721,"config":1068},{"href":723,"dataGaName":724,"dataGaLocation":853},{"text":726,"config":1070},{"href":728,"dataGaName":729,"dataGaLocation":853},{"text":1072,"config":1073},"Déclaration de transparence sur l'esclavage moderne",{"href":1074,"dataGaName":1075,"dataGaLocation":853},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1077},[1078,1080,1082],{"text":901,"config":1079},{"href":903,"dataGaName":904,"dataGaLocation":853},{"text":911,"config":1081},{"dataGaName":913,"dataGaLocation":853,"id":914,"isOneTrustButton":387},{"text":906,"config":1083},{"href":908,"dataGaName":909,"dataGaLocation":853},[1085],{"id":1086,"title":7,"body":386,"config":1087,"content":1089,"description":386,"extension":1093,"meta":1094,"navigation":387,"path":1095,"seo":1096,"stem":1097,"__hash__":1098},"blogAuthors/en-us/blog/authors/patrick-steinhardt.yml",{"template":1088},"BlogAuthor",{"name":7,"config":1090},{"headshot":1091,"ctfId":1092},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749661952/Blog/Author%20Headshots/pks-gitlab-headshot.png","pksgitlab","yml",{},"/en-us/blog/authors/patrick-steinhardt",{},"en-us/blog/authors/patrick-steinhardt","SV9Yd_vW69UbvntDP-SEOV9NKT_VwUAj5nfftf2ElSw",[1100,1108,1115],{"title":1101,"description":1102,"heroImage":1103,"category":382,"date":1104,"authors":1105,"slug":1107,"externalUrl":386},"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",[1106],"Toon Claes","whats-new-in-git-2-55-0",{"title":1109,"description":1110,"heroImage":1111,"category":382,"date":1112,"authors":1113,"slug":1114,"externalUrl":386},"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",[7],"whats-new-in-git-2-54-0",{"title":1116,"description":1117,"heroImage":1118,"category":382,"date":1119,"authors":1120,"slug":1122,"externalUrl":386},"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",[1121],"Nick Veenhof","gitlab-ai-hackathon-2026-meet-the-winners",{"promotions":1124},[1125,1139,1151,1163],{"id":1126,"categories":1127,"header":1129,"text":1130,"button":1131,"image":1136},"ai-modernization",[1128],"ai","L'IA tient-elle ses promesses à grande échelle ?","Le questionnaire ne prendra pas plus de 5 minutes.",{"text":1132,"config":1133},"Obtenez votre score de maturité IA",{"href":1134,"dataGaName":1135,"dataGaLocation":615},"/fr-fr/assessments/ai-modernization-assessment/","modernization assessment",{"config":1137},{"src":1138},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1140,"categories":1141,"header":1143,"text":1130,"button":1144,"image":1148},"devops-modernization",[1142,952],"product","Vous contentez-vous de gérer des outils ou de livrer des innovations ?",{"text":1145,"config":1146},"Obtenez votre score de maturité DevOps",{"href":1147,"dataGaName":1135,"dataGaLocation":615},"/fr-fr/assessments/devops-modernization-assessment/",{"config":1149},{"src":1150},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1152,"categories":1153,"header":1155,"text":1130,"button":1156,"image":1160},"security-modernization",[1154],"security","Faut-il sacrifier la rapidité pour garantir la sécurité ?",{"text":1157,"config":1158},"Obtenez votre score de maturité en matière de sécurité",{"href":1159,"dataGaName":1135,"dataGaLocation":615},"/fr-fr/assessments/security-modernization-assessment/",{"config":1161},{"src":1162},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1164,"paths":1165,"header":1168,"text":1169,"button":1170,"image":1175},"github-azure-migration",[1166,1167],"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":1171,"config":1172},"Découvrez les différences entre GitLab et GitHub",{"href":1173,"dataGaName":1174,"dataGaLocation":615},"/fr-fr/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1176},{"src":1150},{"header":1178,"blurb":1179,"button":1180,"secondaryButton":1184},"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":410,"config":1181},{"href":1182,"dataGaName":413,"dataGaLocation":1183},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/fr-fr/","feature",{"text":738,"config":1185},{"href":740,"dataGaName":418,"dataGaLocation":1183},1786803746415]