[{"data":1,"prerenderedAt":1343},["ShallowReactive",2],{"/de-de/blog/whats-new-in-git-2-48-0":3,"navigation-de-de":560,"banner-de-de":991,"footer-de-de":999,"blog-post-authors-de-de-Christian Couder":1240,"blog-related-posts-de-de-whats-new-in-git-2-48-0":1255,"blog-promotions-de-de":1279,"next-steps-de-de":1333},{"id":4,"title":5,"authors":6,"body":8,"category":537,"date":538,"description":539,"extension":540,"externalUrl":541,"faq":541,"featured":542,"heroImage":543,"meta":544,"navigation":542,"path":545,"seo":546,"slug":551,"stem":552,"tags":553,"template":557,"updatedDate":558,"__hash__":559},"blogPosts/de-de/blog/whats-new-in-git-2-48-0.md","Was gibt es Neues in Git 2.48.0?",[7],"Christian Couder",{"type":9,"value":10,"toc":526},"minimark",[11,22,27,48,57,71,74,90,93,192,203,221,228,232,241,244,247,252,256,283,298,313,320,324,338,341,354,357,361,382,391,394,399,406,413,422,425,438,445,449,464,467,476,481,485,494,522],[12,13,14,15,21],"p",{},"Das Git-Projekt hat kürzlich ",[16,17,20],"a",{"href":18,"rel":19},"https://lore.kernel.org/git/xmqqplku7cvm.fsf@gitster.g/",[],"Git 2.48.0",". Werfen wir einen Blick auf die wichtigsten Highlights dieser Version, die Beiträge des Git-Teams von GitLab und der gesamten Git-Community enthält.",[23,24,26],"h2",{"id":25},"meson-build-system","Meson-Build-System",[12,28,29,30,35,36,41,42,47],{},"Lange Zeit konnte Git entweder mit einem auf ",[16,31,34],{"href":32,"rel":33},"https://de.wikipedia.org/wiki/Make",[],"Makefile"," oder auf ",[16,37,40],{"href":38,"rel":39},"https://de.wikipedia.org/wiki/GNU_Build_System#GNU_Autoconf",[],"Autoconf"," basierenden Build-System erstellt werden. Git-Entwickler(innen) verwendeten bis jetzt hauptsächlich das auf Makefile basierende Build-System, weshalb ",[16,43,46],{"href":44,"rel":45},"https://lore.kernel.org/git/GV1PR02MB848925A79A9DD733848182D58D662@GV1PR02MB8489.eurprd02.prod.outlook.com/",[],"das auf Autoconf basierende Build-System hinsichtlich Funktionen und Wartung hinterherhinkte",". Ein weiteres Problem war, dass viele Windows-Entwickler(innen) integrierte Entwicklungsumgebungen (IDEs) verwendeten, die auf Makefile und Autoconf basierende Build-Systeme nicht gut unterstützten.",[12,49,50,51,56],{},"Im Jahr 2020 wurde die Unterstützung für die Entwicklung um Git und ",[16,52,55],{"href":53,"rel":54},"https://cmake.org/",[],"CMake"," ergänzt. CMake bot eine bessere Windows-Unterstützung und IDE-Integration, insbesondere für Visual Studio. Einige moderne Build-Systemfunktionen wie Out-of-Source-Builds waren ebenfalls enthalten.",[12,58,59,60,65,66,70],{},"Vor kurzem schien es, dass der CMake-Support ebenfalls hinterherhinkte und dass es vielleicht keine gute Idee wäre, die beiden anderen Build-Systeme zu ersetzen. Also implementierte ",[16,61,64],{"href":62,"rel":63},"https://gitlab.com/pks-gitlab",[],"Patrick Steinhardt",", GitLab Git Engineering Manager, Unterstützung für das ",[16,67,26],{"href":68,"rel":69},"https://mesonbuild.com/",[],". Ziel dabei war, irgendwann die auf Autoconf, CMake und vielleicht sogar Makefile basierenden Build-Systeme zu ersetzen.",[12,72,73],{},"Das neue, auf Meson basierende Build-System hat folgende Vorteile:",[75,76,77,81,84,87],"ul",{},[78,79,80],"li",{},"Benutzer(innen) können die verfügbaren Build-Optionen einfacher finden, was mit Makefiles und CMake schwierig ist.",[78,82,83],{},"Einfache Syntax im Vergleich zu Autoconf und CMake.",[78,85,86],{},"Viele verschiedene Betriebssysteme, Compiler und IDEs werden unterstützt.",[78,88,89],{},"Moderne Build-Systemfunktionen wie Out-of-Source-Builds werden unterstützt.",[12,91,92],{},"Hier ist ein Beispiel dafür, wie es tatsächlich zum Erstellen von Git verwendet werden kann:",[94,95,100],"pre",{"className":96,"code":97,"language":98,"meta":99,"style":99},"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","",[101,102,103,123,140,153,166,179],"code",{"__ignoreMap":99},[104,105,108,112,116,119],"span",{"class":106,"line":107},"line",1,[104,109,111],{"class":110},"s7eDp","$",[104,113,115],{"class":114},"sYBdl"," cd",[104,117,118],{"class":114}," git",[104,120,122],{"class":121},"sAwPA","                # go into the root of Git's source code\n",[104,124,126,128,131,134,137],{"class":106,"line":125},2,[104,127,111],{"class":110},[104,129,130],{"class":114}," meson",[104,132,133],{"class":114}," setup",[104,135,136],{"class":114}," build/",[104,138,139],{"class":121},"    # setup \"build\" as a build directory\n",[104,141,143,145,147,150],{"class":106,"line":142},3,[104,144,111],{"class":110},[104,146,115],{"class":114},[104,148,149],{"class":114}," build",[104,151,152],{"class":121},"              # go into the \"build\" directory\n",[104,154,156,158,160,163],{"class":106,"line":155},4,[104,157,111],{"class":110},[104,159,130],{"class":114},[104,161,162],{"class":114}," compile",[104,164,165],{"class":121},"         # actually build Git\n",[104,167,169,171,173,176],{"class":106,"line":168},5,[104,170,111],{"class":110},[104,172,130],{"class":114},[104,174,175],{"class":114}," test",[104,177,178],{"class":121},"            # test the new build\n",[104,180,182,184,186,189],{"class":106,"line":181},6,[104,183,111],{"class":110},[104,185,130],{"class":114},[104,187,188],{"class":114}," install",[104,190,191],{"class":121},"         # install the new build\n",[12,193,194,195,198,199,202],{},"Mit ",[101,196,197],{},"meson setup \u003Cbuild_dir>"," können mehrere Build-Verzeichnisse eingerichtet werden, und die Konfiguration des Builds in einem Build-Verzeichnis kann durch Ausführen von ",[101,200,201],{},"meson configure"," im Build-Verzeichnis angezeigt oder geändert werden.",[12,204,205,206,214,215,220],{},"Weitere Informationen zum Erstellen von Git mit Meson findest du oben in der ",[16,207,210,211],{"href":208,"rel":209},"https://gitlab.com/gitlab-org/git/-/blob/master/meson.build",[],"Datei ",[101,212,213],{},"meson.build"," im Git-Code-Repository. Ein ",[16,216,219],{"href":217,"rel":218},"https://gitlab.com/gitlab-org/git/-/blob/master/Documentation/technical/build-systems.txt",[],"Vergleich der verschiedenen Build-Systeme"," für Git ist als Teil der technischen Dokumentation von Git verfügbar.",[12,222,223,224,227],{},"Dieses Projekt wurde von ",[16,225,64],{"href":62,"rel":226},[]," geleitet.",[23,229,231],{"id":230},"git-ist-hat-jetzt-keine-speicherlecks-mehr-wie-von-der-testsuite-ausgeführt","Git ist hat jetzt keine Speicherlecks mehr (wie von der Testsuite ausgeführt)",[12,233,234,235,240],{},"In unserem Git-Release-Blogbeitrag zur vorherigen Release Git 2.47.0 sprachen wir über unsere ",[16,236,239],{"href":237,"rel":238},"https://about.gitlab.com/de-de/blog/whats-new-in-git-2-47-0/#code-refactoring-and-maintainability-improvements",[],"laufenden Bemühungen, alle Speicherlecks zu beheben",", die durch bestehende Tests im Projekt aufgedeckt wurden. Wir sagten, dass das Projekt vor der Git-Release 2.47.0 223 Testdateien hatte, die Speicherlecks enthielten, und dass dies nun auf 60 reduziert wurde.",[12,242,243],{},"Wir freuen uns, dass die Speicherlecks jetzt in allen 60 verbleibenden Testdateien behoben wurden. Dadurch hat Git, wie von der Testsuite gezeigt, nun keine Speicherlecks mehr. Dies ist ein wichtiger Schritt in Richtung des langjährigen Ziels, Git-interne Komponenten zu „libifizieren“ (also diese Komponenten in interne Bibliotheken zu konvertieren). Außerdem trägt es dazu bei, Git für die Speichernutzung zu optimieren.",[12,245,246],{},"Nun darf jeder neu hinzugefügte Test standardmäßig kein Leck enthalten. Es ist immer noch möglich, Tests mit Lecks zu haben, aber die Autor(inn)en müssen dafür eine Notlösung haben und gute Argumente liefern, warum der Test nicht ohne Lecks erstellt werden kann.",[12,248,223,249,227],{},[16,250,64],{"href":62,"rel":251},[],[23,253,255],{"id":254},"verbesserte-bundle-uri-checks","Verbesserte Bundle-URI-Checks",[12,257,258,259,264,265,270,271,276,277,282],{},"In unserem Git-Release-Blogbeitrag zur Release von Git 2.46.0 sprachen wir über einige ",[16,260,263],{"href":261,"rel":262},"https://about.gitlab.com/de-de/blog/whats-new-in-git-2-46-0/#bundle-uri-fixes",[],"Bundle-URI-Fixes"," von ",[16,266,269],{"href":267,"rel":268},"https://lore.kernel.org/git/pull.1730.git.1715742069966.gitgitgadget@gmail.com/",[],"Xing Xin",".\nNach diesen Korrekturen arbeitete Xing Xin daran, dass ",[16,272,275],{"href":273,"rel":274},"https://lore.kernel.org/git/pull.1730.v8.git.1718770053.gitgitgadget@gmail.com/",[],"Abrufe mit Bundles"," vollständig mit dem ",[16,278,281],{"href":279,"rel":280},"https://git-scm.com/docs/git-fsck",[],"fsck","-Mechanismus wie reguläre Abrufe überprüft werden konnten.",[12,284,285,286,291,292,297],{},"Bei der Validierung von regelmäßigen Abrufen ist es möglich, ",[16,287,290],{"href":288,"rel":289},"https://git-scm.com/docs/git-fsck#Documentation/git-fsck.txt-fsckltmsg-idgt",[],"verschiedene Schweregrade"," für ",[16,293,296],{"href":294,"rel":295},"https://git-scm.com/docs/git-fsck#_fsck_messages",[],"verschiedene fsck-Probleme"," festzulegen, um feiner steuern zu können, was in einem bestimmten Repository akzeptiert und was abgelehnt wird. Dies war zuvor für Abrufe mit Bundles nicht möglich.",[12,299,300,301,306,307,312],{},"Um den Nutzen und die Sicherheit von ",[16,302,305],{"href":303,"rel":304},"https://git-scm.com/docs/bundle-uri",[],"Bundle-URIs"," weiter zu erhöhen, haben wir ",[16,308,311],{"href":309,"rel":310},"https://lore.kernel.org/git/20241121204119.1440773-1-jltobler@gmail.com/",[],"dieses Problem"," behoben, damit die verschiedenen Schweregrade, die für verschiedene fsck-Probleme festgelegt wurden, jetzt auch bei der Überprüfung von Abrufen mit Bundles verwendet werden können.",[12,314,223,315,227],{},[16,316,319],{"href":317,"rel":318},"https://gitlab.com/justintobler",[],"Justin Tobler",[23,321,323],{"id":322},"referenzkonsistenzprüfungen-hinzufügen","Referenzkonsistenzprüfungen hinzufügen",[12,325,326,327,331,332,337],{},"In unserem Blogbeitrag zur Release von Git 2.47.0 erwähnten wir die Arbeit von Jialuo She an dem [neuen Unterbefehl „Verify“](",[16,328,329],{"href":329,"rel":330},"https://about.gitlab.com/de-de/blog/whats-new-in-git-2-47-0/#new-subcommand-for-git-refs(1)",[]," zu git-refs(1), der Teil des ",[16,333,336],{"href":334,"rel":335},"https://summerofcode.withgoogle.com/archive/2024/projects/ukm4PTEF",[],"Google Summer of Code 2024"," (GSoC 2024) war.",[12,339,340],{},"In diesem Blogbeitrag erläuterten wir, dass das Ziel schlussendlich darin bestand, diesen neuen Unterbefehl als Teil von git-fsck(1) zu integrieren und dadurch eine vereinheitlichte Möglichkeit zu schaffen, Konsistenzüberprüfungen von Repositories durchzuführen. Jialuo She hat beschlossen, daran zu arbeiten, nachdem sein GSoC vorbei war.",[12,342,343,344,349,350,353],{},"Das Ergebnis ",[16,345,348],{"href":346,"rel":347},"https://lore.kernel.org/git/ZrtrT1CPI4YUf5db@ArchLinux/",[],"dieser Arbeit"," ist, dass git-fsck(1) jetzt eine Reihe von referenzbezogenen Problemen erkennen und beheben kann, z. B. wenn der Inhalt einer Referenz schlecht ist, wenn ein symbolischer Link als symbolische Referenz verwendet wird oder wenn das Ziel einer symbolischen Referenz nicht auf eine gültige Referenz verweist. Wir müssen weiterhin ",[101,351,352],{},"git refs verify"," als Teil von git-fsck(1) aufrufen und erstere alle nicht backendspezifischen Überprüfungen durchführen lassen, die letztere derzeit durchführt, aber wir sind unserem Ziel einer vereinheitlichten Möglichkeit, alle Konsistenzüberprüfungen von Refs durchzuführen, ein Stückchen näher gekommen.",[12,355,356],{},"Dieses Projekt wurde von Jialuo She geleitet.",[23,358,360],{"id":359},"iterator-wiederverwendung-in-reftables","Iterator-Wiederverwendung in reftables",[12,362,363,364,369,370,375,376,381],{},"In der Version ",[16,365,368],{"href":366,"rel":367},"https://gitlab.com/gitlab-org/git/-/raw/master/Documentation/RelNotes/2.45.0.txt",[],"Git 2.45.0"," wurde das reftables-Format als neues Backend zum Speichern von Referenzen (meist Branches und Tags) eingeführt. Wenn du mit dem reftables-Backend noch nicht vertraut bist, lies dir unseren letzten ",[16,371,374],{"href":372,"rel":373},"https://about.gitlab.com/de-de/blog/whats-new-in-git-2-45-0/",[],"Blogbeitrag zur Git-Release"," durch, in dem das Feature vorgestellt wurde. Auch unsere Anfängerleitfaden ist toll, um ",[16,377,380],{"href":378,"rel":379},"https://about.gitlab.com/de-de/blog/a-beginners-guide-to-the-git-reftable-format/",[],"mehr darüber zu erfahren, wie reftables funktionieren",".",[12,383,384,385,390],{},"Seit dieser Release haben wir dieses Backend weiter verbessert und uns in letzter Zeit darauf konzentriert, seine Leistung zu verbessern, indem wir beim Lesen zufälliger Referenzen ",[16,386,389],{"href":387,"rel":388},"https://lore.kernel.org/git/cover.1730732881.git.ps@pks.im/",[],"einige interne Iteratoren wiederverwenden",". Vor diesen Änderungen musste beim Lesen einer einzelnen Referenz ein ganz neuer Iterator erstellt, an der richtigen Stelle in den jeweiligen Tabellen gesucht und dann der nächste Wert daraus gelesen werden, was beim Lesen vieler Referenzen in schneller Folge ziemlich ineffizient sein kann. Nach der Änderung erstellen wir jetzt nur noch einen einzigen Iterator und verwenden ihn wieder, um mehrere Referenzen zu lesen, wodurch wir etwas Overhead sparen.",[12,392,393],{},"Dadurch verbessert sich die Leistung in einer Reihe von reftables-bezogenen Anwendungsfällen, so etwa ist das Erstellen vieler Referenzen in einer Transaktion, die viele zufällige Lesevorgänge durchführt, um 7 % schneller. Darüber hinaus schafft dies die Möglichkeit für weitere Optimierungen, da wir weiterhin mehr Zustände in den Iteratoren wiederverwenden können.",[12,395,223,396,227],{},[16,397,64],{"href":62,"rel":398},[],[23,400,402,403],{"id":401},"unterstützung-für-reflogs-in-git-refs-migrate","Unterstützung für reflogs in ",[101,404,405],{},"git-refs migrate",[12,407,408,409,412],{},"Nachdem das reftables-Backend in Git 2.45.0 eingeführt wurde (siehe obigen Abschnitt), haben wir in Git 2.46.0 an Tools zur Migration von Referenz-Backends gearbeitet. Ziel war, einen neuen Unterbefehl ",[101,410,411],{},"migrate"," zu git-refs(1) hinzuzufügen.",[12,414,415,416,421],{},"Im Artikel über Git 2.46.0 ",[16,417,420],{"href":418,"rel":419},"https://about.gitlab.com/de-de/blog/whats-new-in-git-2-46-0/#tooling-to-migrate-reference-backends",[],"ging es um diese Arbeit"," und einige der Einschränkungen, die noch existierten. In dem Artikel heißt es insbesondere:",[12,423,424],{},"„Die reflogs in einem Repository werden auch über das Referenz-Backend gespeichert und würden ebenfalls eine Formatmigration erfordern. Leider ist das Tool noch nicht in der Lage, reflogs zwischen den files- und reftables-Backends zu konvertieren.“",[12,426,427,428,433,434,437],{},"Wir freuen uns, dass wir ",[16,429,432],{"href":430,"rel":431},"https://lore.kernel.org/git/20241216-320-git-refs-migrate-reflogs-v4-0-d7cd3f197453@gmail.com/",[],"diese Einschränkung in Git 2.48.0 behoben haben",".\nReflogs können jetzt auch mit ",[101,435,436],{},"git refs migrate"," migriert werden. Das Migrationstool ist noch nicht in der Lage, ein Repository mit mehreren Arbeitsbäumen zu verwalten, aber dies ist die einzige verbleibende Einschränkung. Wenn du keine Arbeitsbäume verwendest, kannst du das reftables-Backend bereits in deinen vorhandenen Repositories nutzen.",[12,439,223,440,227],{},[16,441,444],{"href":442,"rel":443},"https://gitlab.com/knayakgl",[],"Karthik Nayak",[23,446,448],{"id":447},"optimierung-von-ref-filter","Optimierung von „ref-filter“",[12,450,451,452,455,456,459,460,463],{},"Das Subsystem „ref-filter“ ist ein Formatierungscode, der von Befehlen wie ",[101,453,454],{},"git for-each-ref",", ",[101,457,458],{},"git branch"," und ",[101,461,462],{},"git tag"," verwendet wird, um Informationen zu Git-Referenzen zu sortieren, zu filtern, zu formatieren und anzuzeigen.",[12,465,466],{},"Wenn Repositories wachsen, können sie eine große Anzahl von Referenzen enthalten. Aus diesem Grund arbeiten wir nicht nur daran, Backends zu verbessern, die Referenzen speichern, wie das reftables-Backend (siehe oben), sondern auch den Formatierungscode zu optimieren, wie zum Beispiel das Subsystem „ref-filter“.",[12,468,469,470,475],{},"Wir haben kürzlich ",[16,471,474],{"href":472,"rel":473},"https://lore.kernel.org/git/d23c3e3ee7fdb49fcd05b4f2e52dd2a1cfdc10f2.1729510342.git.ps@pks.im/",[],"einen Weg gefunden",", wie wir vermeiden können, dass Referenzen vorübergehend gepuffert und im ref-Filtercode mehrmals wiederholt werden, wenn sie in der gleichen Sortierreihenfolge verarbeitet werden sollen, wie sie von den Backends bereitgestellt wird. Dies führt zu Speichereinsparungen und macht bestimmte Befehle in einigen Fällen bis zu 770-mal schneller.",[12,477,223,478,227],{},[16,479,64],{"href":62,"rel":480},[],[23,482,484],{"id":483},"weiterlesen","Weiterlesen",[12,486,487,488,493],{},"In diesem Blogbeitrag werden nur einige der Beiträge von GitLab und der ganzen Git-Community für diese neueste Release vorgestellt. Diese kannst du in der offiziellen Versionsankündigung des Git-Projekts nachlesen. Sieh dir auch unsere ",[16,489,492],{"href":490,"rel":491},"https://about.gitlab.com/blog/tags/git/",[],"letzten Blogbeiträge zu Git-Releases"," an, um weitere wichtige Beiträge von GitLab-Teammitgliedern zu entdecken.",[75,495,496,503,510,516],{},[78,497,498],{},[16,499,502],{"href":500,"rel":501},"https://about.gitlab.com/de-de/blog/whats-new-in-git-2-47-0/",[],"Was gibt es Neues in Git 2.47.0?",[78,504,505],{},[16,506,509],{"href":507,"rel":508},"https://about.gitlab.com/de-de/blog/whats-new-in-git-2-46-0/",[],"Was gibt es Neues in Git 2.46.0?",[78,511,512],{},[16,513,515],{"href":372,"rel":514},[],"Was gibt es Neues in Git 2.45.0",[78,517,518],{},[16,519,521],{"href":378,"rel":520},[],"Der Anfängerleitfaden zum „reftables“-Format von Git",[523,524,525],"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":99,"searchDepth":125,"depth":125,"links":527},[528,529,530,531,532,533,535,536],{"id":25,"depth":125,"text":26},{"id":230,"depth":125,"text":231},{"id":254,"depth":125,"text":255},{"id":322,"depth":125,"text":323},{"id":359,"depth":125,"text":360},{"id":401,"depth":125,"text":534},"Unterstützung für reflogs in git-refs migrate",{"id":447,"depth":125,"text":448},{"id":483,"depth":125,"text":484},"open-source","2025-01-10","Erfahre, was dich in der neuesten Version von Git erwartet, darunter ein neues Build-System und eine Optimierung im neuen reftables-Backend. Entdecke Beiträge des Git-Teams von GitLab und der Git-Community.","md",null,true,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663691/Blog/Hero%20Images/AdobeStock_752438815.jpg",{},"/de-de/blog/whats-new-in-git-2-48-0",{"title":5,"description":539,"ogTitle":5,"ogDescription":539,"noIndex":547,"ogImage":543,"ogUrl":548,"ogSiteName":549,"ogType":550,"canonicalUrls":548},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","de-de/blog/whats-new-in-git-2-48-0",[554,555,556],"git","open source","community","BlogPost","2025-01-20","AwqDVA-0ODJWKTS7JYMP5N_PBCK9YMsu1dZPgD8zIKE",{"logo":561,"freeTrial":566,"sales":571,"login":576,"items":581,"search":909,"minimal":943,"duo":961,"switchNav":970,"pricingDeployment":981},{"config":562},{"href":563,"dataGaName":564,"dataGaLocation":565},"/de-de/","gitlab logo","header",{"text":567,"config":568},"Kostenlose Testversion anfordern",{"href":569,"dataGaName":570,"dataGaLocation":565},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de&glm_content=default-saas-trial/","free trial",{"text":572,"config":573},"Demo anfordern",{"href":574,"dataGaName":575,"dataGaLocation":565},"/de-de/sales/?contact-topic=request-demo","sales",{"text":577,"config":578},"Anmelden",{"href":579,"dataGaName":580,"dataGaLocation":565},"https://gitlab.com/users/sign_in/","sign in",[582,611,713,718,831,887],{"text":583,"config":584,"menu":586},"Plattform",{"dataNavLevelOne":585},"platform",{"type":587,"columns":588},"cards",[589,595,603],{"title":583,"description":590,"link":591},"Die intelligente Orchestrierungsplattform für DevSecOps",{"text":592,"config":593},"Die Plattform erkunden",{"href":594,"dataGaName":585,"dataGaLocation":565},"/de-de/platform/",{"title":596,"description":597,"link":598},"GitLab Duo Agent Platform","Agentische KI für den gesamten Software-Lebenszyklus",{"text":599,"config":600},"Lerne GitLab Duo kennen",{"href":601,"dataGaName":602,"dataGaLocation":565},"/de-de/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":604,"description":605,"link":606},"Warum GitLab?","Erfahre, warum sich Unternehmen für GitLab entscheiden",{"text":607,"config":608},"Mehr erfahren",{"href":609,"dataGaName":610,"dataGaLocation":565},"/de-de/why-gitlab/","why gitlab",{"text":612,"left":542,"config":613,"menu":615},"Produkt",{"dataNavLevelOne":614},"solutions",{"type":616,"link":617,"columns":621,"feature":692},"lists",{"text":618,"config":619},"Alle Lösungen anzeigen",{"href":620,"dataGaName":614,"dataGaLocation":565},"/de-de/solutions/",[622,647,670],{"title":623,"description":624,"link":625,"items":630},"Automatisierung","CI/CD und Automatisierung zur Beschleunigung der Bereitstellung",{"config":626},{"icon":627,"href":628,"dataGaName":629,"dataGaLocation":565},"AutomatedCodeAlt","/de-de/solutions/delivery-automation/","automated software delivery",[631,635,638,643],{"text":632,"config":633},"CI/CD",{"href":634,"dataGaLocation":565,"dataGaName":632},"/de-de/solutions/continuous-integration/",{"text":596,"config":636},{"href":601,"dataGaLocation":565,"dataGaName":637},"gitlab duo agent platform - product menu",{"text":639,"config":640},"Quellcodeverwaltung",{"href":641,"dataGaLocation":565,"dataGaName":642},"/de-de/solutions/source-code-management/","Source Code Management",{"text":644,"config":645},"Automatische Softwarebereitstellung",{"href":628,"dataGaLocation":565,"dataGaName":646},"Automated software delivery",{"title":648,"description":649,"link":650,"items":655},"Sicherheit","Entwickle Code schneller ohne Abstriche bei der Sicherheit",{"config":651},{"href":652,"dataGaName":653,"dataGaLocation":565,"icon":654},"/de-de/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[656,660,665],{"text":657,"config":658},"Anwendungssicherheitstests",{"href":652,"dataGaName":659,"dataGaLocation":565},"Application security testing",{"text":661,"config":662},"Schutz der Software-Lieferkette",{"href":663,"dataGaLocation":565,"dataGaName":664},"/de-de/solutions/supply-chain/","Software supply chain security",{"text":666,"config":667},"Software-Compliance",{"href":668,"dataGaName":669,"dataGaLocation":565},"/de-de/solutions/software-compliance/","software compliance",{"title":671,"link":672,"items":677},"Messung",{"config":673},{"icon":674,"href":675,"dataGaName":676,"dataGaLocation":565},"DigitalTransformation","/de-de/solutions/visibility-measurement/","visibility and measurement",[678,682,687],{"text":679,"config":680},"Sichtbarkeit und Messung",{"href":675,"dataGaLocation":565,"dataGaName":681},"Visibility and Measurement",{"text":683,"config":684},"Wertstrommanagement",{"href":685,"dataGaLocation":565,"dataGaName":686},"/de-de/solutions/value-stream-management/","Value Stream Management",{"text":688,"config":689},"Analysen und Einblicke",{"href":690,"dataGaLocation":565,"dataGaName":691},"/de-de/solutions/analytics-and-insights/","Analytics and insights",{"title":693,"type":616,"items":694},"GitLab für",[695,701,707],{"text":696,"config":697},"Enterprise",{"icon":698,"href":699,"dataGaLocation":565,"dataGaName":700},"Building","/de-de/enterprise/","enterprise",{"text":702,"config":703},"Kleinunternehmen",{"icon":704,"href":705,"dataGaLocation":565,"dataGaName":706},"Work","/de-de/small-business/","small business",{"text":708,"config":709},"Öffentlicher Sektor",{"icon":710,"href":711,"dataGaLocation":565,"dataGaName":712},"Organization","/de-de/solutions/public-sector/","public sector",{"text":714,"config":715},"Preise",{"href":716,"dataGaName":717,"dataGaLocation":565,"dataNavLevelOne":717},"/de-de/pricing/","pricing",{"text":719,"config":720,"menu":722},"Ressourcen",{"dataNavLevelOne":721},"resources",{"type":616,"link":723,"columns":727,"feature":820},{"text":724,"config":725},"Alle Ressourcen anzeigen",{"href":726,"dataGaName":721,"dataGaLocation":565},"/de-de/resources/",[728,761,788],{"title":729,"items":730},"Erste Schritte",[731,736,741,746,751,756],{"text":732,"config":733},"Installieren",{"href":734,"dataGaName":735,"dataGaLocation":565},"/de-de/install/","install",{"text":737,"config":738},"Kurzanleitungen",{"href":739,"dataGaName":740,"dataGaLocation":565},"/de-de/get-started/","quick setup checklists",{"text":742,"config":743},"Lernen",{"href":744,"dataGaLocation":565,"dataGaName":745},"https://university.gitlab.com/","learn",{"text":747,"config":748},"Produktdokumentation",{"href":749,"dataGaName":750,"dataGaLocation":565},"https://docs.gitlab.com/","product documentation",{"text":752,"config":753},"Best-Practice-Videos",{"href":754,"dataGaName":755,"dataGaLocation":565},"/de-de/getting-started-videos/","best practice videos",{"text":757,"config":758},"Integrationen",{"href":759,"dataGaName":760,"dataGaLocation":565},"/de-de/integrations/","integrations",{"title":762,"items":763},"Entdecken",[764,769,774,779,783],{"text":765,"config":766},"Kundenerfolge",{"href":767,"dataGaName":768,"dataGaLocation":565},"/de-de/customers/","customer success stories",{"text":770,"config":771},"Blog",{"href":772,"dataGaName":773,"dataGaLocation":565},"/de-de/blog/","blog",{"text":775,"config":776},"Demo-Hub",{"href":777,"dataGaName":778,"dataGaLocation":565},"/de-de/demo-hub/","demo hub",{"text":780,"config":781},"The Source",{"href":782,"dataGaName":773,"dataGaLocation":565},"/de-de/the-source/",{"text":784,"config":785},"Remote",{"href":786,"dataGaName":787,"dataGaLocation":565},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":789,"items":790},"Vernetzen",[791,796,801,805,810,815],{"text":792,"config":793},"GitLab-Services",{"href":794,"dataGaName":795,"dataGaLocation":565},"/de-de/services/","services",{"text":797,"config":798},"Beitragen",{"href":799,"dataGaName":800,"dataGaLocation":565},"https://contributors.gitlab.com","contribute",{"text":802,"config":803},"Community",{"href":804,"dataGaName":556,"dataGaLocation":565},"/community/",{"text":806,"config":807},"Forum",{"href":808,"dataGaName":809,"dataGaLocation":565},"https://forum.gitlab.com/","forum",{"text":811,"config":812},"Veranstaltungen",{"href":813,"dataGaName":814,"dataGaLocation":565},"/events/","events",{"text":816,"config":817},"Partner",{"href":818,"dataGaName":819,"dataGaLocation":565},"/de-de/partners/","partners",{"config":821,"title":824,"text":825,"link":826},{"background":822,"textColor":823},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","Neues bei GitLab","Über die neuesten Funktionen und Verbesserungen auf dem Laufenden bleiben.",{"text":827,"config":828},"Aktuelle Nachrichten",{"href":829,"dataGaName":830,"dataGaLocation":565},"/de-de/whats-new/","whats new",{"text":832,"config":833,"menu":835},"Unternehmen",{"dataNavLevelOne":834},"company",{"type":616,"columns":836},[837],{"items":838},[839,844,850,852,857,862,867,872,877,882],{"text":840,"config":841},"Über",{"href":842,"dataGaName":843,"dataGaLocation":565},"/de-de/company/","about",{"text":845,"config":846,"footerGa":849},"Karriere",{"href":847,"dataGaName":848,"dataGaLocation":565},"/jobs/","jobs",{"dataGaName":848},{"text":811,"config":851},{"href":813,"dataGaName":814,"dataGaLocation":565},{"text":853,"config":854},"Geschäftsführung",{"href":855,"dataGaName":856,"dataGaLocation":565},"/company/team/e-group/","leadership",{"text":858,"config":859},"Handbuch",{"href":860,"dataGaName":861,"dataGaLocation":565},"https://handbook.gitlab.com/","handbook",{"text":863,"config":864},"Investor Relations",{"href":865,"dataGaName":866,"dataGaLocation":565},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":868,"config":869},"Trust Center",{"href":870,"dataGaName":871,"dataGaLocation":565},"/de-de/security/","trust center",{"text":873,"config":874},"AI Transparency Center",{"href":875,"dataGaName":876,"dataGaLocation":565},"/de-de/ai-transparency-center/","ai transparency center",{"text":878,"config":879},"Newsletter",{"href":880,"dataGaName":881,"dataGaLocation":565},"/company/contact/#contact-forms","newsletter",{"text":883,"config":884},"Presse",{"href":885,"dataGaName":886,"dataGaLocation":565},"/press/","press",{"text":888,"config":889,"menu":890},"Kontakt",{"dataNavLevelOne":834},{"type":616,"columns":891},[892],{"items":893},[894,899,904],{"text":895,"config":896},"Vertrieb kontaktieren",{"href":897,"dataGaName":898,"dataGaLocation":565},"/de-de/sales/","talk to sales",{"text":900,"config":901},"Support-Portal",{"href":902,"dataGaName":903,"dataGaLocation":565},"https://support.gitlab.com/hc/en-us","support portal",{"text":905,"config":906},"Kundenportal",{"href":907,"dataGaName":908,"dataGaLocation":565},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":910,"login":911,"suggestions":918},"Schließen",{"text":912,"link":913},"Um Repositorys und Projekte zu durchsuchen, melde dich an bei",{"text":914,"config":915},"gitlab.com",{"href":579,"dataGaName":916,"dataGaLocation":917},"search login","search",{"text":919,"default":920},"Vorschläge",[921,923,928,930,935,940],{"text":596,"config":922},{"href":601,"dataGaName":596,"dataGaLocation":917},{"text":924,"config":925},"Codevorschläge (KI)",{"href":926,"dataGaName":927,"dataGaLocation":917},"/de-de/solutions/code-suggestions/","Code Suggestions (AI)",{"text":632,"config":929},{"href":634,"dataGaName":632,"dataGaLocation":917},{"text":931,"config":932},"GitLab auf AWS",{"href":933,"dataGaName":934,"dataGaLocation":917},"/de-de/partners/technology-partners/aws/","GitLab on AWS",{"text":936,"config":937},"GitLab auf Google Cloud",{"href":938,"dataGaName":939,"dataGaLocation":917},"/de-de/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":604,"config":941},{"href":609,"dataGaName":942,"dataGaLocation":917},"Why GitLab?",{"freeTrial":944,"mobileIcon":949,"desktopIcon":954,"secondaryButton":957},{"text":945,"config":946},"Kostenlos testen",{"href":947,"dataGaName":570,"dataGaLocation":948},"https://gitlab.com/-/trials/new/","nav",{"altText":950,"config":951},"GitLab-Symbol",{"src":952,"dataGaName":953,"dataGaLocation":948},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":950,"config":955},{"src":956,"dataGaName":953,"dataGaLocation":948},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":729,"config":958},{"href":959,"dataGaName":960,"dataGaLocation":948},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de/get-started/","get started",{"freeTrial":962,"mobileIcon":966,"desktopIcon":968},{"text":963,"config":964},"Mehr über GitLab Duo erfahren",{"href":601,"dataGaName":965,"dataGaLocation":948},"gitlab duo",{"altText":950,"config":967},{"src":952,"dataGaName":953,"dataGaLocation":948},{"altText":950,"config":969},{"src":956,"dataGaName":953,"dataGaLocation":948},{"button":971,"mobileIcon":976,"desktopIcon":978},{"text":972,"config":973},"/Option",{"href":974,"dataGaName":975,"dataGaLocation":948},"#contact","switch",{"altText":950,"config":977},{"src":952,"dataGaName":953,"dataGaLocation":948},{"altText":950,"config":979},{"src":980,"dataGaName":953,"dataGaLocation":948},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":982,"mobileIcon":987,"desktopIcon":989},{"text":983,"config":984},"Zurück zur Preisübersicht",{"href":716,"dataGaName":985,"dataGaLocation":948,"icon":986},"back to pricing","GoBack",{"altText":950,"config":988},{"src":952,"dataGaName":953,"dataGaLocation":948},{"altText":950,"config":990},{"src":956,"dataGaName":953,"dataGaLocation":948},{"title":992,"button":993,"config":997},"GitLab Orbit ist da: die Kontextebene für KI-Agenten",{"text":607,"config":994},{"href":995,"dataGaName":996,"dataGaLocation":565},"/de-de/gitlab-orbit/","orbit",{"layout":998,"disabled":547},"release",{"data":1000},{"text":1001,"source":1002,"edit":1008,"contribute":1013,"config":1018,"items":1023,"minimal":1229},"Git ist eine Marke von Software Freedom Conservancy und unsere Verwendung von „GitLab“ erfolgt unter Lizenz.",{"text":1003,"config":1004},"Quelltext der Seite anzeigen",{"href":1005,"dataGaName":1006,"dataGaLocation":1007},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":1009,"config":1010},"Diese Seite bearbeiten",{"href":1011,"dataGaName":1012,"dataGaLocation":1007},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":1014,"config":1015},"Beteilige dich",{"href":1016,"dataGaName":1017,"dataGaLocation":1007},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":1019,"facebook":1020,"youtube":1021,"linkedin":1022},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[1024,1069,1122,1164,1196],{"title":714,"links":1025,"subMenu":1040},[1026,1030,1035],{"text":1027,"config":1028},"Tarife anzeigen",{"href":716,"dataGaName":1029,"dataGaLocation":1007},"view plans",{"text":1031,"config":1032},"Vorteile von Premium",{"href":1033,"dataGaName":1034,"dataGaLocation":1007},"/de-de/pricing/premium/","why premium",{"text":1036,"config":1037},"Vorteile von Ultimate",{"href":1038,"dataGaName":1039,"dataGaLocation":1007},"/de-de/pricing/ultimate/","why ultimate",[1041],{"title":888,"links":1042},[1043,1045,1047,1049,1054,1059,1064],{"text":895,"config":1044},{"href":897,"dataGaName":575,"dataGaLocation":1007},{"text":900,"config":1046},{"href":902,"dataGaName":903,"dataGaLocation":1007},{"text":905,"config":1048},{"href":907,"dataGaName":908,"dataGaLocation":1007},{"text":1050,"config":1051},"Status",{"href":1052,"dataGaName":1053,"dataGaLocation":1007},"https://status.gitlab.com/","status",{"text":1055,"config":1056},"Nutzungsbedingungen",{"href":1057,"dataGaName":1058,"dataGaLocation":1007},"/terms/","terms of use",{"text":1060,"config":1061},"Datenschutzerklärung",{"href":1062,"dataGaName":1063,"dataGaLocation":1007},"/de-de/privacy/","privacy statement",{"text":1065,"config":1066},"Cookie-Einstellungen",{"dataGaName":1067,"dataGaLocation":1007,"id":1068,"isOneTrustButton":542},"cookie preferences","ot-sdk-btn",{"title":612,"links":1070,"subMenu":1079},[1071,1075],{"text":1072,"config":1073},"DevSecOps-Plattform",{"href":594,"dataGaName":1074,"dataGaLocation":1007},"devsecops platform",{"text":1076,"config":1077},"KI-unterstützte Entwicklung",{"href":601,"dataGaName":1078,"dataGaLocation":1007},"ai-assisted development",[1080],{"title":1081,"links":1082},"Themen",[1083,1087,1092,1097,1102,1107,1112,1117],{"text":632,"config":1084},{"href":1085,"dataGaName":1086,"dataGaLocation":1007},"/de-de/topics/ci-cd/","cicd",{"text":1088,"config":1089},"GitOps",{"href":1090,"dataGaName":1091,"dataGaLocation":1007},"/de-de/topics/gitops/","gitops",{"text":1093,"config":1094},"DevOps",{"href":1095,"dataGaName":1096,"dataGaLocation":1007},"/de-de/topics/devops/","devops",{"text":1098,"config":1099},"Versionskontrolle",{"href":1100,"dataGaName":1101,"dataGaLocation":1007},"/de-de/topics/version-control/","version control",{"text":1103,"config":1104},"DevSecOps",{"href":1105,"dataGaName":1106,"dataGaLocation":1007},"/de-de/topics/devsecops/","devsecops",{"text":1108,"config":1109},"Cloud-nativ",{"href":1110,"dataGaName":1111,"dataGaLocation":1007},"/de-de/topics/cloud-native/","cloud native",{"text":1113,"config":1114},"KI für das Programmieren",{"href":1115,"dataGaName":1116,"dataGaLocation":1007},"/de-de/topics/devops/ai-for-coding/","ai for coding",{"text":1118,"config":1119},"Agentische KI",{"href":1120,"dataGaName":1121,"dataGaLocation":1007},"/de-de/topics/agentic-ai/","agentic ai",{"title":1123,"links":1124},"Lösungen",[1125,1128,1130,1135,1139,1142,1145,1148,1150,1152,1154,1159],{"text":657,"config":1126},{"href":652,"dataGaName":1127,"dataGaLocation":1007},"Application Security Testing",{"text":644,"config":1129},{"href":628,"dataGaName":629,"dataGaLocation":1007},{"text":1131,"config":1132},"Agile Entwicklung",{"href":1133,"dataGaName":1134,"dataGaLocation":1007},"/de-de/solutions/agile-delivery/","agile delivery",{"text":1136,"config":1137},"SCM",{"href":641,"dataGaName":1138,"dataGaLocation":1007},"source code management",{"text":632,"config":1140},{"href":634,"dataGaName":1141,"dataGaLocation":1007},"continuous integration & delivery",{"text":683,"config":1143},{"href":685,"dataGaName":1144,"dataGaLocation":1007},"value stream management",{"text":1088,"config":1146},{"href":1147,"dataGaName":1091,"dataGaLocation":1007},"/de-de/solutions/gitops/",{"text":696,"config":1149},{"href":699,"dataGaName":700,"dataGaLocation":1007},{"text":702,"config":1151},{"href":705,"dataGaName":706,"dataGaLocation":1007},{"text":708,"config":1153},{"href":711,"dataGaName":712,"dataGaLocation":1007},{"text":1155,"config":1156},"Bildungswesen",{"href":1157,"dataGaName":1158,"dataGaLocation":1007},"/de-de/solutions/education/","education",{"text":1160,"config":1161},"Finanzdienstleistungen",{"href":1162,"dataGaName":1163,"dataGaLocation":1007},"/de-de/solutions/finance/","financial services",{"title":719,"links":1165},[1166,1168,1170,1172,1175,1177,1180,1182,1184,1186,1188,1190,1192,1194],{"text":732,"config":1167},{"href":734,"dataGaName":735,"dataGaLocation":1007},{"text":737,"config":1169},{"href":739,"dataGaName":740,"dataGaLocation":1007},{"text":742,"config":1171},{"href":744,"dataGaName":745,"dataGaLocation":1007},{"text":747,"config":1173},{"href":749,"dataGaName":1174,"dataGaLocation":1007},"docs",{"text":770,"config":1176},{"href":772,"dataGaName":773,"dataGaLocation":1007},{"text":1178,"config":1179},"Neuerungen",{"href":829,"dataGaName":830,"dataGaLocation":1007},{"text":765,"config":1181},{"href":767,"dataGaName":768,"dataGaLocation":1007},{"text":784,"config":1183},{"href":786,"dataGaName":787,"dataGaLocation":1007},{"text":792,"config":1185},{"href":794,"dataGaName":795,"dataGaLocation":1007},{"text":797,"config":1187},{"href":799,"dataGaName":800,"dataGaLocation":1007},{"text":802,"config":1189},{"href":804,"dataGaName":556,"dataGaLocation":1007},{"text":806,"config":1191},{"href":808,"dataGaName":809,"dataGaLocation":1007},{"text":811,"config":1193},{"href":813,"dataGaName":814,"dataGaLocation":1007},{"text":816,"config":1195},{"href":818,"dataGaName":819,"dataGaLocation":1007},{"title":832,"links":1197},[1198,1200,1202,1204,1206,1208,1213,1218,1220,1222,1224],{"text":840,"config":1199},{"href":842,"dataGaName":834,"dataGaLocation":1007},{"text":845,"config":1201},{"href":847,"dataGaName":848,"dataGaLocation":1007},{"text":853,"config":1203},{"href":855,"dataGaName":856,"dataGaLocation":1007},{"text":858,"config":1205},{"href":860,"dataGaName":861,"dataGaLocation":1007},{"text":863,"config":1207},{"href":865,"dataGaName":866,"dataGaLocation":1007},{"text":1209,"config":1210},"Nachhaltigkeit",{"href":1211,"dataGaName":1212,"dataGaLocation":1007},"/sustainability/","Sustainability",{"text":1214,"config":1215},"Vielfalt, Inklusion und Zugehörigkeit",{"href":1216,"dataGaName":1217,"dataGaLocation":1007},"/de-de/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":868,"config":1219},{"href":870,"dataGaName":871,"dataGaLocation":1007},{"text":878,"config":1221},{"href":880,"dataGaName":881,"dataGaLocation":1007},{"text":883,"config":1223},{"href":885,"dataGaName":886,"dataGaLocation":1007},{"text":1225,"config":1226},"Transparenzerklärung zu moderner Sklaverei",{"href":1227,"dataGaName":1228,"dataGaLocation":1007},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1230},[1231,1234,1237],{"text":1232,"config":1233},"Terms",{"href":1057,"dataGaName":1058,"dataGaLocation":1007},{"text":1235,"config":1236},"Cookies",{"dataGaName":1067,"dataGaLocation":1007,"id":1068,"isOneTrustButton":542},{"text":1238,"config":1239},"Datenschutz",{"href":1062,"dataGaName":1063,"dataGaLocation":1007},[1241],{"id":1242,"title":7,"body":541,"config":1243,"content":1245,"description":541,"extension":1249,"meta":1250,"navigation":542,"path":1251,"seo":1252,"stem":1253,"__hash__":1254},"blogAuthors/en-us/blog/authors/christian-couder.yml",{"template":1244},"BlogAuthor",{"name":7,"config":1246},{"headshot":1247,"ctfId":1248},"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",[1256,1264,1272],{"title":1257,"description":1258,"heroImage":1259,"category":537,"date":1260,"authors":1261,"slug":1263,"externalUrl":541},"Was ist neu in Git 2.55.0?","Neue Funktionen in Git 2.55: git-history(1) fixup, fsmonitor-Daemon für Linux, Push zu Remote-Gruppen und mehr.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782732487/ztwgrvlolpifo01vj8qc.png","2026-06-29",[1262],"Toon Claes","whats-new-in-git-2-55-0",{"title":1265,"description":1266,"heroImage":1267,"category":537,"date":1268,"authors":1269,"slug":1271,"externalUrl":541},"GitLab AI Hackathon 2026: Hier sind die Gewinner und ihre Projekte","Fast 7.000 Entwickler(innen) haben über 600 KI-Agenten und Flows auf GitLab Duo Agent Platform gebaut. Erfahre, wer gewonnen hat und was sie entwickelt haben.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1776457632/llddiylsgwuze0u1rjks.png","2026-04-22",[1270],"Nick Veenhof","gitlab-ai-hackathon-2026-meet-the-winners",{"title":1273,"description":1274,"heroImage":1275,"category":537,"date":1276,"authors":1277,"slug":1278,"externalUrl":541},"Was ist neu in Git 2.54.0?","Erfahre mehr über die Beiträge zu diesem Release, darunter neue Repository-Wartung, ein neuer Befehl zur Bearbeitung der Commit-Historie, ein Ersatz für git-sizer(1) und mehr.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1776711651/sj7xxyyuimlarswbyft5.png","2026-04-20",[64],"whats-new-in-git-2-54-0",{"promotions":1280},[1281,1295,1307,1319],{"id":1282,"categories":1283,"header":1285,"text":1286,"button":1287,"image":1292},"ai-modernization",[1284],"ai","Hält KI, was uns versprochen wurde?","Das Quiz dauert maximal 5 Minuten.",{"text":1288,"config":1289},"Ermittle deinen KI-Reifegrad",{"href":1290,"dataGaName":1291,"dataGaLocation":773},"/de-de/assessments/ai-modernization-assessment/","modernization assessment",{"config":1293},{"src":1294},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1296,"categories":1297,"header":1299,"text":1286,"button":1300,"image":1304},"devops-modernization",[1298,1106],"product","Verwaltest du Tool-Chaos oder stellst du Innovationen bereit?",{"text":1301,"config":1302},"Ermittle deinen DevOps-Reifegrad",{"href":1303,"dataGaName":1291,"dataGaLocation":773},"/de-de/assessments/devops-modernization-assessment/",{"config":1305},{"src":1306},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1308,"categories":1309,"header":1311,"text":1286,"button":1312,"image":1316},"security-modernization",[1310],"security","Tauschst du Schnelligkeit gegen Sicherheit ein?",{"text":1313,"config":1314},"Ermittle deinen Sicherheitsreifegrad",{"href":1315,"dataGaName":1291,"dataGaLocation":773},"/de-de/assessments/security-modernization-assessment/",{"config":1317},{"src":1318},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1320,"paths":1321,"header":1324,"text":1325,"button":1326,"image":1331},"github-azure-migration",[1322,1323],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","Ist dein Team bereit für den Umzug von GitHub nach Azure?","GitHub stellt bereits auf Azure um. Finde heraus, was das für dich bedeutet.",{"text":1327,"config":1328},"Erfahre, wie GitLab im Vergleich zu GitHub abschneidet",{"href":1329,"dataGaName":1330,"dataGaLocation":773},"/de-de/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1332},{"src":1306},{"header":1334,"blurb":1335,"button":1336,"secondaryButton":1341},"Beginne noch heute, schneller zu entwickeln","Entdecke, was dein Team mit der intelligenten Orchestrierungsplattform für DevSecOps erreichen kann.\n",{"text":1337,"config":1338},"Kostenlosen Test starten",{"href":1339,"dataGaName":570,"dataGaLocation":1340},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/de-de/","feature",{"text":895,"config":1342},{"href":897,"dataGaName":575,"dataGaLocation":1340},1786803757236]