[{"data":1,"prerenderedAt":708},["ShallowReactive",2],{"/ja-jp/blog/whats-new-in-git-2-48-0":3,"navigation-ja-jp":38,"banner-ja-jp":451,"footer-ja-jp":464,"footer-source-/ja-jp/blog/whats-new-in-git-2-48-0/":674,"Christian Couder":680,"next-steps-ja-jp":693},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"seo":8,"content":16,"config":27,"_id":31,"_type":32,"title":33,"_source":34,"_file":35,"_stem":36,"_extension":37},"/ja-jp/blog/whats-new-in-git-2-48-0","blog",false,"",{"title":9,"description":10,"ogTitle":9,"ogDescription":10,"noIndex":6,"ogImage":11,"ogUrl":12,"ogSiteName":13,"ogType":14,"canonicalUrls":12,"schema":15},"Git 2.48.0の新機能","Gitの最新バージョンについてご紹介します。新たなビルドシステムに加え、最適化された新しいreftableバックエンドが導入されました。また、GitLabのGitチームおよびGitコミュニティによるコントリビュートもご紹介します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663691/Blog/Hero%20Images/AdobeStock_752438815.jpg","https://about.gitlab.com/blog/whats-new-in-git-2-48-0","https://about.gitlab.com","article","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Git 2.48.0の新機能\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Christian Couder\"}],\n        \"datePublished\": \"2025-01-10\",\n      }",{"title":9,"description":10,"authors":17,"heroImage":11,"date":19,"body":20,"category":21,"tags":22,"updatedDate":26},[18],"Christian Couder","2025-01-10","Gitプロジェクトは先日[Git 2.48.0](https://lore.kernel.org/git/xmqqplku7cvm.fsf@gitster.g/)をリリースしました。本記事では、GitLabのGitチームや幅広いGitコミュニティからのコントリビュートなど、このリリースにおけるハイライトをご紹介します。\n\n## Mesonビルドシステム\n\nこれまで長い間、Gitは[Makefile](https://en.wikipedia.org/wiki/GNU_Make)ベースまたは[Autoconf](https://en.wikipedia.org/wiki/Autoconf)ベースのビルドシステムのいずれかを使用してビルドできる仕組みになっていました。しかし、Gitデベロッパーの多くはMakefileベースのビルドシステムを主に利用しており、[Autoconfベースのビルドシステムは機能やメンテナンスの面で後れ](https://lore.kernel.org/git/GV1PR02MB848925A79A9DD733848182D58D662@GV1PR02MB8489.eurprd02.prod.outlook.com/)を取っていました。また、Windowsデベロッパーがよく利用する統合開発環境（IDE）は、MakefileやAutoconfベースのビルドシステムを十分にサポートしていないという問題もありました。\n\n2020年に[CMake](https://cmake.org/)を使用したGitのビルドが可能になり、特にVisual Studio向けに、WindowsでのサポートやIDE統合が改善されました。また、out-of-sourceビルドなどのモダンなビルドシステムも追加されました。\n\nしかし、最近ではCMakeのサポートも後れを取っており、前述の2つのビルドシステムを完全に置き換えるには適していない可能性が出てきました。こうした背景から、GitLabのGitエンジニアリングマネージャーである[Patrick Steinhardt](https://gitlab.com/pks-gitlab)が、[Meson](https://mesonbuild.com/)ビルドシステムを導入しました。これにより、最終的にAutoconf、CMake、そして場合によってはMakefileベースのビルドシステムを置き換えることが期待されています。\n\nMesonビルドシステムの主なメリットは以下のとおりです。\n* MakefileやCMakeでは難しいビルドオプションを簡単に確認できる\n* AutoconfやCMakeに比べてシンプルな構文\n* さまざまなOS、コンパイラ、IDEをサポート\n* out-of-sourceビルドなど、モダンなビルドシステムに対応\n\n以下に、Mesonを使用したGitのビルド方法をご紹介します。\n\n```shell\n$ cd git             \t# Gitのソースコードのルートディレクトリに移動\n$ meson setup build/ \t# \"build\"をビルドディレクトリとして設定\n$ cd build           \t# \"build\"ディレクトリに移動\n$ meson compile      \t# Gitをビルド\n$ meson test         \t# 新しいビルドをテスト\n$ meson install      \t# 新しいビルドをインストール\n\n```\n\n`meson setup \u003Cbuild_dir>`を使うことで、複数のビルドディレクトリを設定できます。また、ビルドディレクトリ内で`meson configure`を実行して、そのディレクトリのビルド構成を確認または変更できます。\n\n詳しい手順は、Gitコードリポジトリの[`meson.build`ファイル](https://gitlab.com/gitlab-org/git/-/blob/master/meson.build)の冒頭に記載されています。また、Gitで使用される[ビルドシステムの比較](https://gitlab.com/gitlab-org/git/-/blob/master/Documentation/technical/build-systems.txt)は、Gitの技術ドキュメントで確認できます。\n\nこのプロジェクトは[Patrick Steinhardt](https://gitlab.com/pks-gitlab)が主導しました。\n\n## Gitのメモリリーク完全解消（テストスイートによる検証済み）\n\n前回のGit 2.47.0リリースに関するブログ記事で触れたように、GitLabでは[プロジェクト内で発生したメモリリークの修正](https://about.gitlab.com/blog/whats-new-in-git-2-47-0/#code-refactoring-and-maintainability-improvements)に取り組んできました。その結果、Git 2.47.0リリース以前は、223のテストファイルで確認されていたメモリリークが、最終的に60ファイルまで削減されました。\n\nその後、残りの60ファイルにおけるメモリリークもすべて解消され、テストスイートで検証された範囲では、Gitは完全にメモリリークがない状態となりました。この成果は、Git内部コンポーネントを内部ライブラリに「ライブラリ化（変換）」するという長年の目標に向け大きく前進したことを示しています。また、メモリ使用の最適化にもつながります。\n\n今後、新たに追加されるテストはデフォルトでメモリリークがないことが求められます。リークを含むテストも可能ですが、その場合、作成者は例外的な処理を使用して、メモリリークを解消できない理由を明示する必要があります。\n\nこのプロジェクトは[Patrick Steinhardt](https://gitlab.com/pks-gitlab)が主導しました。\n\n## バンドルURIチェックの改善\n\nGit 2.46.0リリースに関するブログ記事で[Xing Xin](https://lore.kernel.org/git/pull.1730.git.1715742069966.gitgitgadget@gmail.com/)による[バンドルURI修正](https://about.gitlab.com/blog/whats-new-in-git-2-46-0/#bundle-uri-fixes)を取り上げました。 その後、Xing Xinは[バンドルを使ったフェッチ](https://lore.kernel.org/git/pull.1730.v8.git.1718770053.gitgitgadget@gmail.com/)が、通常のフェッチと同様に[fsck](https://git-scm.com/docs/git-fsck)メカニズムで完全に検証されるように改良しました。\n\n通常のフェッチの検証では、[異なるfsckの問題](https://git-scm.com/docs/git-fsck#_fsck_messages)に対して[異なる重大度](https://git-scm.com/docs/git-fsck#Documentation/git-fsck.txt-fsckltmsg-idgt)を指定することで、特定のリポジトリにおいて何を許容し、何を拒否するかを細かく制御できます。しかし、これまでバンドルを使ったフェッチではこうした制御は不可能でした。\n\n[バンドルURI](https://git-scm.com/docs/bundle-uri)の有用性と安全性をさらに高めるために、[この問題を解決](https://lore.kernel.org/git/20241121204119.1440773-1-jltobler@gmail.com/)し、バンドルを使ったフェッチの検証にも異なるfsck問題に対して異なる重大度を指定できるようにしました。\n\nこのプロジェクトは[Justin Tobler](https://gitlab.com/justintobler)が主導しました。\n\n## 参照の整合性チェックを追加\n\nGit 2.47.0リリースに関するブログ記事で、[Google Summer of Code 2024](https://summerofcode.withgoogle.com/archive/2024/projects/ukm4PTEF)（GSoC 2024）の一環としてJialuo Sheが[「verify」サブコマンドをgit-refs(1)に追加](https://about.gitlab.com/blog/whats-new-in-git-2-47-0/#new-subcommand-for-git-refs\\(1\\))したことについて言及しました。\n\n記事では、最終目標として、この新しいサブコマンドをgit-fsck(1)に統合し、リポジトリの整合性チェックを一元化できるようにすることを挙げました。GSoC終了後、Jialuo Sheはこの統合作業に着手しました。\n\n[この取り組み](https://lore.kernel.org/git/ZrtrT1CPI4YUf5db@ArchLinux/)の結果、git-fsck(1)は、参照の内容が不適切な場合や、シンボリック参照としてシンボリックリンクが使用された場合、ターゲットが無効な参照を指している場合など、参照に関連するさまざまな問題を検出し処理できるようになりました。git-fsck(1)の一部として`git refs verify`を呼び出し、git-fsck(1)が現在実行しているバックエンドに依存しないすべてのチェックを`git refs verify`が引き継ぐ必要がありますが、参照の整合性チェックを一元化するという最終目標に一歩近づきました。\n\nこのプロジェクトはJialuo Sheが主導しました。\n\n## reftableにおけるイテレータの再利用\n\n[Git 2.45.0](https://gitlab.com/gitlab-org/git/-/raw/master/Documentation/RelNotes/2.45.0.txt)のリリースでは、参照（主にブランチやタグ）を管理する新しいバックエンドとして「reftable」フォーマットが導入されました。reftableバックエンドについての詳細は、この機能を紹介している過去の[Gitリリースに関するブログ記事](https://about.gitlab.com/ja-jp/blog/whats-new-in-git-2-45-0/)や、[reftableの仕組みを詳しく解説した](https://about.gitlab.com/ja-jp/blog/a-beginners-guide-to-the-git-reftable-format/)初心者向けガイドをお読みください。\n\n2.45.0以降もバックエンドの改良を重ね、最近では、[内部イテレータの再利用](https://lore.kernel.org/git/cover.1730732881.git.ps@pks.im/)によってランダムな参照を読み取る際のパフォーマンスを向上させることに注力しました。こうした改善がなされるまでは、単一の参照を読み取るたびに新しいイテレータを作成し、対象のテーブル内の正しい位置を探してそこに移動させ、次の値を読み取る必要があり、多くの参照を短時間で読み取る際にはきわめて非効率でした。しかし、今回の変更により、単一のイテレータを作成し、それを再利用して複数の参照を読み取ることで、処理効率を高められるようになりました。\n\nその結果、reftableに関連するさまざまなユースケースでパフォーマンスが向上しました。特に、ランダム読み取りが頻繁に実行されるトランザクション内で多くの参照を作成する際に、7%の速度向上が確認されています。また、この変更によって、イテレータ内で保持される状態をより多く再利用できるようになるため、最適化がさらに進むと予想できます。\n\nこのプロジェクトは[Patrick Steinhardt](https://gitlab.com/pks-gitlab)が主導しました。\n\n## `git-refs migrate`におけるreflog対応\n\nGit 2.46.0のリリース記事では、[このツールに関する取り組み](https://about.gitlab.com/blog/whats-new-in-git-2-46-0/#tooling-to-migrate-reference-backends)に加え、いまだ存在する課題についても次のように言及しています。\n\n「リポジトリ内のreflogは参照バックエンドのコンポーネントであり、フォーマット間の移行も必要となります。残念ながら、現時点ではツールを使用してファイルとreftableバックエンドの間でreflogを変換することはできません」\n\n[この課題はGit 2.48.0で解決](https://lore.kernel.org/git/20241216-320-git-refs-migrate-reflogs-v4-0-d7cd3f197453@gmail.com/)されました。\n`git refs migrate`を使うことでreflogの移行も可能になりました。複数のワークツリーを持つリポジトリを扱うことはまだできませんが、残された課題はこの一点のみであり、ワークツリーを使用していない場合は、既存のリポジトリでreftableバックエンドをすでに利用することが可能です。\n\nこのプロジェクトは[Karthik Nayak](https://gitlab.com/knayakgl)が主導しました。\n\n## Ref-filterの最適化\n\n「ref-filter」サブシステムは、`git for-each-ref`、`git branch`、`git tag`といったコマンドで使用されるフォーマットコードで、Git参照に関連する情報を並べ替え、フィルタリング、フォーマット、表示する役割を担っています。\n\nリポジトリの規模が大きくなるにつれて、扱う参照の数も増加します。そのため、reftableバックエンドなどの参照を保存するバックエンド（上記参照）の改善だけでなく、「ref-filter」サブシステムのようなフォーマットコードの最適化にも取り組んでいます。\n\n今回、ref-filterのコードでバックエンドの順序通りに参照を処理すべき場合に、参照の一時的なバッファリングやイテレーション処理を不要にする[方法を特定](https://lore.kernel.org/git/d23c3e3ee7fdb49fcd05b4f2e52dd2a1cfdc10f2.1729510342.git.ps@pks.im/)しました。この結果、メモリの節約が可能になり、特定のコマンドでは処理速度が最大で770倍も速くなるケースが確認されています。\n\nこのプロジェクトは[Patrick Steinhardt](https://gitlab.com/pks-gitlab)が主導しました。\n\n## 補足情報\n\nこのブログ記事では、最新リリースにおけるGitLabや広範なGitコミュニティによるコントリビュートの一部をご紹介しました。詳細は、Gitプロジェクトの公式リリース発表をご覧いただくと詳細をご確認いただけます。また、[これまでのGitリリースに関するブログ記事](https://about.gitlab.com/blog/tags/git/)では、GitLabチームの過去のコントリビュートもハイライトされていますので、ぜひご確認ください。\n\n- [Git 2.47.0の新機能](https://about.gitlab.com/blog/whats-new-in-git-2-47-0/)（英語）\n- [Git 2.46.0の新機能](https://about.gitlab.com/blog/whats-new-in-git-2-46-0/)（英語）\n- [Git 2.45.0の新機能](https://about.gitlab.com/ja-jp/blog/whats-new-in-git-2-45-0/)\n- [初心者向けGit reftableフォーマットガイド](https://about.gitlab.com/ja-jp/blog/a-beginners-guide-to-the-git-reftable-format/)\n\n\u003Cbr>\n*監修：小松原 つかさ* [*@tkomatsubara*](https://gitlab.com/tkomatsubara)\u003Cbr>\n*（GitLab合同会社 ソリューションアーキテクト本部 シニアパートナーソリューションアーキテクト）*","open-source",[23,24,25],"git","open source","community","2025-02-13",{"slug":28,"featured":29,"template":30},"whats-new-in-git-2-48-0",true,"BlogPost","content:ja-jp:blog:whats-new-in-git-2-48-0.yml","yaml","Whats New In Git 2 48 0","content","ja-jp/blog/whats-new-in-git-2-48-0.yml","ja-jp/blog/whats-new-in-git-2-48-0","yml",{"_path":39,"_dir":40,"_draft":6,"_partial":6,"_locale":7,"data":41,"_id":447,"_type":32,"title":448,"_source":34,"_file":449,"_stem":450,"_extension":37},"/shared/ja-jp/main-navigation","ja-jp",{"logo":42,"freeTrial":47,"sales":52,"login":57,"items":62,"search":391,"minimal":425,"duo":438},{"config":43},{"href":44,"dataGaName":45,"dataGaLocation":46},"/ja-jp/","gitlab logo","header",{"text":48,"config":49},"無料トライアルを開始",{"href":50,"dataGaName":51,"dataGaLocation":46},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":53,"config":54},"お問い合わせ",{"href":55,"dataGaName":56,"dataGaLocation":46},"/ja-jp/sales/","sales",{"text":58,"config":59},"サインイン",{"href":60,"dataGaName":61,"dataGaLocation":46},"https://gitlab.com/users/sign_in/","sign in",[63,107,204,209,313,373],{"text":64,"config":65,"cards":67,"footer":90},"プラットフォーム",{"dataNavLevelOne":66},"platform",[68,74,82],{"title":64,"description":69,"link":70},"最も包括的かつAIで強化されたDevSecOpsプラットフォーム",{"text":71,"config":72},"プラットフォームを詳しく見る",{"href":73,"dataGaName":66,"dataGaLocation":46},"/ja-jp/platform/",{"title":75,"description":76,"link":77},"GitLab Duo（AI）","開発のすべてのステージでAIを活用し、ソフトウェアをより迅速にビルド",{"text":78,"config":79},"GitLab Duoのご紹介",{"href":80,"dataGaName":81,"dataGaLocation":46},"/ja-jp/gitlab-duo/","gitlab duo ai",{"title":83,"description":84,"link":85},"GitLabが選ばれる理由","GitLabが大企業に選ばれる理由10選",{"text":86,"config":87},"詳細はこちら",{"href":88,"dataGaName":89,"dataGaLocation":46},"/ja-jp/why-gitlab/","why gitlab",{"title":91,"items":92},"利用を開始：",[93,98,103],{"text":94,"config":95},"プラットフォームエンジニアリング",{"href":96,"dataGaName":97,"dataGaLocation":46},"/ja-jp/solutions/platform-engineering/","platform engineering",{"text":99,"config":100},"開発者の経験",{"href":101,"dataGaName":102,"dataGaLocation":46},"/ja-jp/developer-experience/","Developer experience",{"text":104,"config":105},"MLOps",{"href":106,"dataGaName":104,"dataGaLocation":46},"/ja-jp/topics/devops/the-role-of-ai-in-devops/",{"text":108,"left":29,"config":109,"link":111,"lists":115,"footer":186},"製品",{"dataNavLevelOne":110},"solutions",{"text":112,"config":113},"すべてのソリューションを表示",{"href":114,"dataGaName":110,"dataGaLocation":46},"/ja-jp/solutions/",[116,142,164],{"title":117,"description":118,"link":119,"items":124},"自動化","CI/CDと自動化でデプロイを加速",{"config":120},{"icon":121,"href":122,"dataGaName":123,"dataGaLocation":46},"AutomatedCodeAlt","/ja-jp/solutions/delivery-automation/","automated software delivery",[125,129,133,138],{"text":126,"config":127},"CI/CD",{"href":128,"dataGaLocation":46,"dataGaName":126},"/ja-jp/solutions/continuous-integration/",{"text":130,"config":131},"AIアシストによる開発",{"href":80,"dataGaLocation":46,"dataGaName":132},"AI assisted development",{"text":134,"config":135},"ソースコード管理",{"href":136,"dataGaLocation":46,"dataGaName":137},"/ja-jp/solutions/source-code-management/","Source Code Management",{"text":139,"config":140},"自動化されたソフトウェアデリバリー",{"href":122,"dataGaLocation":46,"dataGaName":141},"Automated software delivery",{"title":143,"description":144,"link":145,"items":150},"セキュリティ","セキュリティを損なうことなくコードをより迅速に完成",{"config":146},{"href":147,"dataGaName":148,"dataGaLocation":46,"icon":149},"/ja-jp/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[151,155,160],{"text":152,"config":153},"Application Security Testing",{"href":147,"dataGaName":154,"dataGaLocation":46},"Application security testing",{"text":156,"config":157},"ソフトウェアサプライチェーンの安全性",{"href":158,"dataGaLocation":46,"dataGaName":159},"/ja-jp/solutions/supply-chain/","Software supply chain security",{"text":161,"config":162},"Software Compliance",{"href":163,"dataGaName":161,"dataGaLocation":46},"/ja-jp/solutions/software-compliance/",{"title":165,"link":166,"items":171},"測定",{"config":167},{"icon":168,"href":169,"dataGaName":170,"dataGaLocation":46},"DigitalTransformation","/ja-jp/solutions/visibility-measurement/","visibility and measurement",[172,176,181],{"text":173,"config":174},"可視性と測定",{"href":169,"dataGaLocation":46,"dataGaName":175},"Visibility and Measurement",{"text":177,"config":178},"バリューストリーム管理",{"href":179,"dataGaLocation":46,"dataGaName":180},"/ja-jp/solutions/value-stream-management/","Value Stream Management",{"text":182,"config":183},"分析とインサイト",{"href":184,"dataGaLocation":46,"dataGaName":185},"/ja-jp/solutions/analytics-and-insights/","Analytics and insights",{"title":187,"items":188},"GitLabが活躍する場所",[189,194,199],{"text":190,"config":191},"Enterprise",{"href":192,"dataGaLocation":46,"dataGaName":193},"/ja-jp/enterprise/","enterprise",{"text":195,"config":196},"スモールビジネス",{"href":197,"dataGaLocation":46,"dataGaName":198},"/ja-jp/small-business/","small business",{"text":200,"config":201},"公共機関",{"href":202,"dataGaLocation":46,"dataGaName":203},"/ja-jp/solutions/public-sector/","public sector",{"text":205,"config":206},"価格",{"href":207,"dataGaName":208,"dataGaLocation":46,"dataNavLevelOne":208},"/ja-jp/pricing/","pricing",{"text":210,"config":211,"link":213,"lists":217,"feature":300},"関連リソース",{"dataNavLevelOne":212},"resources",{"text":214,"config":215},"すべてのリソースを表示",{"href":216,"dataGaName":212,"dataGaLocation":46},"/ja-jp/resources/",[218,251,273],{"title":219,"items":220},"はじめに",[221,226,231,236,241,246],{"text":222,"config":223},"インストール",{"href":224,"dataGaName":225,"dataGaLocation":46},"/ja-jp/install/","install",{"text":227,"config":228},"クイックスタートガイド",{"href":229,"dataGaName":230,"dataGaLocation":46},"/ja-jp/get-started/","quick setup checklists",{"text":232,"config":233},"学ぶ",{"href":234,"dataGaLocation":46,"dataGaName":235},"https://university.gitlab.com/","learn",{"text":237,"config":238},"製品ドキュメント",{"href":239,"dataGaName":240,"dataGaLocation":46},"https://docs.gitlab.com/","product documentation",{"text":242,"config":243},"ベストプラクティスビデオ",{"href":244,"dataGaName":245,"dataGaLocation":46},"/ja-jp/getting-started-videos/","best practice videos",{"text":247,"config":248},"インテグレーション",{"href":249,"dataGaName":250,"dataGaLocation":46},"/ja-jp/integrations/","integrations",{"title":252,"items":253},"検索する",[254,259,263,268],{"text":255,"config":256},"お客様成功事例",{"href":257,"dataGaName":258,"dataGaLocation":46},"/ja-jp/customers/","customer success stories",{"text":260,"config":261},"ブログ",{"href":262,"dataGaName":5,"dataGaLocation":46},"/ja-jp/blog/",{"text":264,"config":265},"リモート",{"href":266,"dataGaName":267,"dataGaLocation":46},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"text":269,"config":270},"TeamOps",{"href":271,"dataGaName":272,"dataGaLocation":46},"/ja-jp/teamops/","teamops",{"title":274,"items":275},"つなげる",[276,281,285,290,295],{"text":277,"config":278},"GitLabサービス",{"href":279,"dataGaName":280,"dataGaLocation":46},"/ja-jp/services/","services",{"text":282,"config":283},"コミュニティ",{"href":284,"dataGaName":25,"dataGaLocation":46},"/community/",{"text":286,"config":287},"フォーラム",{"href":288,"dataGaName":289,"dataGaLocation":46},"https://forum.gitlab.com/","forum",{"text":291,"config":292},"イベント",{"href":293,"dataGaName":294,"dataGaLocation":46},"/events/","events",{"text":296,"config":297},"パートナー",{"href":298,"dataGaName":299,"dataGaLocation":46},"/ja-jp/partners/","partners",{"backgroundColor":301,"textColor":302,"text":303,"image":304,"link":308},"#2f2a6b","#fff","ソフトウェア開発の未来への洞察",{"altText":305,"config":306},"ソースプロモカード",{"src":307},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":309,"config":310},"最新情報を読む",{"href":311,"dataGaName":312,"dataGaLocation":46},"/ja-jp/the-source/","the source",{"text":314,"config":315,"lists":317},"会社情報",{"dataNavLevelOne":316},"company",[318],{"items":319},[320,325,331,333,338,343,348,353,358,363,368],{"text":321,"config":322},"GitLabについて",{"href":323,"dataGaName":324,"dataGaLocation":46},"/ja-jp/company/","about",{"text":326,"config":327,"footerGa":330},"採用情報",{"href":328,"dataGaName":329,"dataGaLocation":46},"/jobs/","jobs",{"dataGaName":329},{"text":291,"config":332},{"href":293,"dataGaName":294,"dataGaLocation":46},{"text":334,"config":335},"経営陣",{"href":336,"dataGaName":337,"dataGaLocation":46},"/company/team/e-group/","leadership",{"text":339,"config":340},"チーム",{"href":341,"dataGaName":342,"dataGaLocation":46},"/company/team/","team",{"text":344,"config":345},"ハンドブック",{"href":346,"dataGaName":347,"dataGaLocation":46},"https://handbook.gitlab.com/","handbook",{"text":349,"config":350},"投資家向け情報",{"href":351,"dataGaName":352,"dataGaLocation":46},"https://ir.gitlab.com/","investor relations",{"text":354,"config":355},"トラストセンター",{"href":356,"dataGaName":357,"dataGaLocation":46},"/ja-jp/security/","trust center",{"text":359,"config":360},"AI Transparency Center",{"href":361,"dataGaName":362,"dataGaLocation":46},"/ja-jp/ai-transparency-center/","ai transparency center",{"text":364,"config":365},"ニュースレター",{"href":366,"dataGaName":367,"dataGaLocation":46},"/company/contact/","newsletter",{"text":369,"config":370},"プレス",{"href":371,"dataGaName":372,"dataGaLocation":46},"/press/","press",{"text":53,"config":374,"lists":375},{"dataNavLevelOne":316},[376],{"items":377},[378,381,386],{"text":53,"config":379},{"href":55,"dataGaName":380,"dataGaLocation":46},"talk to sales",{"text":382,"config":383},"サポートを受ける",{"href":384,"dataGaName":385,"dataGaLocation":46},"/support/","get help",{"text":387,"config":388},"カスタマーポータル",{"href":389,"dataGaName":390,"dataGaLocation":46},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":392,"login":393,"suggestions":400},"閉じる",{"text":394,"link":395},"リポジトリとプロジェクトを検索するには、次にログインします",{"text":396,"config":397},"GitLab.com",{"href":60,"dataGaName":398,"dataGaLocation":399},"search login","search",{"text":401,"default":402},"提案",[403,406,411,413,417,421],{"text":75,"config":404},{"href":80,"dataGaName":405,"dataGaLocation":399},"GitLab Duo (AI)",{"text":407,"config":408},"コード提案（AI）",{"href":409,"dataGaName":410,"dataGaLocation":399},"/ja-jp/solutions/code-suggestions/","Code Suggestions (AI)",{"text":126,"config":412},{"href":128,"dataGaName":126,"dataGaLocation":399},{"text":414,"config":415},"GitLab on AWS",{"href":416,"dataGaName":414,"dataGaLocation":399},"/ja-jp/partners/technology-partners/aws/",{"text":418,"config":419},"GitLab on Google Cloud",{"href":420,"dataGaName":418,"dataGaLocation":399},"/ja-jp/partners/technology-partners/google-cloud-platform/",{"text":422,"config":423},"GitLabを選ぶ理由",{"href":88,"dataGaName":424,"dataGaLocation":399},"Why GitLab?",{"freeTrial":426,"mobileIcon":430,"desktopIcon":435},{"text":48,"config":427},{"href":428,"dataGaName":51,"dataGaLocation":429},"https://gitlab.com/-/trials/new/","nav",{"altText":431,"config":432},"GitLabアイコン",{"src":433,"dataGaName":434,"dataGaLocation":429},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":431,"config":436},{"src":437,"dataGaName":434,"dataGaLocation":429},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"freeTrial":439,"mobileIcon":443,"desktopIcon":445},{"text":440,"config":441},"GitLab Duoの詳細について",{"href":80,"dataGaName":442,"dataGaLocation":429},"gitlab duo",{"altText":431,"config":444},{"src":433,"dataGaName":434,"dataGaLocation":429},{"altText":431,"config":446},{"src":437,"dataGaName":434,"dataGaLocation":429},"content:shared:ja-jp:main-navigation.yml","Main Navigation","shared/ja-jp/main-navigation.yml","shared/ja-jp/main-navigation",{"_path":452,"_dir":40,"_draft":6,"_partial":6,"_locale":7,"title":453,"button":454,"config":459,"_id":461,"_type":32,"_source":34,"_file":462,"_stem":463,"_extension":37},"/shared/ja-jp/banner","GitLab Duo Agent Platformがパブリックベータ版で利用可能になりました！",{"text":455,"config":456},"ベータ版を試す",{"href":457,"dataGaName":458,"dataGaLocation":46},"/ja-jp/gitlab-duo/agent-platform/","duo banner",{"layout":460},"release","content:shared:ja-jp:banner.yml","shared/ja-jp/banner.yml","shared/ja-jp/banner",{"_path":465,"_dir":40,"_draft":6,"_partial":6,"_locale":7,"data":466,"_id":670,"_type":32,"title":671,"_source":34,"_file":672,"_stem":673,"_extension":37},"/shared/ja-jp/main-footer",{"text":467,"source":468,"edit":474,"contribute":479,"config":484,"items":489,"minimal":662},"GitはSoftware Freedom Conservancyの商標です。当社は「GitLab」をライセンスに基づいて使用しています",{"text":469,"config":470},"ページのソースを表示",{"href":471,"dataGaName":472,"dataGaLocation":473},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":475,"config":476},"このページを編集",{"href":477,"dataGaName":478,"dataGaLocation":473},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":480,"config":481},"ご協力をお願いします",{"href":482,"dataGaName":483,"dataGaLocation":473},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":485,"facebook":486,"youtube":487,"linkedin":488},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[490,513,567,599,634],{"title":64,"links":491,"subMenu":496},[492],{"text":493,"config":494},"DevSecOpsプラットフォーム",{"href":73,"dataGaName":495,"dataGaLocation":473},"devsecops platform",[497],{"title":205,"links":498},[499,503,508],{"text":500,"config":501},"プランの表示",{"href":207,"dataGaName":502,"dataGaLocation":473},"view plans",{"text":504,"config":505},"Premiumを選ぶ理由",{"href":506,"dataGaName":507,"dataGaLocation":473},"/ja-jp/pricing/premium/","why premium",{"text":509,"config":510},"Ultimateを選ぶ理由",{"href":511,"dataGaName":512,"dataGaLocation":473},"/ja-jp/pricing/ultimate/","why ultimate",{"title":514,"links":515},"ソリューション",[516,521,524,526,531,536,540,543,546,551,553,555,557,562],{"text":517,"config":518},"デジタルトランスフォーメーション",{"href":519,"dataGaName":520,"dataGaLocation":473},"/ja-jp/topics/digital-transformation/","digital transformation",{"text":522,"config":523},"セキュリティとコンプライアンス",{"href":147,"dataGaName":154,"dataGaLocation":473},{"text":139,"config":525},{"href":122,"dataGaName":123,"dataGaLocation":473},{"text":527,"config":528},"アジャイル開発",{"href":529,"dataGaName":530,"dataGaLocation":473},"/ja-jp/solutions/agile-delivery/","agile delivery",{"text":532,"config":533},"クラウドトランスフォーメーション",{"href":534,"dataGaName":535,"dataGaLocation":473},"/ja-jp/topics/cloud-native/","cloud transformation",{"text":537,"config":538},"SCM",{"href":136,"dataGaName":539,"dataGaLocation":473},"source code management",{"text":126,"config":541},{"href":128,"dataGaName":542,"dataGaLocation":473},"continuous integration & delivery",{"text":177,"config":544},{"href":179,"dataGaName":545,"dataGaLocation":473},"value stream management",{"text":547,"config":548},"GitOps",{"href":549,"dataGaName":550,"dataGaLocation":473},"/ja-jp/solutions/gitops/","gitops",{"text":190,"config":552},{"href":192,"dataGaName":193,"dataGaLocation":473},{"text":195,"config":554},{"href":197,"dataGaName":198,"dataGaLocation":473},{"text":200,"config":556},{"href":202,"dataGaName":203,"dataGaLocation":473},{"text":558,"config":559},"教育",{"href":560,"dataGaName":561,"dataGaLocation":473},"/ja-jp/solutions/education/","education",{"text":563,"config":564},"金融サービス",{"href":565,"dataGaName":566,"dataGaLocation":473},"/ja-jp/solutions/finance/","financial services",{"title":210,"links":568},[569,571,573,575,578,580,583,585,587,589,591,593,595,597],{"text":222,"config":570},{"href":224,"dataGaName":225,"dataGaLocation":473},{"text":227,"config":572},{"href":229,"dataGaName":230,"dataGaLocation":473},{"text":232,"config":574},{"href":234,"dataGaName":235,"dataGaLocation":473},{"text":237,"config":576},{"href":239,"dataGaName":577,"dataGaLocation":473},"docs",{"text":260,"config":579},{"href":262,"dataGaName":5},{"text":581,"config":582},"お客様の成功事例",{"href":257,"dataGaLocation":473},{"text":255,"config":584},{"href":257,"dataGaName":258,"dataGaLocation":473},{"text":264,"config":586},{"href":266,"dataGaName":267,"dataGaLocation":473},{"text":277,"config":588},{"href":279,"dataGaName":280,"dataGaLocation":473},{"text":269,"config":590},{"href":271,"dataGaName":272,"dataGaLocation":473},{"text":282,"config":592},{"href":284,"dataGaName":25,"dataGaLocation":473},{"text":286,"config":594},{"href":288,"dataGaName":289,"dataGaLocation":473},{"text":291,"config":596},{"href":293,"dataGaName":294,"dataGaLocation":473},{"text":296,"config":598},{"href":298,"dataGaName":299,"dataGaLocation":473},{"title":600,"links":601},"Company",[602,604,606,608,610,612,614,618,623,625,627,629],{"text":321,"config":603},{"href":323,"dataGaName":316,"dataGaLocation":473},{"text":326,"config":605},{"href":328,"dataGaName":329,"dataGaLocation":473},{"text":334,"config":607},{"href":336,"dataGaName":337,"dataGaLocation":473},{"text":339,"config":609},{"href":341,"dataGaName":342,"dataGaLocation":473},{"text":344,"config":611},{"href":346,"dataGaName":347,"dataGaLocation":473},{"text":349,"config":613},{"href":351,"dataGaName":352,"dataGaLocation":473},{"text":615,"config":616},"Sustainability",{"href":617,"dataGaName":615,"dataGaLocation":473},"/sustainability/",{"text":619,"config":620},"ダイバーシティ、インクルージョン、ビロンギング（DIB）",{"href":621,"dataGaName":622,"dataGaLocation":473},"/ja-jp/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":354,"config":624},{"href":356,"dataGaName":357,"dataGaLocation":473},{"text":364,"config":626},{"href":366,"dataGaName":367,"dataGaLocation":473},{"text":369,"config":628},{"href":371,"dataGaName":372,"dataGaLocation":473},{"text":630,"config":631},"現代奴隷制の透明性に関する声明",{"href":632,"dataGaName":633,"dataGaLocation":473},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":53,"links":635},[636,638,640,642,647,652,657],{"text":53,"config":637},{"href":55,"dataGaName":56,"dataGaLocation":473},{"text":382,"config":639},{"href":384,"dataGaName":385,"dataGaLocation":473},{"text":387,"config":641},{"href":389,"dataGaName":390,"dataGaLocation":473},{"text":643,"config":644},"ステータス",{"href":645,"dataGaName":646,"dataGaLocation":473},"https://status.gitlab.com/","status",{"text":648,"config":649},"利用規約",{"href":650,"dataGaName":651,"dataGaLocation":473},"/terms/","terms of use",{"text":653,"config":654},"プライバシーに関する声明",{"href":655,"dataGaName":656,"dataGaLocation":473},"/ja-jp/privacy/","privacy statement",{"text":658,"config":659},"Cookieの設定",{"dataGaName":660,"dataGaLocation":473,"id":661,"isOneTrustButton":29},"cookie preferences","ot-sdk-btn",{"items":663},[664,666,668],{"text":648,"config":665},{"href":650,"dataGaName":651,"dataGaLocation":473},{"text":653,"config":667},{"href":655,"dataGaName":656,"dataGaLocation":473},{"text":658,"config":669},{"dataGaName":660,"dataGaLocation":473,"id":661,"isOneTrustButton":29},"content:shared:ja-jp:main-footer.yml","Main Footer","shared/ja-jp/main-footer.yml","shared/ja-jp/main-footer",{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"seo":675,"content":676,"config":679,"_id":31,"_type":32,"title":33,"_source":34,"_file":35,"_stem":36,"_extension":37},{"title":9,"description":10,"ogTitle":9,"ogDescription":10,"noIndex":6,"ogImage":11,"ogUrl":12,"ogSiteName":13,"ogType":14,"canonicalUrls":12,"schema":15},{"title":9,"description":10,"authors":677,"heroImage":11,"date":19,"body":20,"category":21,"tags":678,"updatedDate":26},[18],[23,24,25],{"slug":28,"featured":29,"template":30},[681],{"_path":682,"_dir":683,"_draft":6,"_partial":6,"_locale":7,"content":684,"config":688,"_id":690,"_type":32,"title":18,"_source":34,"_file":691,"_stem":692,"_extension":37},"/en-us/blog/authors/christian-couder","authors",{"name":18,"config":685},{"headshot":686,"ctfId":687},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663687/Blog/Author%20Headshots/chriscool-headshot.jpg","chriscool",{"template":689},"BlogAuthor","content:en-us:blog:authors:christian-couder.yml","en-us/blog/authors/christian-couder.yml","en-us/blog/authors/christian-couder",{"_path":694,"_dir":40,"_draft":6,"_partial":6,"_locale":7,"header":695,"eyebrow":696,"blurb":697,"button":698,"secondaryButton":702,"_id":704,"_type":32,"title":705,"_source":34,"_file":706,"_stem":707,"_extension":37},"/shared/ja-jp/next-steps","より優れたソフトウェアをより速く提供","フォーチュン100企業の50%以上がGitLabを信頼","インテリジェントなDevSecOpsプラットフォームで\n\n\nチームの可能性を広げましょう。\n",{"text":48,"config":699},{"href":700,"dataGaName":51,"dataGaLocation":701},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":53,"config":703},{"href":55,"dataGaName":56,"dataGaLocation":701},"content:shared:ja-jp:next-steps.yml","Next Steps","shared/ja-jp/next-steps.yml","shared/ja-jp/next-steps",1761814465064]