[{"data":1,"prerenderedAt":1331},["ShallowReactive",2],{"/ja-jp/blog/whats-new-in-git-2-47-0":3,"navigation-ja-jp":550,"banner-ja-jp":979,"footer-ja-jp":987,"blog-post-authors-ja-jp-Justin Tobler":1229,"blog-related-posts-ja-jp-whats-new-in-git-2-47-0":1244,"blog-promotions-ja-jp":1268,"next-steps-ja-jp":1322},{"id":4,"title":5,"authors":6,"body":8,"category":528,"date":529,"description":530,"extension":531,"externalUrl":532,"faq":532,"featured":533,"heroImage":534,"meta":535,"navigation":533,"path":536,"seo":537,"slug":542,"stem":543,"tags":544,"template":548,"updatedDate":532,"__hash__":549},"blogPosts/ja-jp/blog/whats-new-in-git-2-47-0.md","Git 2.47.0の新機能",[7],"Justin Tobler",{"type":9,"value":10,"toc":520},"minimark",[11,22,26,46,78,85,110,123,142,149,171,180,183,192,196,211,214,312,315,324,327,330,333,336,339,348,353,357,376,382,393,405,412,417,420,428,435,452,470,473,487,516],[12,13,14,15,21],"p",{},"Gitプロジェクトは、最近",[16,17,20],"a",{"href":18,"rel":19},"https://lore.kernel.org/git/xmqqa5fg9bsz.fsf@gitster.g/",[],"Gitバージョン2.47.0","をリリースしました。\nGitLabのGitチームやより広範なGitコミュニティからのコントリビュートを含む、本リリースの主なハイライトをご覧ください。",[23,24,25],"h2",{"id":25},"新しいグローバル構成オプション",[12,27,28,29,34,35,40,41,45],{},"Gitの最新リリースをチェックしている方であれば、",[16,30,33],{"href":31,"rel":32},"https://about.gitlab.com/blog/whats-new-in-git-2-45-0/",[],"Gitバージョン2.45","より新たに提供開始された「reftable」参照バックエンドについてご存知かもしれません。詳しくは、『",[16,36,39],{"href":37,"rel":38},"https://about.gitlab.com/blog/a-beginners-guide-to-the-git-reftable-format/",[],"Git reftableフォーマットの入門ガイド","』をご確認ください。これまでは、「reftable」フォーマットを使用してリポジトリを初期化するには、次のようにgit-init(1)コマンドに",[42,43,44],"code",{},"--ref-format","オプションを付けて実行する必要がありました。",[47,48,53],"pre",{"className":49,"code":50,"language":51,"meta":52,"style":52},"language-sh shiki shiki-themes github-light","$ git init --ref-format reftable\n","sh","",[42,54,55],{"__ignoreMap":52},[56,57,60,64,68,71,75],"span",{"class":58,"line":59},"line",1,[56,61,63],{"class":62},"s7eDp","$",[56,65,67],{"class":66},"sYBdl"," git",[56,69,70],{"class":66}," init",[56,72,74],{"class":73},"sYu0t"," --ref-format",[56,76,77],{"class":66}," reftable\n",[12,79,80,81,84],{},"Git 2.47のリリースでは、",[42,82,83],{},"init.defaultRefFormat","という設定オプションが追加され、リポジトリを初期化する際にどの参照バックエンドを使用するかをGitに指示できるようになりました。このオプションを使用することで、デフォルトの「files」バックエンドを上書きし、「reftable」バックエンドを利用できるようになります。設定するには、以下のコマンドを実行します",[47,86,88],{"className":49,"code":87,"language":51,"meta":52,"style":52},"$ git config set --global init.defaultRefFormat reftable\n",[42,89,90],{"__ignoreMap":52},[56,91,92,94,96,99,102,105,108],{"class":58,"line":59},[56,93,63],{"class":62},[56,95,67],{"class":66},[56,97,98],{"class":66}," config",[56,100,101],{"class":66}," set",[56,103,104],{"class":73}," --global",[56,106,107],{"class":66}," init.defaultRefFormat",[56,109,77],{"class":66},[12,111,112,113,118,119,122],{},"一部の方はご存知かもしれませんが、Gitリポジトリで使用されるオブジェクトのハッシュ形式も設定可能です。デフォルトでは、リポジトリはSHA-1オブジェクト形式を使用するように初期化されますが、SHA-256形式というより安全で将来性のある代替案もあります。詳しくは、",[16,114,117],{"href":115,"rel":116},"https://about.gitlab.com/blog/sha256-support-in-gitaly/#what-is-sha-256%3F",[],"GitalyにおけるSHA-256のサポートに関する過去のブログ記事","でご確認いただけます。SHA-256リポジトリは、git-init(1)に",[42,120,121],{},"--object-format","オプションを指定することで作成できます。",[47,124,126],{"className":49,"code":125,"language":51,"meta":52,"style":52},"$ git init --object-format sha256\n",[42,127,128],{"__ignoreMap":52},[56,129,130,132,134,136,139],{"class":58,"line":59},[56,131,63],{"class":62},[56,133,67],{"class":66},[56,135,70],{"class":66},[56,137,138],{"class":73}," --object-format",[56,140,141],{"class":66}," sha256\n",[12,143,144,145,148],{},"このGitのリリースでは、別の設定オプションとして、",[42,146,147],{},"init.defaultObjectFormat","が追加されました。このオプションは、リポジトリを初期化する際に、どのオブジェクト形式をデフォルトで使用するかをGitに指示するものです。以下のコマンドで設定できます。",[47,150,152],{"className":49,"code":151,"language":51,"meta":52,"style":52},"$ git config set --global init.defaultObjectFormat sha256\n",[42,153,154],{"__ignoreMap":52},[56,155,156,158,160,162,164,166,169],{"class":58,"line":59},[56,157,63],{"class":62},[56,159,67],{"class":66},[56,161,98],{"class":66},[56,163,101],{"class":66},[56,165,104],{"class":73},[56,167,168],{"class":66}," init.defaultObjectFormat",[56,170,141],{"class":66},[12,172,173,174,179],{},"注意点として、SHA-256リポジトリはSHA-1リポジトリと互換性がなく、すべてのフォージがSHA-256リポジトリのホスティングをサポートしているわけではありません。先日GitLabが発表した",[16,175,178],{"href":176,"rel":177},"https://about.gitlab.com/blog/gitlab-now-supports-sha256-repositories/",[],"SHA-256リポジトリの実験的サポート","をお試しになれます。",[12,181,182],{},"これらのオプションを使うことで、すぐにこれらのリポジトリ機能を使用できるようになり、新しいリポジトリを初期化するたびに形式について検討せずに済みます。",[12,184,185,186,191],{},"このプロジェクトは",[16,187,190],{"href":188,"rel":189},"https://gitlab.com/pks-gitlab",[],"Patrick Steinhardt","が主導しました。",[23,193,195],{"id":194},"git-refs1のサブコマンド","git-refs(1)のサブコマンド",[12,197,198,199,204,205,210],{},"前回のGitリリースでは、リポジトリ内の参照への低レベルアクセスを可能にするコマンド「",[16,200,203],{"href":201,"rel":202},"https://git-scm.com/docs/git-refs",[],"git-refs(1)","」が導入されました。このコマンドには、参照バックエンド間での変換を行う「migrate」サブコマンドが含まれていました。今回のリリースでは、新たに「verify」サブコマンドが追加され、参照データベースの整合性を確認できるようになりました。リポジトリの整合性を確認する際には、「",[16,206,209],{"href":207,"rel":208},"https://git-scm.com/docs/git-fsck",[],"git-fsck(1)","」を実行するケースが多々あります。",[12,212,213],{},"しかし、このコマンドはリポジトリの参照データベースを明示的に検証するわけではありません。特に「reftable」というバイナリ形式の参照形式が導入されたことで、手動での検証が難しくなり、このギャップを埋めるツールの必要性が増しています。例として、無効な参照を設定したリポジトリを作成して検証してみましょう。",[47,215,217],{"className":49,"code":216,"language":51,"meta":52,"style":52},"# The \"files\" backend is used so we can easily create an invalid reference.\n$ git init --ref-format files\n$ git commit --allow-empty -m \"init\"\n# A lone '@' is not a valid reference name.\n$ cp .git/refs/heads/main .git/refs/heads/@\n$ git refs verify\nerror: refs/heads/@: badRefName: invalid refname format\n",[42,218,219,225,239,258,264,278,291],{"__ignoreMap":52},[56,220,221],{"class":58,"line":59},[56,222,224],{"class":223},"sAwPA","# The \"files\" backend is used so we can easily create an invalid reference.\n",[56,226,228,230,232,234,236],{"class":58,"line":227},2,[56,229,63],{"class":62},[56,231,67],{"class":66},[56,233,70],{"class":66},[56,235,74],{"class":73},[56,237,238],{"class":66}," files\n",[56,240,242,244,246,249,252,255],{"class":58,"line":241},3,[56,243,63],{"class":62},[56,245,67],{"class":66},[56,247,248],{"class":66}," commit",[56,250,251],{"class":73}," --allow-empty",[56,253,254],{"class":73}," -m",[56,256,257],{"class":66}," \"init\"\n",[56,259,261],{"class":58,"line":260},4,[56,262,263],{"class":223},"# A lone '@' is not a valid reference name.\n",[56,265,267,269,272,275],{"class":58,"line":266},5,[56,268,63],{"class":62},[56,270,271],{"class":66}," cp",[56,273,274],{"class":66}," .git/refs/heads/main",[56,276,277],{"class":66}," .git/refs/heads/@\n",[56,279,281,283,285,288],{"class":58,"line":280},6,[56,282,63],{"class":62},[56,284,67],{"class":66},[56,286,287],{"class":66}," refs",[56,289,290],{"class":66}," verify\n",[56,292,294,297,300,303,306,309],{"class":58,"line":293},7,[56,295,296],{"class":62},"error:",[56,298,299],{"class":66}," refs/heads/@:",[56,301,302],{"class":66}," badRefName:",[56,304,305],{"class":66}," invalid",[56,307,308],{"class":66}," refname",[56,310,311],{"class":66}," format\n",[12,313,314],{},"この例では、無効な参照が検出され、エラーメッセージが表示されていることが確認できます。このツールはエンドユーザーが頻繁に使用するものではありませんが、サーバー側でリポジトリの整合性を保つために特に有用です。最終的には、このコマンドを「git-fsck(1)」に統合し、一貫したリポジトリ整合性チェックを行えるようにすることが目標です。",[12,316,317,318,323],{},"このプロジェクトは、Google Summer of Code（GSoC）の一環としてJialuo Sheによって主導されました。詳しくは、Jialuoの『",[16,319,322],{"href":320,"rel":321},"https://luolibrary.com/2024/08/25/GSoC-Final-Report/",[],"GsoCレポート","』をご参照ください。",[23,325,326],{"id":326},"reftableに関連した進行中の作業",[12,328,329],{},"今回のリリースでは、「reftable」バックエンドに関するいくつかのバグ修正も含まれています。その中でも特に興味深いのは、テーブルの圧縮プロセスに関するバグです。",[12,331,332],{},"ご存知でない方のために説明すると、reftableバックエンドはリポジトリ内のすべての参照の状態を保持する一連のテーブルで構成されています。各参照のアトミックな変更が行われるたびに、新しいテーブルが作成され、「tables.list」ファイルに記録されます。テーブルの数を減らすために、参照の更新後には、テーブルがファイルサイズに基づいた幾何数列に従って圧縮されます。テーブルが圧縮されると、「tables.list」ファイルも更新され、ディスク上のreftableの最新の状態が反映されます。",[12,334,335],{},"設計上、テーブルの書き込みと圧縮を同時に実行可能です。特定のタイミングでの同期は、ロックファイルを使用して制御されています。たとえば、圧縮が始まる際には、最初に「tables.list」ファイルが、安定した読み込みのためにロックされます。また、圧縮が必要なテーブルもロックされる場合があります。実際のテーブルの圧縮には時間がかかるため、ロックは途中で解除され、同時書き込みが実行されます。同時書き込みは、ロックされている圧縮対象のテーブルを変更してはいけないことを理解した上で行われるため、この処理は安全です。圧縮された新しいテーブルの書き込みが完了すると、再び「tables.list」ファイルがロックされ、今度は新しいテーブルの状態が反映されるように更新されます。",[12,337,338],{},"しかし、次のような問題があります。もし、テーブルの圧縮中に最初のロックが解除された後、リストファイルが更新される前に、参照の同時更新によって新しいテーブルが「tables.list」に書き込まれたらどうなるでしょうか？このような競合が起こると、圧縮プロセスでは新しいテーブルの存在が認識されず、新しいテーブルを反映しないまま「tables.list」ファイルを書き直してしまいます。これにより、同時に行われた更新が失われ、参照が想定どおりに追加、更新、削除されない結果になる可能性があります。",[12,340,341,342,347],{},"幸い、この問題は比較的簡単な手順で解決できます。圧縮プロセスで「tables.list」ファイルへの書き込みのためにロックが取得される際は、ファイルに更新があったかどうかを最初に確認してから、ファイルを再読み込みする必要があります。これにより、同時に行われたテーブルの更新も正しく反映されるようになります。こちらの修正について詳しくは、該当する",[16,343,346],{"href":344,"rel":345},"https://lore.kernel.org/git/cover.1722435214.git.ps@pks.im/",[],"メーリングリストのスレッド","をご参照ください。",[12,349,185,350,191],{},[16,351,190],{"href":188,"rel":352},[],[23,354,356],{"id":355},"git-maintenance1の修正","git-maintenance(1)の修正",[12,358,359,360,365,366,369,370,375],{},"リポジトリが大きくなるにつれて、適切なメンテナンスが重要になります。デフォルトでは、Gitは特定のオペレーション後に",[16,361,364],{"href":362,"rel":363},"https://git-scm.com/docs/git-maintenance",[],"git-maintenance(1)","を実行することで、リポジトリの健全性を保ちます。その際、不要なメンテナンスが行われないようにするために、",[42,367,368],{},"--auto","オプションが指定されています。このオプションでは、定義されたヒューリスティック（経験則）を使用してメンテナンスタスクを実行するかどうかを決定します。このコマンドは、さまざまなメンテナンスタスクを実行するように設定できますが、デフォルトでは、ユーザーが通常の作業を続けられるように、",[16,371,374],{"href":372,"rel":373},"https://git-scm.com/docs/git-gc",[],"git-gc(1)","のみがバックグラウンドで実行されるようになっています。",[12,377,378,379,381],{},"この動作は通常、期待どおりに機能しますが、デフォルト以外のメンテナンスタスクを実行するように設定されている場合、設定されたメンテナンスタスクはフォアグラウンドで実行され、最初のメンテナンスプロセスはすべてのタスクが完了するまで終了しません。唯一「gc」タスクだけが期待どおりにバックグラウンドで実行されます。この原因は、git-gc(1)が",[42,380,368],{},"オプションで実行された際に、誤ってプロセスをデタッチしていたこと、また、ほかのメンテナンスタスクがそのような機能を持っていなかったことであると判明しました。この問題により、一部のGitコマンドが自動メンテナンスの完了を待機する必要があり、コマンドの実行速度が低下する可能性がありました。",[12,383,384,385,388,389,347],{},"今回のリリースでは、git-maintenance(1)に",[42,386,387],{},"--detach","オプションが追加され、個々のタスクではなくgit-maintenance(1)全体のプロセスをバックグラウンドで実行できるようになったことで、この問題が解消されました。また、Gitが実行する自動メンテナンスもこの新しいオプションを使うように更新されています。こちらの修正について詳しくは、",[16,390,346],{"href":391,"rel":392},"https://lore.kernel.org/git/cover.1723533091.git.ps@pks.im/",[],[12,394,395,396,401,402,404],{},"前述したように、自動メンテナンスでは、特定のメンテナンス操作を実行すべきかどうかを判断するために一連のヒューリスティックが使用されます。しかし残念なことに、「files」参照バックエンドでは、",[16,397,400],{"href":398,"rel":399},"https://git-scm.com/docs/git-pack-refs",[],"git-pack-refs(1)","が",[42,403,368],{},"オプションで実行された場合、このようなヒューリスティックが存在せず、疎な参照が必ず「packed-refs」ファイルにパック化されてしまいます。多くの参照を持つリポジトリでは、「packed-refs」ファイルの書き換えに時間がかかることがあります。",[12,406,407,408,347],{},"今回のリリースでは、「files」バックエンドで疎な参照をパック化するかどうかを決定するヒューリスティックも導入されました。このヒューリスティックは、既存の「packed-refs」ファイルのサイズとリポジトリ内の疎な参照の数を考慮します。「packed-refs」ファイルが大きくなるほど、参照のパック化が実行される前に許容される疎な参照の数のしきい値も上がります。これにより、「files」バックエンドでの参照のパック化をやや抑制しつつ、適切にリポジトリがメンテナンスされた状態を保てます。詳しくは、",[16,409,346],{"href":410,"rel":411},"https://lore.kernel.org/git/cover.1725280479.git.ps@pks.im/",[],[12,413,185,414,191],{},[16,415,190],{"href":188,"rel":416},[],[23,418,419],{"id":419},"コードリファクタリングと保守性の向上",[12,421,422,423,347],{},"機能の変更に加えて、コードリファクタリングやクリーンアップも進められています。これらの改善は、プロジェクトの内部コンポーネントをライブラリ化するという長期的な目標にも寄与するという点でも重要です。ライブラリ化に関する最新のアップデートについては、",[16,424,427],{"href":425,"rel":426},"https://lore.kernel.org/git/eoy2sjhnul57g6crprxi3etgeuacjmgxpl4yllstih7woyuebm@bd62ib3fi2ju/",[],"こちらのスレッド",[12,429,430,431,434],{},"メモリリークを解決することも、求められていた改善事項でした。Gitプロジェクトには多くのメモリリークが存在しますが、通常Gitプロセスは短時間しか動作せず、システムによるクリーンアップが後から行われるため、大きな問題が生じることはあまりありません。しかし、ライブラリ化を進める上では、この問題に対処する必要があります。リークサニタイザを使ってプロジェクト内のテストをコンパイルし、リークを検出することはできますが、既存のリークが存在しているために、新しい変更が新たなリークを引き起こしていないかを検証し、それを阻止するのは難しい状況でした。現在、プロジェクト内の既存のテストで検出されたすべてのメモリリークを修正する取り組みが進められています。リークのないテストは",[42,432,433],{},"TEST_PASSES_SANITIZE_LEAK=true","とマークされ、今後もリークが発生しないことが想定されます。今回のリリース以前は、プロジェクトにメモリリークを含むテストファイルが223件ありましたが、今回のリリースでは60件にまで減少しました。",[12,436,437,438,441,442,444,445,447,448,451],{},"もう1つの取り組みとして、プロジェクト全体でグローバル変数の使用を減らす作業が進められています。その中でも特に問題視されているのが",[42,439,440],{},"the_repository","というグローバル変数で、これはオペレーション中のリポジトリの状態を保持し、プロジェクト内のさまざまな箇所で参照されています。今回のリリースでは、この",[42,443,440],{},"の使用を減らし、必要な場所に直接値を渡すようにするための複数のパッチが導入されました。まだ",[42,446,440],{},"に依存しているGitプロジェクトのサブシステムでは、このグローバル変数を使用できるようにするために",[42,449,450],{},"USE_THE_REPOSITORY_VARIABLE","が定義されています。現在ではrefs、config、pathのサブシステムはこの変数に依存しなくなりました。",[12,453,454,455,460,461,466,467,191],{},"このプロジェクトは、",[16,456,459],{"href":457,"rel":458},"https://gitlab.com/jcaigitlab",[],"John Cai","と",[16,462,465],{"href":463,"rel":464},"https://github.com/peff",[],"Jeff King氏","の協力のもと、",[16,468,190],{"href":188,"rel":469},[],[23,471,472],{"id":472},"補足情報",[12,474,475,476,480,481,486],{},"このブログ記事では、GitLabや広範なGitコミュニティによる最新リリースへのコントリビュートの一部をご紹介しました。Gitプロジェクトの",[16,477,479],{"href":18,"rel":478},[],"公式リリースのお知らせ","では、さらに詳しい情報をご覧になれます。また、",[16,482,485],{"href":483,"rel":484},"https://about.gitlab.com/blog/tags/git/",[],"過去のGitリリースに関するブログ記事","では、GitLabチームメンバーによるこれまでの主要なコントリビュートをご紹介しています。",[488,489,490,498,504,509],"ul",{},[491,492,493],"li",{},[16,494,497],{"href":495,"rel":496},"https://about.gitlab.com/blog/whats-new-in-git-2-46-0/",[],"Git 2.46.0の新機能",[491,499,500],{},[16,501,503],{"href":31,"rel":502},[],"Git 2.45.0の新機能",[491,505,506],{},[16,507,39],{"href":37,"rel":508},[],[491,510,511],{},[16,512,515],{"href":513,"rel":514},"https://about.gitlab.com/blog/git-pull-vs-git-fetch-whats-the-difference/",[],"git fetchとgit pullコマンドの違いとは？",[517,518,519],"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 .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}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);}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}",{"title":52,"searchDepth":227,"depth":227,"links":521},[522,523,524,525,526,527],{"id":25,"depth":227,"text":25},{"id":194,"depth":227,"text":195},{"id":326,"depth":227,"text":326},{"id":355,"depth":227,"text":356},{"id":419,"depth":227,"text":419},{"id":472,"depth":227,"text":472},"open-source","2024-10-07","Gitの最新バージョンについてご紹介します。新たに追加されたグローバル変数を使用すれば、参照やオブジェクトのハッシュの形式を設定できます。GitLabのGitチームと、より広範なGitコミュニティによるコントリビュートをご確認ください。","md",null,true,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663691/Blog/Hero%20Images/AdobeStock_752438815.jpg",{},"/ja-jp/blog/whats-new-in-git-2-47-0",{"title":5,"description":530,"ogTitle":5,"ogDescription":530,"noIndex":538,"ogImage":534,"ogUrl":539,"ogSiteName":540,"ogType":541,"canonicalUrls":539},false,"https://about.gitlab.com/blog/whats-new-in-git-2-47-0","https://about.gitlab.com","article","whats-new-in-git-2-47-0","ja-jp/blog/whats-new-in-git-2-47-0",[545,546,547],"git","open source","community","BlogPost","6Zl06tGkWc8M94SOpBKt6gdBz8aiLsLDW2pD795Qd2A",{"logo":551,"freeTrial":556,"sales":561,"login":566,"items":571,"search":899,"minimal":932,"duo":949,"switchNav":958,"pricingDeployment":969},{"config":552},{"href":553,"dataGaName":554,"dataGaLocation":555},"/ja-jp/","gitlab logo","header",{"text":557,"config":558},"無料トライアルを開始",{"href":559,"dataGaName":560,"dataGaLocation":555},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp&glm_content=default-saas-trial/","free trial",{"text":562,"config":563},"デモをリクエスト",{"href":564,"dataGaName":565,"dataGaLocation":555},"/ja-jp/sales/?contact-topic=request-demo","sales",{"text":567,"config":568},"サインイン",{"href":569,"dataGaName":570,"dataGaLocation":555},"https://gitlab.com/users/sign_in/","sign in",[572,601,703,708,821,877],{"text":573,"config":574,"menu":576},"プラットフォーム",{"dataNavLevelOne":575},"platform",{"type":577,"columns":578},"cards",[579,585,593],{"title":573,"description":580,"link":581},"DevSecOpsに特化したインテリジェントオーケストレーションプラットフォーム",{"text":582,"config":583},"プラットフォームの詳細はこちら",{"href":584,"dataGaName":575,"dataGaLocation":555},"/ja-jp/platform/",{"title":586,"description":587,"link":588},"GitLab Duo Agent Platform","ソフトウェアライフサイクル全体を支えるエージェント型AI",{"text":589,"config":590},"GitLab Duoのご紹介",{"href":591,"dataGaName":592,"dataGaLocation":555},"/ja-jp/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":594,"description":595,"link":596},"GitLabが選ばれる理由","エンタープライズがGitLabを選ぶ主な理由をご覧ください",{"text":597,"config":598},"詳細はこちら",{"href":599,"dataGaName":600,"dataGaLocation":555},"/ja-jp/why-gitlab/","why gitlab",{"text":602,"left":533,"config":603,"menu":605},"製品",{"dataNavLevelOne":604},"solutions",{"type":606,"link":607,"columns":611,"feature":682},"lists",{"text":608,"config":609},"すべてのソリューションを表示",{"href":610,"dataGaName":604,"dataGaLocation":555},"/ja-jp/solutions/",[612,637,660],{"title":613,"description":614,"link":615,"items":620},"自動化","CI/CDと自動化でデプロイを加速",{"config":616},{"icon":617,"href":618,"dataGaName":619,"dataGaLocation":555},"AutomatedCodeAlt","/ja-jp/solutions/delivery-automation/","automated software delivery",[621,625,628,633],{"text":622,"config":623},"CI/CD",{"href":624,"dataGaLocation":555,"dataGaName":622},"/ja-jp/solutions/continuous-integration/",{"text":586,"config":626},{"href":591,"dataGaLocation":555,"dataGaName":627},"gitlab duo agent platform - product menu",{"text":629,"config":630},"ソースコード管理",{"href":631,"dataGaLocation":555,"dataGaName":632},"/ja-jp/solutions/source-code-management/","Source Code Management",{"text":634,"config":635},"自動化されたソフトウェアデリバリー",{"href":618,"dataGaLocation":555,"dataGaName":636},"Automated software delivery",{"title":638,"description":639,"link":640,"items":645},"セキュリティ","セキュリティを犠牲にすることなくコード作成を高速化",{"config":641},{"href":642,"dataGaName":643,"dataGaLocation":555,"icon":644},"/ja-jp/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[646,650,655],{"text":647,"config":648},"アプリケーションセキュリティテスト",{"href":642,"dataGaName":649,"dataGaLocation":555},"Application security testing",{"text":651,"config":652},"ソフトウェアサプライチェーンセキュリティ",{"href":653,"dataGaLocation":555,"dataGaName":654},"/ja-jp/solutions/supply-chain/","Software supply chain security",{"text":656,"config":657},"ソフトウェアコンプライアンス",{"href":658,"dataGaName":659,"dataGaLocation":555},"/ja-jp/solutions/software-compliance/","software compliance",{"title":661,"link":662,"items":667},"測定",{"config":663},{"icon":664,"href":665,"dataGaName":666,"dataGaLocation":555},"DigitalTransformation","/ja-jp/solutions/visibility-measurement/","visibility and measurement",[668,672,677],{"text":669,"config":670},"可視性と測定",{"href":665,"dataGaLocation":555,"dataGaName":671},"Visibility and Measurement",{"text":673,"config":674},"バリューストリーム管理",{"href":675,"dataGaLocation":555,"dataGaName":676},"/ja-jp/solutions/value-stream-management/","Value Stream Management",{"text":678,"config":679},"分析とインサイト",{"href":680,"dataGaLocation":555,"dataGaName":681},"/ja-jp/solutions/analytics-and-insights/","Analytics and insights",{"title":683,"type":606,"items":684},"GitLabが活躍する場所",[685,691,697],{"text":686,"config":687},"大企業",{"icon":688,"href":689,"dataGaLocation":555,"dataGaName":690},"Building","/ja-jp/enterprise/","enterprise",{"text":692,"config":693},"スモールビジネス",{"icon":694,"href":695,"dataGaLocation":555,"dataGaName":696},"Work","/ja-jp/small-business/","small business",{"text":698,"config":699},"公共部門",{"icon":700,"href":701,"dataGaLocation":555,"dataGaName":702},"Organization","/ja-jp/solutions/public-sector/","public sector",{"text":704,"config":705},"価格",{"href":706,"dataGaName":707,"dataGaLocation":555,"dataNavLevelOne":707},"/ja-jp/pricing/","pricing",{"text":709,"config":710,"menu":712},"関連リソース",{"dataNavLevelOne":711},"resources",{"type":606,"link":713,"columns":717,"feature":810},{"text":714,"config":715},"すべてのリソースを表示",{"href":716,"dataGaName":711,"dataGaLocation":555},"/ja-jp/resources/",[718,751,778],{"title":719,"items":720},"はじめに",[721,726,731,736,741,746],{"text":722,"config":723},"インストール",{"href":724,"dataGaName":725,"dataGaLocation":555},"/ja-jp/install/","install",{"text":727,"config":728},"クイックスタートガイド",{"href":729,"dataGaName":730,"dataGaLocation":555},"/ja-jp/get-started/","quick setup checklists",{"text":732,"config":733},"学ぶ",{"href":734,"dataGaLocation":555,"dataGaName":735},"https://university.gitlab.com/","learn",{"text":737,"config":738},"製品ドキュメント",{"href":739,"dataGaName":740,"dataGaLocation":555},"https://docs.gitlab.com/ja-jp/","product documentation",{"text":742,"config":743},"ベストプラクティスビデオ",{"href":744,"dataGaName":745,"dataGaLocation":555},"/ja-jp/getting-started-videos/","best practice videos",{"text":747,"config":748},"インテグレーション",{"href":749,"dataGaName":750,"dataGaLocation":555},"/ja-jp/integrations/","integrations",{"title":752,"items":753},"検索する",[754,759,764,769,773],{"text":755,"config":756},"お客様成功事例",{"href":757,"dataGaName":758,"dataGaLocation":555},"/ja-jp/customers/","customer success stories",{"text":760,"config":761},"ブログ",{"href":762,"dataGaName":763,"dataGaLocation":555},"/ja-jp/blog/","blog",{"text":765,"config":766},"Demo Hub",{"href":767,"dataGaName":768,"dataGaLocation":555},"/ja-jp/demo-hub/","demo hub",{"text":770,"config":771},"The Source",{"href":772,"dataGaName":763,"dataGaLocation":555},"/ja-jp/the-source/",{"text":774,"config":775},"リモート",{"href":776,"dataGaName":777,"dataGaLocation":555},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":779,"items":780},"つなげる",[781,786,791,795,800,805],{"text":782,"config":783},"GitLabサービス",{"href":784,"dataGaName":785,"dataGaLocation":555},"/ja-jp/services/","services",{"text":787,"config":788},"コントリビュート",{"href":789,"dataGaName":790,"dataGaLocation":555},"https://contributors.gitlab.com","contribute",{"text":792,"config":793},"コミュニティ",{"href":794,"dataGaName":547,"dataGaLocation":555},"/community/",{"text":796,"config":797},"フォーラム",{"href":798,"dataGaName":799,"dataGaLocation":555},"https://forum.gitlab.com/","forum",{"text":801,"config":802},"イベント",{"href":803,"dataGaName":804,"dataGaLocation":555},"/events/","events",{"text":806,"config":807},"パートナー",{"href":808,"dataGaName":809,"dataGaLocation":555},"/ja-jp/partners/","partners",{"config":811,"title":814,"text":815,"link":816},{"background":812,"textColor":813},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","GitLabの最新情報","最新の機能と改善点に関する情報をお届けします。",{"text":817,"config":818},"最新情報を読む",{"href":819,"dataGaName":820,"dataGaLocation":555},"/ja-jp/whats-new/","whats new",{"text":822,"config":823,"menu":825},"企業情報",{"dataNavLevelOne":824},"company",{"type":606,"columns":826},[827],{"items":828},[829,834,840,842,847,852,857,862,867,872],{"text":830,"config":831},"GitLabについて",{"href":832,"dataGaName":833,"dataGaLocation":555},"/ja-jp/company/","about",{"text":835,"config":836,"footerGa":839},"採用情報",{"href":837,"dataGaName":838,"dataGaLocation":555},"/jobs/","jobs",{"dataGaName":838},{"text":801,"config":841},{"href":803,"dataGaName":804,"dataGaLocation":555},{"text":843,"config":844},"経営陣",{"href":845,"dataGaName":846,"dataGaLocation":555},"/company/team/e-group/","leadership",{"text":848,"config":849},"ハンドブック",{"href":850,"dataGaName":851,"dataGaLocation":555},"https://handbook.gitlab.com/","handbook",{"text":853,"config":854},"投資家向け情報",{"href":855,"dataGaName":856,"dataGaLocation":555},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":858,"config":859},"トラストセンター",{"href":860,"dataGaName":861,"dataGaLocation":555},"/ja-jp/security/","trust center",{"text":863,"config":864},"AI Transparency Center",{"href":865,"dataGaName":866,"dataGaLocation":555},"/ja-jp/ai-transparency-center/","ai transparency center",{"text":868,"config":869},"ニュースレター",{"href":870,"dataGaName":871,"dataGaLocation":555},"/company/contact/#contact-forms","newsletter",{"text":873,"config":874},"プレス",{"href":875,"dataGaName":876,"dataGaLocation":555},"/press/","press",{"text":878,"config":879,"menu":880},"お問い合わせ",{"dataNavLevelOne":824},{"type":606,"columns":881},[882],{"items":883},[884,889,894],{"text":885,"config":886},"お問い合わせはこちら",{"href":887,"dataGaName":888,"dataGaLocation":555},"/ja-jp/sales/","talk to sales",{"text":890,"config":891},"サポートを受ける",{"href":892,"dataGaName":893,"dataGaLocation":555},"https://support.gitlab.com/hc/en-us","support portal",{"text":895,"config":896},"カスタマーポータル",{"href":897,"dataGaName":898,"dataGaLocation":555},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":900,"login":901,"suggestions":908},"閉じる",{"text":902,"link":903},"リポジトリとプロジェクトを検索するには、次にログインします",{"text":904,"config":905},"GitLab.com",{"href":569,"dataGaName":906,"dataGaLocation":907},"search login","search",{"text":909,"default":910},"提案",[911,913,918,920,924,928],{"text":586,"config":912},{"href":591,"dataGaName":586,"dataGaLocation":907},{"text":914,"config":915},"コード提案（AI）",{"href":916,"dataGaName":917,"dataGaLocation":907},"/ja-jp/solutions/code-suggestions/","Code Suggestions (AI)",{"text":622,"config":919},{"href":624,"dataGaName":622,"dataGaLocation":907},{"text":921,"config":922},"GitLab on AWS",{"href":923,"dataGaName":921,"dataGaLocation":907},"/ja-jp/partners/technology-partners/aws/",{"text":925,"config":926},"GitLab on Google Cloud",{"href":927,"dataGaName":925,"dataGaLocation":907},"/ja-jp/partners/technology-partners/google-cloud-platform/",{"text":929,"config":930},"GitLabを選ぶ理由",{"href":599,"dataGaName":931,"dataGaLocation":907},"Why GitLab?",{"freeTrial":933,"mobileIcon":937,"desktopIcon":942,"secondaryButton":945},{"text":557,"config":934},{"href":935,"dataGaName":560,"dataGaLocation":936},"https://gitlab.com/-/trials/new/","nav",{"altText":938,"config":939},"GitLabアイコン",{"src":940,"dataGaName":941,"dataGaLocation":936},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":938,"config":943},{"src":944,"dataGaName":941,"dataGaLocation":936},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":719,"config":946},{"href":947,"dataGaName":948,"dataGaLocation":936},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp/get-started/","get started",{"freeTrial":950,"mobileIcon":954,"desktopIcon":956},{"text":951,"config":952},"GitLab Duoの詳細について",{"href":591,"dataGaName":953,"dataGaLocation":936},"gitlab duo",{"altText":938,"config":955},{"src":940,"dataGaName":941,"dataGaLocation":936},{"altText":938,"config":957},{"src":944,"dataGaName":941,"dataGaLocation":936},{"button":959,"mobileIcon":964,"desktopIcon":966},{"text":960,"config":961},"/switch",{"href":962,"dataGaName":963,"dataGaLocation":936},"#contact","switch",{"altText":938,"config":965},{"src":940,"dataGaName":941,"dataGaLocation":936},{"altText":938,"config":967},{"src":968,"dataGaName":941,"dataGaLocation":936},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":970,"mobileIcon":975,"desktopIcon":977},{"text":971,"config":972},"料金ページに戻る",{"href":706,"dataGaName":973,"dataGaLocation":936,"icon":974},"back to pricing","GoBack",{"altText":938,"config":976},{"src":940,"dataGaName":941,"dataGaLocation":936},{"altText":938,"config":978},{"src":944,"dataGaName":941,"dataGaLocation":936},{"title":980,"button":981,"config":985},"GitLab Orbitが登場: AIエージェントのためのコンテキストレイヤー",{"text":597,"config":982},{"href":983,"dataGaName":984,"dataGaLocation":555},"/ja-jp/gitlab-orbit/","orbit",{"layout":986,"disabled":538},"release",{"data":988},{"text":989,"source":990,"edit":996,"contribute":1001,"config":1006,"items":1011,"minimal":1220},"GitはSoftware Freedom Conservancyの商標です。当社は「GitLab」をライセンスに基づいて使用しています",{"text":991,"config":992},"ページのソースを表示",{"href":993,"dataGaName":994,"dataGaLocation":995},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":997,"config":998},"このページを編集",{"href":999,"dataGaName":1000,"dataGaLocation":995},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":1002,"config":1003},"ご協力をお願いします",{"href":1004,"dataGaName":1005,"dataGaLocation":995},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":1007,"facebook":1008,"youtube":1009,"linkedin":1010},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[1012,1057,1110,1153,1187],{"title":704,"links":1013,"subMenu":1028},[1014,1018,1023],{"text":1015,"config":1016},"プランの表示",{"href":706,"dataGaName":1017,"dataGaLocation":995},"view plans",{"text":1019,"config":1020},"Premiumを選ぶ理由",{"href":1021,"dataGaName":1022,"dataGaLocation":995},"/ja-jp/pricing/premium/","why premium",{"text":1024,"config":1025},"Ultimateを選ぶ理由",{"href":1026,"dataGaName":1027,"dataGaLocation":995},"/ja-jp/pricing/ultimate/","why ultimate",[1029],{"title":878,"links":1030},[1031,1033,1035,1037,1042,1047,1052],{"text":878,"config":1032},{"href":887,"dataGaName":565,"dataGaLocation":995},{"text":890,"config":1034},{"href":892,"dataGaName":893,"dataGaLocation":995},{"text":895,"config":1036},{"href":897,"dataGaName":898,"dataGaLocation":995},{"text":1038,"config":1039},"ステータス",{"href":1040,"dataGaName":1041,"dataGaLocation":995},"https://status.gitlab.com/","status",{"text":1043,"config":1044},"利用規約",{"href":1045,"dataGaName":1046,"dataGaLocation":995},"/terms/","terms of use",{"text":1048,"config":1049},"プライバシーに関する声明",{"href":1050,"dataGaName":1051,"dataGaLocation":995},"/ja-jp/privacy/","privacy statement",{"text":1053,"config":1054},"Cookie 優先設定",{"dataGaName":1055,"dataGaLocation":995,"id":1056,"isOneTrustButton":533},"cookie preferences","ot-sdk-btn",{"title":602,"links":1058,"subMenu":1067},[1059,1063],{"text":1060,"config":1061},"DevSecOpsプラットフォーム",{"href":584,"dataGaName":1062,"dataGaLocation":995},"devsecops platform",{"text":1064,"config":1065},"AI支援開発",{"href":591,"dataGaName":1066,"dataGaLocation":995},"ai-assisted development",[1068],{"title":1069,"links":1070},"トピック",[1071,1075,1080,1085,1090,1095,1100,1105],{"text":622,"config":1072},{"href":1073,"dataGaName":1074,"dataGaLocation":995},"/ja-jp/topics/ci-cd/","cicd",{"text":1076,"config":1077},"GitOps",{"href":1078,"dataGaName":1079,"dataGaLocation":995},"/ja-jp/topics/gitops/","gitops",{"text":1081,"config":1082},"DevOps",{"href":1083,"dataGaName":1084,"dataGaLocation":995},"/ja-jp/topics/devops/","devops",{"text":1086,"config":1087},"バージョン管理",{"href":1088,"dataGaName":1089,"dataGaLocation":995},"/ja-jp/topics/version-control/","version control",{"text":1091,"config":1092},"DevSecOps",{"href":1093,"dataGaName":1094,"dataGaLocation":995},"/ja-jp/topics/devsecops/","devsecops",{"text":1096,"config":1097},"クラウドネイティブ",{"href":1098,"dataGaName":1099,"dataGaLocation":995},"/ja-jp/topics/cloud-native/","cloud native",{"text":1101,"config":1102},"コーディングのためのAI",{"href":1103,"dataGaName":1104,"dataGaLocation":995},"/ja-jp/topics/devops/ai-for-coding/","ai for coding",{"text":1106,"config":1107},"エージェント型AI",{"href":1108,"dataGaName":1109,"dataGaLocation":995},"/ja-jp/topics/agentic-ai/","agentic ai",{"title":1111,"links":1112},"ソリューション",[1113,1116,1118,1123,1127,1130,1133,1136,1138,1140,1143,1148],{"text":647,"config":1114},{"href":642,"dataGaName":1115,"dataGaLocation":995},"Application Security Testing",{"text":634,"config":1117},{"href":618,"dataGaName":619,"dataGaLocation":995},{"text":1119,"config":1120},"アジャイル開発",{"href":1121,"dataGaName":1122,"dataGaLocation":995},"/ja-jp/solutions/agile-delivery/","agile delivery",{"text":1124,"config":1125},"SCM",{"href":631,"dataGaName":1126,"dataGaLocation":995},"source code management",{"text":622,"config":1128},{"href":624,"dataGaName":1129,"dataGaLocation":995},"continuous integration & delivery",{"text":673,"config":1131},{"href":675,"dataGaName":1132,"dataGaLocation":995},"value stream management",{"text":1076,"config":1134},{"href":1135,"dataGaName":1079,"dataGaLocation":995},"/ja-jp/solutions/gitops/",{"text":686,"config":1137},{"href":689,"dataGaName":690,"dataGaLocation":995},{"text":692,"config":1139},{"href":695,"dataGaName":696,"dataGaLocation":995},{"text":1141,"config":1142},"公共機関",{"href":701,"dataGaName":702,"dataGaLocation":995},{"text":1144,"config":1145},"教育",{"href":1146,"dataGaName":1147,"dataGaLocation":995},"/ja-jp/solutions/education/","education",{"text":1149,"config":1150},"金融サービス",{"href":1151,"dataGaName":1152,"dataGaLocation":995},"/ja-jp/solutions/finance/","financial services",{"title":1154,"links":1155},"リソース",[1156,1158,1160,1162,1166,1168,1171,1173,1175,1177,1179,1181,1183,1185],{"text":722,"config":1157},{"href":724,"dataGaName":725,"dataGaLocation":995},{"text":727,"config":1159},{"href":729,"dataGaName":730,"dataGaLocation":995},{"text":732,"config":1161},{"href":734,"dataGaName":735,"dataGaLocation":995},{"text":737,"config":1163},{"href":1164,"dataGaName":1165,"dataGaLocation":995},"https://docs.gitlab.com/ja-jp","docs",{"text":760,"config":1167},{"href":762,"dataGaName":763,"dataGaLocation":995},{"text":1169,"config":1170},"最新リリース",{"href":819,"dataGaName":820,"dataGaLocation":995},{"text":755,"config":1172},{"href":757,"dataGaName":758,"dataGaLocation":995},{"text":774,"config":1174},{"href":776,"dataGaName":777,"dataGaLocation":995},{"text":782,"config":1176},{"href":784,"dataGaName":785,"dataGaLocation":995},{"text":787,"config":1178},{"href":789,"dataGaName":790,"dataGaLocation":995},{"text":792,"config":1180},{"href":794,"dataGaName":547,"dataGaLocation":995},{"text":796,"config":1182},{"href":798,"dataGaName":799,"dataGaLocation":995},{"text":801,"config":1184},{"href":803,"dataGaName":804,"dataGaLocation":995},{"text":806,"config":1186},{"href":808,"dataGaName":809,"dataGaLocation":995},{"title":1188,"links":1189},"会社情報",[1190,1192,1194,1196,1198,1200,1204,1209,1211,1213,1215],{"text":830,"config":1191},{"href":832,"dataGaName":824,"dataGaLocation":995},{"text":835,"config":1193},{"href":837,"dataGaName":838,"dataGaLocation":995},{"text":843,"config":1195},{"href":845,"dataGaName":846,"dataGaLocation":995},{"text":848,"config":1197},{"href":850,"dataGaName":851,"dataGaLocation":995},{"text":853,"config":1199},{"href":855,"dataGaName":856,"dataGaLocation":995},{"text":1201,"config":1202},"Sustainability",{"href":1203,"dataGaName":1201,"dataGaLocation":995},"/sustainability/",{"text":1205,"config":1206},"ダイバーシティ、インクルージョン、ビロンギング（DIB）",{"href":1207,"dataGaName":1208,"dataGaLocation":995},"/ja-jp/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":858,"config":1210},{"href":860,"dataGaName":861,"dataGaLocation":995},{"text":868,"config":1212},{"href":870,"dataGaName":871,"dataGaLocation":995},{"text":873,"config":1214},{"href":875,"dataGaName":876,"dataGaLocation":995},{"text":1216,"config":1217},"現代奴隷制の透明性に関する声明",{"href":1218,"dataGaName":1219,"dataGaLocation":995},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1221},[1222,1224,1227],{"text":1043,"config":1223},{"href":1045,"dataGaName":1046,"dataGaLocation":995},{"text":1225,"config":1226},"Cookieの設定",{"dataGaName":1055,"dataGaLocation":995,"id":1056,"isOneTrustButton":533},{"text":1048,"config":1228},{"href":1050,"dataGaName":1051,"dataGaLocation":995},[1230],{"id":1231,"title":7,"body":532,"config":1232,"content":1234,"description":532,"extension":1238,"meta":1239,"navigation":533,"path":1240,"seo":1241,"stem":1242,"__hash__":1243},"blogAuthors/en-us/blog/authors/justin-tobler.yml",{"template":1233},"BlogAuthor",{"name":7,"config":1235},{"headshot":1236,"ctfId":1237},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664737/Blog/Author%20Headshots/james_tobler_headshot.png","5pnOIbNI1Sc5IFnReNHNtv","yml",{},"/en-us/blog/authors/justin-tobler",{},"en-us/blog/authors/justin-tobler","fZs0fJVrV3MQT0RHzrMvziLDriL7K4hf9Db4QlPsRvA",[1245,1253,1261],{"title":1246,"description":1247,"heroImage":1248,"category":528,"date":1249,"authors":1250,"slug":1252,"externalUrl":532},"GitLab AIハッカソン2026：受賞者発表","約7,000人の開発者がGitLab Duo Agent Platform上で600以上のAIエージェントとフローを構築したハッカソンの結果をご紹介。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1776457632/llddiylsgwuze0u1rjks.png","2026-04-22",[1251],"Nick Veenhof","gitlab-ai-hackathon-2026-meet-the-winners",{"title":1254,"description":1255,"heroImage":1256,"category":528,"date":1257,"authors":1258,"slug":1260,"externalUrl":532},"git mergeコマンドの基本を徹底解説","この記事では、git mergeコマンドについてコマンドの基本的な使い方からリクエストコードまで解説します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1754287290/averr2ecwl01q2f9lknf.jpg","2025-08-04",[1259],"GitLab Team","git-merge-command-overview",{"title":1262,"description":1263,"heroImage":1264,"category":528,"date":1265,"authors":1266,"slug":1267,"externalUrl":532},"オープンソースソフトウェア（OSS）とは？詳しく解説​","オープンソースの意味や、メリットとデメリットについて、分かりやすく解説します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1752720740/g9x8oi988xuhioglpczi.jpg","2025-07-17",[1259],"what-is-open-source",{"promotions":1269},[1270,1284,1296,1308],{"id":1271,"categories":1272,"header":1274,"text":1275,"button":1276,"image":1281},"ai-modernization",[1273],"ai","AIの真価、組織全体で発揮できていますか？","所要時間は5分以内です",{"text":1277,"config":1278},"AI成熟度スコアを確認する",{"href":1279,"dataGaName":1280,"dataGaLocation":763},"/ja-jp/assessments/ai-modernization-assessment/","modernization assessment",{"config":1282},{"src":1283},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1285,"categories":1286,"header":1288,"text":1275,"button":1289,"image":1293},"devops-modernization",[1287,1094],"product","単にツールを管理するだけでなく、イノベーションを提供していますか？",{"text":1290,"config":1291},"DevOps成熟度スコアを確認しましょう",{"href":1292,"dataGaName":1280,"dataGaLocation":763},"/ja-jp/assessments/devops-modernization-assessment/",{"config":1294},{"src":1295},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1297,"categories":1298,"header":1300,"text":1275,"button":1301,"image":1305},"security-modernization",[1299],"security","スピードのためにセキュリティを犠牲にしていませんか？",{"text":1302,"config":1303},"セキュリティ成熟度スコアを確認しましょう",{"href":1304,"dataGaName":1280,"dataGaLocation":763},"/ja-jp/assessments/security-modernization-assessment/",{"config":1306},{"src":1307},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1309,"paths":1310,"header":1313,"text":1314,"button":1315,"image":1320},"github-azure-migration",[1311,1312],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","チームはGitHubのAzure移行に対応できていますか？","GitHubはすでにAzureを基盤として再構築を進めています。それがあなたのチームにとって何を意味するのか、ご確認ください。",{"text":1316,"config":1317},"GitLabとGitHubの比較を見る",{"href":1318,"dataGaName":1319,"dataGaLocation":763},"/ja-jp/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1321},{"src":1295},{"header":1323,"blurb":1324,"button":1325,"secondaryButton":1329},"今すぐ開発をスピードアップ","DevSecOpsに特化したインテリジェントオーケストレーションプラットフォームで実現できることをご確認ください。\n",{"text":557,"config":1326},{"href":1327,"dataGaName":560,"dataGaLocation":1328},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/ja-jp/","feature",{"text":878,"config":1330},{"href":887,"dataGaName":565,"dataGaLocation":1328},1786803791429]