[{"data":1,"prerenderedAt":703},["ShallowReactive",2],{"/de-de/blog/what-s-new-in-git-2-51-0/":3,"navigation-de-de":34,"banner-de-de":453,"footer-de-de":466,"Karthik Nayak":675,"next-steps-de-de":688},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"seo":8,"content":13,"config":24,"_id":27,"_type":28,"title":29,"_source":30,"_file":31,"_stem":32,"_extension":33},"/de-de/blog/what-s-new-in-git-2-51-0","blog",false,"",{"config":9,"ogImage":10,"title":11,"description":12},{"noIndex":6},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663087/Blog/Hero%20Images/git3-cover.png","Was ist neu in Git 2.51.0?","Erfahren Sie mehr über die neuesten Beiträge von GitLabs Git-Team und der Git-Community, einschließlich Performance-Optimierungen für git-push(1) und git-fetch(1), die besonders für deutsche Entwicklungsteams relevant sind.",{"title":11,"description":12,"authors":14,"heroImage":10,"date":16,"body":17,"category":18,"tags":19},[15],"Karthik Nayak","2025-08-18","Das Git-Projekt hat kürzlich [Git 2.51](https://lore.kernel.org/git/xmqqikikk1hr.fsf@gitster.g/T/#u) veröffentlicht. Aufgrund des Sommers auf der Nordhalbkugel und langsamerer Fortschritte war dieser Release-Zyklus mit 8 Wochen eher kurz (normalerweise dauert ein Release-Zyklus etwa 12 Wochen). \n\n**Die wichtigste Neuerung: Git-Operationen werden bis zu 22-mal schneller** - besonders bei großen Repositories mit vielen Branches profitieren Entwicklungsteams von erheblichen Performance-Verbesserungen.\n\nSchauen wir uns diese und andere bemerkenswerte Änderungen in diesem Release an, einschließlich Beiträgen vom Git-Team bei GitLab und der breiteren Git-Community.\n\n## Massive Performance-Verbesserungen: Von Sekunden zu Millisekunden\n\nGroße Repositories mit tausenden von Branches standen vor einem schmerzhaften Engpass. Git-Operationen, die Referenzen aktualisieren, konnten mehrere Sekunden dauern - ein echter Produktivitätskiller für Teams mit umfangreichen CI/CD-Pipelines oder Monorepo-Workflows.\n\n**Git 2.51.0 ändert alles. Eine 10.000-Referenzen-Fetch-Operation, die 3,4 Sekunden dauerte, wird jetzt in 154 Millisekunden abgeschlossen:**\n\n```\nVORHER: git-fetch mit 10.000 Referenzen\nTime: 3.403 s ± 0.775 s\n\nNACHHER: git-fetch mit 10.000 Referenzen  \nTime: 154.3 ms ± 17.6 ms\n\nERGEBNIS: 22× schneller\n```\n\n**Ähnlich dramatische Verbesserungen bei git-push:**\n\n```\nVORHER: git-push mit 10.000 Referenzen\nTime: 4.276 s ± 0.078 s\n\nNACHHER: git-push mit 10.000 Referenzen\nTime: 235.4 ms ± 6.9 ms\n\nERGEBNIS: 18× schneller\n```\n\n### Wie wurde das erreicht?\n\nDas Problem lag in der Art, wie Git Referenz-Transaktionen behandelte. Die Kommandos git-push(1) und git-fetch(1) erstellten eine separate Transaktion für jedes Referenz-Update, was enormen Overhead verursachte - jede Transaktion benötigte eine Initialisierungs- und Abbauphase und löste Auto-Komprimierungen aus.\n\nGit 2.51.0 verwendet nun **gebündelte Updates**: Mehrere Referenzen werden in einer einzigen Transaktion aktualisiert, während einzelne Updates weiterhin fehlschlagen dürfen. Dies eliminiert den Overhead und skaliert linear mit der Anzahl der Referenzen.\n\nDas Beste daran? Benutzer profitieren automatisch von diesen Verbesserungen, ohne Änderungen an ihrem Workflow vornehmen zu müssen.\n\nDieses [Projekt](https://lore.kernel.org/git/20250514-501-update-git-fetch-1-to-use-partial-transactions-v1-0-7c65f46493d4@gmail.com/) wurde von [Karthik Nayak](https://gitlab.com/knayakgl) geleitet.\n\n## Änderungen in Richtung Git 3.0\n\nVor 11 Jahren wurde Git 2.0 veröffentlicht, die letzte große Versionsfreigabe von Git. Obwohl wir keinen spezifischen Zeitplan für die nächste große Git-Veröffentlichung haben, enthält dieses Release Entscheidungen, die in Richtung Git 3.0 getroffen wurden.\n\nDie Git 3.0-Release-Planung ermöglicht es uns, Breaking Changes zu planen und zu implementieren und diese der erweiterten Git-Community zu kommunizieren. Neben der Dokumentation kann Git auch mit diesen Breaking Changes kompiliert werden für diejenigen, die mit diesen Änderungen experimentieren möchten. Weitere Informationen finden Sie im [BreakingChanges-Dokument](https://gitlab.com/gitlab-org/git/-/blob/master/Documentation/BreakingChanges.adoc).\n\nDas Git 2.51.0-Release bringt einige bedeutende Änderungen in Richtung Git 3.0.\n\n### \"reftable\" wird Standard in Git 3.0\n\nIm [Git 2.45.0](https://gitlab.com/gitlab-org/git/-/blob/master/Documentation/RelNotes/2.45.0.adoc?ref_type=heads)-Release wurde das \"reftable\"-Format als neues Backend zur Speicherung von Referenzen wie Branches oder Tags in Git eingeführt, das viele der Probleme des bestehenden \"files\"-Backends behebt. Lesen Sie unseren [Einsteiger-Leitfaden zur Funktionsweise von reftables](https://about.gitlab.com/blog/a-beginners-guide-to-the-git-reftable-format/) für weitere Einblicke in das \"reftable\"-Backend.\n\nDas Git 2.51.0-Release markiert den Wechsel zur Verwendung des \"reftable\"-Formats als Standard in Git 3.0 für neu erstellte Repositories und verdrahtet die Änderung hinter einem Feature-Flag. Das \"reftable\"-Format bietet folgende Verbesserungen gegenüber dem traditionellen \"files\"-Backend:\n\n* Es ist unmöglich, zwei Referenzen zu speichern, die sich nur in der Groß-/Kleinschreibung unterscheiden, auf case-insensitiven Dateisystemen mit dem \"files\"-Format. Dieses Problem ist häufig auf Windows- und macOS-Plattformen. Da das \"reftable\"-Backend keine Dateisystem-Pfade zur Kodierung von Referenznamen verwendet, verschwindet dieses Problem.\n\n* Ebenso normalisiert macOS Pfadnamen, die Unicode-Zeichen enthalten, was zur Folge hat, dass Sie nicht zwei Namen mit Unicode-Zeichen speichern können, die unterschiedlich kodiert sind, mit dem \"files\"-Backend. Auch dies ist kein Problem mit dem \"reftable\"-Backend.\n\n* Das Löschen von Referenzen mit dem \"files\"-Backend erfordert, dass Git die komplette \"packed-refs\"-Datei neu schreibt. In großen Repositories mit vielen Referenzen kann diese Datei leicht dutzende Megabytes groß sein; in extremen Fällen kann sie Gigabytes umfassen. Das \"reftable\"-Backend verwendet Tombstone-Marker für gelöschte Referenzen und muss daher nicht alle seine Daten neu schreiben.\n\n* Repository-Hauskeeping mit dem \"files\"-Backend führt normalerweise All-into-One-Repacks von Referenzen durch. Dies kann sehr teuer sein, und folglich ist Housekeeping ein Kompromiss zwischen der Anzahl loser Referenzen, die sich ansammeln und Operationen verlangsamen, die Referenzen lesen, und der Komprimierung dieser losen Referenzen in die \"packed-refs\"-Datei. Das \"reftable\"-Backend verwendet geometrische Komprimierung nach jedem Schreibvorgang, was Kosten amortisiert und sicherstellt, dass das Backend immer in einem gut gewarteten Zustand ist.\n\n* Operationen, die mehrere Referenzen auf einmal schreiben, sind nicht atomisch mit dem \"files\"-Backend. Folglich kann Git Zwischenzustände sehen, wenn es Referenzen liest, während eine Referenz-Transaktion gerade auf die Festplatte committed wird.\n\n* Das Schreiben vieler Referenzen auf einmal ist langsam mit dem \"files\"-Backend, weil jede Referenz als separate Datei erstellt wird. Das \"reftable\"-Backend übertrifft das \"files\"-Backend um mehrere Größenordnungen.\n\n* Das \"reftable\"-Backend verwendet ein Binärformat mit Präfix-Komprimierung für Referenznamen. Als Resultat nutzt das Format weniger Platz im Vergleich zur \"packed-refs\"-Datei.\n\nDieses Projekt wurde von [Patrick Steinhardt](https://gitlab.com/pks-gitlab) geleitet.\n\n### SHA-256 wird Standard in Git 3.0\n\nDas Git-Versionskontrollsystem speichert Objekte in einem inhaltsadressierbaren Dateisystem. Das bedeutet, es verwendet den Hash eines Objekts zur Adressierung von Inhalten wie Dateien, Verzeichnissen und Revisionen, anders als traditionelle Dateisysteme, die sequenzielle Nummern verwenden. Die Verwendung einer Hash-Funktion hat folgende Vorteile:\n\n* Einfache Integritätsprüfungen, da ein einzelner Bit-Flip die Hash-Ausgabe komplett verändern würde.\n* Schnelle Objektsuche, da Objekte nach ihrem Hash indexiert werden können.\n* Objektnamen können signiert werden und Drittparteien können dem Hash vertrauen, um das signierte Objekt und alle Objekte, auf die es verweist, zu adressieren.\n* Kommunikation über Git-Protokoll und Out-of-Band-Kommunikationsmethoden haben einen kurzen zuverlässigen String, der zur zuverlässigen Adressierung gespeicherter Inhalte verwendet werden kann.\n\nSeit seiner Entstehung hat Git den SHA-1-Hashing-Algorithmus verwendet. Sicherheitsforscher haben jedoch einige Schwachstellen in SHA-1 entdeckt, speziell den [SHAttered-Angriff](https://shattered.io), der eine praktische SHA-1-Hash-Kollision zeigt. Wir sind seit Git 2.13.0 standardmäßig zu einer gehärteten SHA-1-Implementierung übergegangen. SHA-1 ist jedoch immer noch ein schwacher Hashing-Algorithmus und es ist nur eine Frage der Zeit, bis zusätzliche Angriffe seine Sicherheit weiter reduzieren werden.\n\nSHA-256 wurde Ende 2018 als Nachfolger von SHA-1 identifiziert. Git 2.51.0 markiert es als Standard-Hash-Algorithmus für Git 3.0.\n\nDieses Projekt wurde von [brian m. carlson](https://github.com/bk2204) geleitet.\n\n### Entfernung von git-whatchanged(1)\n\nDer git-whatchanged(1)-Befehl zeigt Logs mit Unterschieden, die jeder Commit einführt. Obwohl dies nun von git log --raw abgelöst wurde, wurde der Befehl aus historischen Gründen beibehalten.\n\nGit 2.51.0 erfordert, dass Benutzer des Befehls explizit das --i-still-use-this-Flag verwenden, um alle Benutzer zu erfassen, die noch den veralteten Befehl verwenden, und markiert den Befehl auch für die Entfernung in Git 3.0.\n\nDieses Projekt wurde von [Junio C Hamano](https://simple.wikipedia.org/wiki/Junio_Hamano) geleitet.\n\n## git switch und git restore sind nicht mehr experimentell\n\nDer git-checkout(1)-Befehl kann für mehrere verschiedene Anwendungsfälle verwendet werden. Er kann zum Wechseln von Referenzen verwendet werden:\n\n```\n$ git status\nAuf Zweig master\nIhr Branch ist auf dem neuesten Stand mit 'origin/master'.\nNichts zu committen, Arbeitsverzeichnis unverändert\n\n$ git checkout next\nZu Branch 'next' gewechselt\nIhr Branch ist auf dem neuesten Stand mit 'origin/next'.\n```\n\nOder zur Wiederherstellung von Dateien:\n\n```\n$ echo \"additional line\" >> git.c\n\n$ git status\nAuf Zweig master\nIhr Branch ist auf dem neuesten Stand mit 'origin/master'.\n\nÄnderungen, die nicht zum Commit vorgemerkt sind:\n  (benutzen Sie \"git add \u003CDatei>...\", um die Änderungen zum Commit vorzumerken)\n  (benutzen Sie \"git restore \u003CDatei>...\", um die Änderungen im Arbeitsverzeichnis zu verwerfen)\n        geändert:       git.c\n\nkeine Änderungen zum Commit vorgemerkt (benutzen Sie \"git add\" und/oder \"git commit -a\")\n\n$ git checkout git.c\n1 Pfad von Index aktualisiert\n\n$ git status\nAuf Zweig master\nIhr Branch ist auf dem neuesten Stand mit 'origin/master'.\nNichts zu committen, Arbeitsverzeichnis unverändert\n```\n\nFür neue Git-Benutzer kann dies zu viel Verwirrung führen. In Git 2.33.0 wurden diese in zwei neue Befehle aufgeteilt: git-switch(1) und git-restore(1).\n\nDer git-switch(1)-Befehl ermöglicht es Benutzern, zu einem bestimmten Branch zu wechseln:\n\n```\n$ git status\nAuf Zweig master\nIhr Branch ist auf dem neuesten Stand mit 'origin/master'.\nNichts zu committen, Arbeitsverzeichnis unverändert\n\n$ git switch next\nZu Branch 'next' gewechselt\nIhr Branch ist auf dem neuesten Stand mit 'origin/next'.\n```\n\nUnd der git-restore(1)-Befehl ermöglicht es Benutzern, Working-Tree-Dateien wiederherzustellen:\n\n```\n$ echo \"additional line\" >> git.c\n\n$ git status\nAuf Zweig master\nIhr Branch ist auf dem neuesten Stand mit 'origin/master'.\n\nÄnderungen, die nicht zum Commit vorgemerkt sind:\n  (benutzen Sie \"git add \u003CDatei>...\", um die Änderungen zum Commit vorzumerken)\n  (benutzen Sie \"git restore \u003CDatei>...\", um die Änderungen im Arbeitsverzeichnis zu verwerfen)\n        geändert:       git.c\n\nkeine Änderungen zum Commit vorgemerkt (benutzen Sie \"git add\" und/oder \"git commit -a\")\n\n$ git restore git.c\n\n$ git status\nAuf Zweig master\nIhr Branch ist auf dem neuesten Stand mit 'origin/master'.\nNichts zu committen, Arbeitsverzeichnis unverändert\n```\n\nObwohl die beiden Befehle seit 2019 existieren, wurden sie als experimentell markiert. Der Effekt ist, dass das Git-Projekt keine Rückwärtskompatibilität für diese Befehle garantiert: das Verhalten kann sich jederzeit ändern. Obwohl die Absicht ursprünglich war, diese Befehle nach einigen Releases zu stabilisieren, ist das bis zu diesem Punkt nicht geschehen.\n\nDies hat zu mehreren Diskussionen auf der Git-Mailing-Liste geführt, wo Benutzer unsicher sind, ob sie diese neuen Befehle verwenden können oder ob sie eventuell wieder verschwinden. Da jedoch keine bedeutenden Änderungen vorgeschlagen wurden und einige Benutzer diese Befehle bereits verwenden, haben wir beschlossen, sie in Git 2.51 nicht mehr als experimentell zu deklarieren.\n\nDieses Projekt wurde von [Justin Tobler](https://gitlab.com/justintobler) geleitet.\n\n## git for-each-ref(1) erhält Paginierungs-Unterstützung\n\nDer git for-each-ref-Befehl wird verwendet, um alle im Repository vorhandenen Referenzen aufzulisten. Als Teil der Plumbing-Schicht von Git wird dieser Befehl häufig beispielsweise von Hosting-Forges verwendet, um Referenzen, die im Repository existieren, in ihrer UI aufzulisten. Aber während Repositories wachsen, wird es weniger realistisch, alle Referenzen auf einmal aufzulisten – schließlich können die größten Repositories Millionen davon enthalten! Stattdessen neigen Forges dazu, die Referenzen zu paginieren.\n\nDies zeigt eine wichtige Lücke auf: git-for-each-ref weiß nicht, Referenzen von vorherigen Seiten zu überspringen, die bereits gezeigt wurden. Folglich muss es möglicherweise eine große Anzahl uninteressanter Referenzen auflisten, bevor es endlich beginnt, die für die aktuelle Seite benötigten Referenzen zu liefern. Dies ist ineffizient und führt zu höherer als notwendiger Latenz oder sogar Timeouts.\n\nGit 2.51.0 unterstützt ein neues --start-after-Flag für git for-each-ref, das die Paginierung der Ausgabe ermöglicht. Dies kann auch mit dem --count-Flag kombiniert werden, um über einen Batch von Referenzen zu iterieren.\n\n```\n$ git for-each-ref --count=10\n9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-001\n9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-002\n9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-003\n9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-004\n9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-005\n9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-006\n9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-007\n9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-008\n9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-009\n9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-010\n\n$ git for-each-ref --count=10 --start-after=refs/heads/branch-010\n9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-011\n9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-012\n9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-013\n9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-014\n9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-015\n9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-016\n9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-017\n9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-018\n9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-019\n9751243fba48b34d29aabfc9784803617a806e81 commit    refs/heads/branch-020\n```\n\nDieses Projekt wurde von [Karthik Nayak](https://gitlab.com/knayakgl) geleitet.\n\n## Fazit\n\n**Diese Performance-Verbesserungen sind besonders relevant für deutsche Entwicklungsteams, die mit großen Repositories und intensiven CI/CD-Workflows arbeiten.** Die 22-fache Beschleunigung bei git-fetch kann erhebliche Zeitersparnisse in der täglichen Entwicklungsarbeit bedeuten.\n\nBereit, diese Verbeszerungen zu erleben? Aktualisieren Sie auf Git 2.51.0 und beginnen Sie, git switch und git restore in Ihrem täglichen Workflow zu verwenden.\n\nFür GitLab-Benutzer werden diese Performance-Verbesserungen automatisch Ihre Entwicklungserfahrung verbessern, sobald Ihre Git-Version aktualisiert wird.\n\nErfahren Sie mehr in den [offiziellen Git 2.51.0 Release Notes](https://lore.kernel.org/git/xmqqikikk1hr.fsf@gitster.g/T/#u) und erkunden Sie unser [komplettes Archiv der Git-Entwicklungsberichterstattung](https://about.gitlab.com/blog/tags/git/).\n\n---\n\n*Für vollständige technische Details, Benchmarks und Implementierungshinweise lesen Sie den [englischen Originalartikel](https://about.gitlab.com/blog/what-s-new-in-git-2-51-0/).*\n","open-source",[20,21,22,23],"git","open source","community","performance",{"featured":6,"template":25,"slug":26},"BlogPost","what-s-new-in-git-2-51-0","content:de-de:blog:what-s-new-in-git-2-51-0.yml","yaml","What S New In Git 2 51 0","content","de-de/blog/what-s-new-in-git-2-51-0.yml","de-de/blog/what-s-new-in-git-2-51-0","yml",{"_path":35,"_dir":36,"_draft":6,"_partial":6,"_locale":7,"data":37,"_id":449,"_type":28,"title":450,"_source":30,"_file":451,"_stem":452,"_extension":33},"/shared/de-de/main-navigation","de-de",{"logo":38,"freeTrial":43,"sales":48,"login":53,"items":58,"search":390,"minimal":426,"duo":440},{"config":39},{"href":40,"dataGaName":41,"dataGaLocation":42},"/de-de/","gitlab logo","header",{"text":44,"config":45},"Kostenlose Testversion anfordern",{"href":46,"dataGaName":47,"dataGaLocation":42},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":49,"config":50},"Vertrieb kontaktieren",{"href":51,"dataGaName":52,"dataGaLocation":42},"/de-de/sales/","sales",{"text":54,"config":55},"Anmelden",{"href":56,"dataGaName":57,"dataGaLocation":42},"https://gitlab.com/users/sign_in/","sign in",[59,103,202,207,311,371],{"text":60,"config":61,"cards":63,"footer":86},"Plattform",{"dataNavLevelOne":62},"platform",[64,70,78],{"title":60,"description":65,"link":66},"Die umfassendste KI-basierte DevSecOps-Plattform",{"text":67,"config":68},"Erkunde unsere Plattform",{"href":69,"dataGaName":62,"dataGaLocation":42},"/de-de/platform/",{"title":71,"description":72,"link":73},"GitLab Duo (KI)","Entwickle Software schneller mit KI in jeder Phase der Entwicklung",{"text":74,"config":75},"Lerne GitLab Duo kennen",{"href":76,"dataGaName":77,"dataGaLocation":42},"/de-de/gitlab-duo/","gitlab duo ai",{"title":79,"description":80,"link":81},"Gründe, die für GitLab sprechen","10 Gründe, warum Unternehmen sich für GitLab entscheiden",{"text":82,"config":83},"Mehr erfahren",{"href":84,"dataGaName":85,"dataGaLocation":42},"/de-de/why-gitlab/","why gitlab",{"title":87,"items":88},"Erste Schritte mit",[89,94,99],{"text":90,"config":91},"Platform Engineering",{"href":92,"dataGaName":93,"dataGaLocation":42},"/de-de/solutions/platform-engineering/","platform engineering",{"text":95,"config":96},"Entwicklererfahrung",{"href":97,"dataGaName":98,"dataGaLocation":42},"/de-de/developer-experience/","Developer experience",{"text":100,"config":101},"MLOps",{"href":102,"dataGaName":100,"dataGaLocation":42},"/de-de/topics/devops/the-role-of-ai-in-devops/",{"text":104,"left":105,"config":106,"link":108,"lists":112,"footer":184},"Produkt",true,{"dataNavLevelOne":107},"solutions",{"text":109,"config":110},"Alle Lösungen anzeigen",{"href":111,"dataGaName":107,"dataGaLocation":42},"/de-de/solutions/",[113,139,162],{"title":114,"description":115,"link":116,"items":121},"Automatisierung","CI/CD und Automatisierung zur Beschleunigung der Bereitstellung",{"config":117},{"icon":118,"href":119,"dataGaName":120,"dataGaLocation":42},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[122,126,130,135],{"text":123,"config":124},"CI/CD",{"href":125,"dataGaLocation":42,"dataGaName":123},"/de-de/solutions/continuous-integration/",{"text":127,"config":128},"KI-unterstützte Entwicklung",{"href":76,"dataGaLocation":42,"dataGaName":129},"AI assisted development",{"text":131,"config":132},"Quellcodeverwaltung",{"href":133,"dataGaLocation":42,"dataGaName":134},"/de-de/solutions/source-code-management/","Source Code Management",{"text":136,"config":137},"Automatisierte Softwarebereitstellung",{"href":119,"dataGaLocation":42,"dataGaName":138},"Automated software delivery",{"title":140,"description":141,"link":142,"items":147},"Sicherheit","Entwickle schneller, ohne die Sicherheit zu gefährden",{"config":143},{"href":144,"dataGaName":145,"dataGaLocation":42,"icon":146},"/de-de/solutions/security-compliance/","security and compliance","ShieldCheckLight",[148,153,158],{"text":149,"config":150},"Application Security Testing",{"href":151,"dataGaName":152,"dataGaLocation":42},"/solutions/application-security-testing/","Application security testing",{"text":154,"config":155},"Schutz der Software-Lieferkette",{"href":156,"dataGaLocation":42,"dataGaName":157},"/de-de/solutions/supply-chain/","Software supply chain security",{"text":159,"config":160},"Software Compliance",{"href":161,"dataGaName":159,"dataGaLocation":42},"/solutions/software-compliance/",{"title":163,"link":164,"items":169},"Bewertung",{"config":165},{"icon":166,"href":167,"dataGaName":168,"dataGaLocation":42},"DigitalTransformation","/de-de/solutions/visibility-measurement/","visibility and measurement",[170,174,179],{"text":171,"config":172},"Sichtbarkeit und Bewertung",{"href":167,"dataGaLocation":42,"dataGaName":173},"Visibility and Measurement",{"text":175,"config":176},"Wertstrommanagement",{"href":177,"dataGaLocation":42,"dataGaName":178},"/de-de/solutions/value-stream-management/","Value Stream Management",{"text":180,"config":181},"Analysen und Einblicke",{"href":182,"dataGaLocation":42,"dataGaName":183},"/de-de/solutions/analytics-and-insights/","Analytics and insights",{"title":185,"items":186},"GitLab für",[187,192,197],{"text":188,"config":189},"Enterprise",{"href":190,"dataGaLocation":42,"dataGaName":191},"/de-de/enterprise/","enterprise",{"text":193,"config":194},"Kleinunternehmen",{"href":195,"dataGaLocation":42,"dataGaName":196},"/de-de/small-business/","small business",{"text":198,"config":199},"den öffentlichen Sektor",{"href":200,"dataGaLocation":42,"dataGaName":201},"/de-de/solutions/public-sector/","public sector",{"text":203,"config":204},"Preise",{"href":205,"dataGaName":206,"dataGaLocation":42,"dataNavLevelOne":206},"/de-de/pricing/","pricing",{"text":208,"config":209,"link":211,"lists":215,"feature":298},"Ressourcen",{"dataNavLevelOne":210},"resources",{"text":212,"config":213},"Alle Ressourcen anzeigen",{"href":214,"dataGaName":210,"dataGaLocation":42},"/de-de/resources/",[216,249,271],{"title":217,"items":218},"Erste Schritte",[219,224,229,234,239,244],{"text":220,"config":221},"Installieren",{"href":222,"dataGaName":223,"dataGaLocation":42},"/de-de/install/","install",{"text":225,"config":226},"Kurzanleitungen",{"href":227,"dataGaName":228,"dataGaLocation":42},"/de-de/get-started/","quick setup checklists",{"text":230,"config":231},"Lernen",{"href":232,"dataGaLocation":42,"dataGaName":233},"https://university.gitlab.com/","learn",{"text":235,"config":236},"Produktdokumentation",{"href":237,"dataGaName":238,"dataGaLocation":42},"https://docs.gitlab.com/","product documentation",{"text":240,"config":241},"Best-Practice-Videos",{"href":242,"dataGaName":243,"dataGaLocation":42},"/de-de/getting-started-videos/","best practice videos",{"text":245,"config":246},"Integrationen",{"href":247,"dataGaName":248,"dataGaLocation":42},"/de-de/integrations/","integrations",{"title":250,"items":251},"Entdecken",[252,257,261,266],{"text":253,"config":254},"Kundenerfolge",{"href":255,"dataGaName":256,"dataGaLocation":42},"/de-de/customers/","customer success stories",{"text":258,"config":259},"Blog",{"href":260,"dataGaName":5,"dataGaLocation":42},"/de-de/blog/",{"text":262,"config":263},"Remote",{"href":264,"dataGaName":265,"dataGaLocation":42},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"text":267,"config":268},"TeamOps",{"href":269,"dataGaName":270,"dataGaLocation":42},"/de-de/teamops/","teamops",{"title":272,"items":273},"Vernetzen",[274,279,283,288,293],{"text":275,"config":276},"GitLab-Services",{"href":277,"dataGaName":278,"dataGaLocation":42},"/de-de/services/","services",{"text":280,"config":281},"Community",{"href":282,"dataGaName":22,"dataGaLocation":42},"/community/",{"text":284,"config":285},"Forum",{"href":286,"dataGaName":287,"dataGaLocation":42},"https://forum.gitlab.com/","forum",{"text":289,"config":290},"Veranstaltungen",{"href":291,"dataGaName":292,"dataGaLocation":42},"/events/","events",{"text":294,"config":295},"Partner",{"href":296,"dataGaName":297,"dataGaLocation":42},"/partners/","partners",{"backgroundColor":299,"textColor":300,"text":301,"image":302,"link":306},"#2f2a6b","#fff","Perspektiven für die Softwareentwicklung der Zukunft",{"altText":303,"config":304},"the source promo card",{"src":305},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":307,"config":308},"Lies die News",{"href":309,"dataGaName":310,"dataGaLocation":42},"/de-de/the-source/","the source",{"text":312,"config":313,"lists":315},"Unternehmen",{"dataNavLevelOne":314},"company",[316],{"items":317},[318,323,329,331,336,341,346,351,356,361,366],{"text":319,"config":320},"Über",{"href":321,"dataGaName":322,"dataGaLocation":42},"/de-de/company/","about",{"text":324,"config":325,"footerGa":328},"Karriere",{"href":326,"dataGaName":327,"dataGaLocation":42},"/jobs/","jobs",{"dataGaName":327},{"text":289,"config":330},{"href":291,"dataGaName":292,"dataGaLocation":42},{"text":332,"config":333},"Geschäftsführung",{"href":334,"dataGaName":335,"dataGaLocation":42},"/company/team/e-group/","leadership",{"text":337,"config":338},"Team",{"href":339,"dataGaName":340,"dataGaLocation":42},"/company/team/","team",{"text":342,"config":343},"Handbuch",{"href":344,"dataGaName":345,"dataGaLocation":42},"https://handbook.gitlab.com/","handbook",{"text":347,"config":348},"Investor Relations",{"href":349,"dataGaName":350,"dataGaLocation":42},"https://ir.gitlab.com/","investor relations",{"text":352,"config":353},"Trust Center",{"href":354,"dataGaName":355,"dataGaLocation":42},"/de-de/security/","trust center",{"text":357,"config":358},"AI Transparency Center",{"href":359,"dataGaName":360,"dataGaLocation":42},"/de-de/ai-transparency-center/","ai transparency center",{"text":362,"config":363},"Newsletter",{"href":364,"dataGaName":365,"dataGaLocation":42},"/company/contact/","newsletter",{"text":367,"config":368},"Presse",{"href":369,"dataGaName":370,"dataGaLocation":42},"/press/","press",{"text":372,"config":373,"lists":374},"Kontakt",{"dataNavLevelOne":314},[375],{"items":376},[377,380,385],{"text":49,"config":378},{"href":51,"dataGaName":379,"dataGaLocation":42},"talk to sales",{"text":381,"config":382},"Support",{"href":383,"dataGaName":384,"dataGaLocation":42},"/support/","get help",{"text":386,"config":387},"Kundenportal",{"href":388,"dataGaName":389,"dataGaLocation":42},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":391,"login":392,"suggestions":399},"Schließen",{"text":393,"link":394},"Um Repositories und Projekte zu durchsuchen, melde dich an bei",{"text":395,"config":396},"gitlab.com",{"href":56,"dataGaName":397,"dataGaLocation":398},"search login","search",{"text":400,"default":401},"Vorschläge",[402,405,410,412,417,422],{"text":71,"config":403},{"href":76,"dataGaName":404,"dataGaLocation":398},"GitLab Duo (AI)",{"text":406,"config":407},"Code Suggestions (KI)",{"href":408,"dataGaName":409,"dataGaLocation":398},"/de-de/solutions/code-suggestions/","Code Suggestions (AI)",{"text":123,"config":411},{"href":125,"dataGaName":123,"dataGaLocation":398},{"text":413,"config":414},"GitLab auf AWS",{"href":415,"dataGaName":416,"dataGaLocation":398},"/de-de/partners/technology-partners/aws/","GitLab on AWS",{"text":418,"config":419},"GitLab auf Google Cloud",{"href":420,"dataGaName":421,"dataGaLocation":398},"/de-de/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":423,"config":424},"Warum GitLab?",{"href":84,"dataGaName":425,"dataGaLocation":398},"Why GitLab?",{"freeTrial":427,"mobileIcon":432,"desktopIcon":437},{"text":428,"config":429},"Kostenlos testen",{"href":430,"dataGaName":47,"dataGaLocation":431},"https://gitlab.com/-/trials/new/","nav",{"altText":433,"config":434},"GitLab-Symbol",{"src":435,"dataGaName":436,"dataGaLocation":431},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":433,"config":438},{"src":439,"dataGaName":436,"dataGaLocation":431},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"freeTrial":441,"mobileIcon":445,"desktopIcon":447},{"text":442,"config":443},"Erfahre mehr über GitLab Duo",{"href":76,"dataGaName":444,"dataGaLocation":431},"gitlab duo",{"altText":433,"config":446},{"src":435,"dataGaName":436,"dataGaLocation":431},{"altText":433,"config":448},{"src":439,"dataGaName":436,"dataGaLocation":431},"content:shared:de-de:main-navigation.yml","Main Navigation","shared/de-de/main-navigation.yml","shared/de-de/main-navigation",{"_path":454,"_dir":36,"_draft":6,"_partial":6,"_locale":7,"title":455,"button":456,"config":461,"_id":463,"_type":28,"_source":30,"_file":464,"_stem":465,"_extension":33},"/shared/de-de/banner","GitLab Duo Agent Platform ist jetzt in öffentlicher Beta!",{"text":457,"config":458},"Beta testen",{"href":459,"dataGaName":460,"dataGaLocation":42},"/de-de/gitlab-duo/agent-platform/","duo banner",{"layout":462},"release","content:shared:de-de:banner.yml","shared/de-de/banner.yml","shared/de-de/banner",{"_path":467,"_dir":36,"_draft":6,"_partial":6,"_locale":7,"data":468,"_id":671,"_type":28,"title":672,"_source":30,"_file":673,"_stem":674,"_extension":33},"/shared/de-de/main-footer",{"text":469,"source":470,"edit":476,"contribute":481,"config":486,"items":491,"minimal":663},"Git ist eine Marke von Software Freedom Conservancy und unsere Verwendung von „GitLab“ erfolgt unter Lizenz.",{"text":471,"config":472},"Quelltext der Seite anzeigen",{"href":473,"dataGaName":474,"dataGaLocation":475},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":477,"config":478},"Diese Seite bearbeiten",{"href":479,"dataGaName":480,"dataGaLocation":475},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":482,"config":483},"Beteilige dich",{"href":484,"dataGaName":485,"dataGaLocation":475},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":487,"facebook":488,"youtube":489,"linkedin":490},"https://x.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[492,515,570,599,633],{"title":60,"links":493,"subMenu":498},[494],{"text":495,"config":496},"DevSecOps-Plattform",{"href":69,"dataGaName":497,"dataGaLocation":475},"devsecops platform",[499],{"title":203,"links":500},[501,505,510],{"text":502,"config":503},"Tarife anzeigen",{"href":205,"dataGaName":504,"dataGaLocation":475},"view plans",{"text":506,"config":507},"Vorteile von Premium",{"href":508,"dataGaName":509,"dataGaLocation":475},"/de-de/pricing/premium/","why premium",{"text":511,"config":512},"Vorteile von Ultimate",{"href":513,"dataGaName":514,"dataGaLocation":475},"/de-de/pricing/ultimate/","why ultimate",{"title":516,"links":517},"Lösungen",[518,523,526,528,533,538,542,545,548,553,555,557,560,565],{"text":519,"config":520},"Digitale Transformation",{"href":521,"dataGaName":522,"dataGaLocation":475},"/de-de/topics/digital-transformation/","digital transformation",{"text":524,"config":525},"Sicherheit und Compliance",{"href":151,"dataGaName":152,"dataGaLocation":475},{"text":136,"config":527},{"href":119,"dataGaName":120,"dataGaLocation":475},{"text":529,"config":530},"Agile Entwicklung",{"href":531,"dataGaName":532,"dataGaLocation":475},"/de-de/solutions/agile-delivery/","agile delivery",{"text":534,"config":535},"Cloud-Transformation",{"href":536,"dataGaName":537,"dataGaLocation":475},"/de-de/topics/cloud-native/","cloud transformation",{"text":539,"config":540},"SCM",{"href":133,"dataGaName":541,"dataGaLocation":475},"source code management",{"text":123,"config":543},{"href":125,"dataGaName":544,"dataGaLocation":475},"continuous integration & delivery",{"text":175,"config":546},{"href":177,"dataGaName":547,"dataGaLocation":475},"value stream management",{"text":549,"config":550},"GitOps",{"href":551,"dataGaName":552,"dataGaLocation":475},"/de-de/solutions/gitops/","gitops",{"text":188,"config":554},{"href":190,"dataGaName":191,"dataGaLocation":475},{"text":193,"config":556},{"href":195,"dataGaName":196,"dataGaLocation":475},{"text":558,"config":559},"Öffentlicher Sektor",{"href":200,"dataGaName":201,"dataGaLocation":475},{"text":561,"config":562},"Bildungswesen",{"href":563,"dataGaName":564,"dataGaLocation":475},"/de-de/solutions/education/","education",{"text":566,"config":567},"Finanzdienstleistungen",{"href":568,"dataGaName":569,"dataGaLocation":475},"/de-de/solutions/finance/","financial services",{"title":208,"links":571},[572,574,576,578,581,583,585,587,589,591,593,595,597],{"text":220,"config":573},{"href":222,"dataGaName":223,"dataGaLocation":475},{"text":225,"config":575},{"href":227,"dataGaName":228,"dataGaLocation":475},{"text":230,"config":577},{"href":232,"dataGaName":233,"dataGaLocation":475},{"text":235,"config":579},{"href":237,"dataGaName":580,"dataGaLocation":475},"docs",{"text":258,"config":582},{"href":260,"dataGaName":5,"dataGaLocation":475},{"text":253,"config":584},{"href":255,"dataGaName":256,"dataGaLocation":475},{"text":262,"config":586},{"href":264,"dataGaName":265,"dataGaLocation":475},{"text":275,"config":588},{"href":277,"dataGaName":278,"dataGaLocation":475},{"text":267,"config":590},{"href":269,"dataGaName":270,"dataGaLocation":475},{"text":280,"config":592},{"href":282,"dataGaName":22,"dataGaLocation":475},{"text":284,"config":594},{"href":286,"dataGaName":287,"dataGaLocation":475},{"text":289,"config":596},{"href":291,"dataGaName":292,"dataGaLocation":475},{"text":294,"config":598},{"href":296,"dataGaName":297,"dataGaLocation":475},{"title":312,"links":600},[601,603,605,607,609,611,613,617,622,624,626,628],{"text":319,"config":602},{"href":321,"dataGaName":314,"dataGaLocation":475},{"text":324,"config":604},{"href":326,"dataGaName":327,"dataGaLocation":475},{"text":332,"config":606},{"href":334,"dataGaName":335,"dataGaLocation":475},{"text":337,"config":608},{"href":339,"dataGaName":340,"dataGaLocation":475},{"text":342,"config":610},{"href":344,"dataGaName":345,"dataGaLocation":475},{"text":347,"config":612},{"href":349,"dataGaName":350,"dataGaLocation":475},{"text":614,"config":615},"Sustainability",{"href":616,"dataGaName":614,"dataGaLocation":475},"/sustainability/",{"text":618,"config":619},"Vielfalt, Inklusion und Zugehörigkeit",{"href":620,"dataGaName":621,"dataGaLocation":475},"/de-de/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":352,"config":623},{"href":354,"dataGaName":355,"dataGaLocation":475},{"text":362,"config":625},{"href":364,"dataGaName":365,"dataGaLocation":475},{"text":367,"config":627},{"href":369,"dataGaName":370,"dataGaLocation":475},{"text":629,"config":630},"Transparenzerklärung zu moderner Sklaverei",{"href":631,"dataGaName":632,"dataGaLocation":475},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":634,"links":635},"Nimm Kontakt auf",[636,639,641,643,648,653,658],{"text":637,"config":638},"Sprich mit einem Experten/einer Expertin",{"href":51,"dataGaName":52,"dataGaLocation":475},{"text":381,"config":640},{"href":383,"dataGaName":384,"dataGaLocation":475},{"text":386,"config":642},{"href":388,"dataGaName":389,"dataGaLocation":475},{"text":644,"config":645},"Status",{"href":646,"dataGaName":647,"dataGaLocation":475},"https://status.gitlab.com/","status",{"text":649,"config":650},"Nutzungsbedingungen",{"href":651,"dataGaName":652,"dataGaLocation":475},"/terms/","terms of use",{"text":654,"config":655},"Datenschutzerklärung",{"href":656,"dataGaName":657,"dataGaLocation":475},"/de-de/privacy/","privacy statement",{"text":659,"config":660},"Cookie-Einstellungen",{"dataGaName":661,"dataGaLocation":475,"id":662,"isOneTrustButton":105},"cookie preferences","ot-sdk-btn",{"items":664},[665,667,669],{"text":649,"config":666},{"href":651,"dataGaName":652,"dataGaLocation":475},{"text":654,"config":668},{"href":656,"dataGaName":657,"dataGaLocation":475},{"text":659,"config":670},{"dataGaName":661,"dataGaLocation":475,"id":662,"isOneTrustButton":105},"content:shared:de-de:main-footer.yml","Main Footer","shared/de-de/main-footer.yml","shared/de-de/main-footer",[676],{"_path":677,"_dir":678,"_draft":6,"_partial":6,"_locale":7,"content":679,"config":683,"_id":685,"_type":28,"title":15,"_source":30,"_file":686,"_stem":687,"_extension":33},"/en-us/blog/authors/karthik-nayak","authors",{"name":15,"config":680},{"headshot":681,"ctfId":682},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659809/Blog/Author%20Headshots/Screenshot_2025-06-04_at_8.49.51%C3%A2__AM.png","3Q6ZKvaiCRw7tFZdDGlecg",{"template":684},"BlogAuthor","content:en-us:blog:authors:karthik-nayak.yml","en-us/blog/authors/karthik-nayak.yml","en-us/blog/authors/karthik-nayak",{"_path":689,"_dir":36,"_draft":6,"_partial":6,"_locale":7,"header":690,"eyebrow":691,"blurb":692,"button":693,"secondaryButton":697,"_id":699,"_type":28,"title":700,"_source":30,"_file":701,"_stem":702,"_extension":33},"/shared/de-de/next-steps","Stelle jetzt bessere Software schneller bereit","Mehr als 50 % der Fortune-100-Unternehmen vertrauen GitLab","Erlebe, was dein Team mit der intelligenten\n\n\nDevSecOps-Plattform erreichen kann.\n",{"text":44,"config":694},{"href":695,"dataGaName":47,"dataGaLocation":696},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":49,"config":698},{"href":51,"dataGaName":52,"dataGaLocation":696},"content:shared:de-de:next-steps.yml","Next Steps","shared/de-de/next-steps.yml","shared/de-de/next-steps",1759517320178]