[{"data":1,"prerenderedAt":1712},["ShallowReactive",2],{"/ja-jp/blog/rebase-in-real-life":3,"navigation-ja-jp":941,"banner-ja-jp":1359,"footer-ja-jp":1368,"blog-post-authors-ja-jp-Toon Claes":1609,"blog-related-posts-ja-jp-rebase-in-real-life":1624,"blog-promotions-ja-jp":1650,"next-steps-ja-jp":1703},{"id":4,"title":5,"authors":6,"body":8,"category":919,"date":920,"description":921,"extension":922,"externalUrl":923,"featured":924,"heroImage":925,"meta":926,"navigation":74,"path":927,"seo":928,"slug":934,"stem":935,"tags":936,"template":939,"updatedDate":923,"__hash__":940},"blogPosts/ja-jp/blog/rebase-in-real-life.md","Git rebaseを実際の開発現場で活用する方法",[7],"Toon Claes",{"type":9,"value":10,"toc":911},"minimark",[11,26,31,39,224,227,231,234,237,293,311,361,368,371,374,377,397,403,411,414,420,430,439,505,509,512,527,554,574,577,661,668,797,803,823,842,845,848,887,907],[12,13,14,15,20,21,25],"p",{},"同僚の",[16,17,19],"a",{"href":18},"/company/team/#chriscool","Chris","が先日、",[16,22,24],{"href":23},"/ja-jp/blog/take-advantage-of-git-rebase/","Git rebaseを活用する方法","について解説しました。この記事では、そのテクニックを実際の日常的な開発作業にどう応用するかを紹介します。",[27,28,30],"h2",{"id":29},"fixup","Fixup",[12,32,33,34,38],{},"マージリクエストを作成した後、パイプラインの失敗やレビュアーからのコメントが重なり、",[16,35,37],{"href":36},"/blog/keeping-git-commit-history-clean/","コミット履歴","が次のような状態になってしまうことがあります。",[40,41,46],"pre",{"className":42,"code":43,"language":44,"meta":45,"style":45},"language-shell shiki shiki-themes github-light","$ git log --oneline\n\n8f8ef5af (HEAD -> my-change) More CI fixes\ne4fb7935 Apply suggestion from reviewer\nc1a1bec6 Apply suggestion from reviewer\n673222be Make linter happy\na0c30577 Fix CI failure for X\n5ff160db Implement feature Y\nf68080e3 Implement feature X\n3cdbc201 (origin/main, origin/HEAD, main) Merge branch 'other-change' into 'main'\n...\n","shell","",[47,48,49,69,76,96,114,128,143,164,179,191,218],"code",{"__ignoreMap":45},[50,51,54,58,62,65],"span",{"class":52,"line":53},"line",1,[50,55,57],{"class":56},"s7eDp","$",[50,59,61],{"class":60},"sYBdl"," git",[50,63,64],{"class":60}," log",[50,66,68],{"class":67},"sYu0t"," --oneline\n",[50,70,72],{"class":52,"line":71},2,[50,73,75],{"emptyLinePlaceholder":74},true,"\n",[50,77,79,82,86,90,93],{"class":52,"line":78},3,[50,80,81],{"class":56},"8f8ef5af",[50,83,85],{"class":84},"sgsFI"," (HEAD -",[50,87,89],{"class":88},"sD7c4",">",[50,91,92],{"class":60}," my-change",[50,94,95],{"class":84},") More CI fixes\n",[50,97,99,102,105,108,111],{"class":52,"line":98},4,[50,100,101],{"class":56},"e4fb7935",[50,103,104],{"class":60}," Apply",[50,106,107],{"class":60}," suggestion",[50,109,110],{"class":60}," from",[50,112,113],{"class":60}," reviewer\n",[50,115,117,120,122,124,126],{"class":52,"line":116},5,[50,118,119],{"class":56},"c1a1bec6",[50,121,104],{"class":60},[50,123,107],{"class":60},[50,125,110],{"class":60},[50,127,113],{"class":60},[50,129,131,134,137,140],{"class":52,"line":130},6,[50,132,133],{"class":56},"673222be",[50,135,136],{"class":60}," Make",[50,138,139],{"class":60}," linter",[50,141,142],{"class":60}," happy\n",[50,144,146,149,152,155,158,161],{"class":52,"line":145},7,[50,147,148],{"class":56},"a0c30577",[50,150,151],{"class":60}," Fix",[50,153,154],{"class":60}," CI",[50,156,157],{"class":60}," failure",[50,159,160],{"class":60}," for",[50,162,163],{"class":60}," X\n",[50,165,167,170,173,176],{"class":52,"line":166},8,[50,168,169],{"class":56},"5ff160db",[50,171,172],{"class":60}," Implement",[50,174,175],{"class":60}," feature",[50,177,178],{"class":60}," Y\n",[50,180,182,185,187,189],{"class":52,"line":181},9,[50,183,184],{"class":56},"f68080e3",[50,186,172],{"class":60},[50,188,175],{"class":60},[50,190,163],{"class":60},[50,192,194,197,200,203,206,209,212,215],{"class":52,"line":193},10,[50,195,196],{"class":56},"3cdbc201",[50,198,199],{"class":84}," (origin/main, ",[50,201,202],{"class":60},"origin/HEAD,",[50,204,205],{"class":60}," main",[50,207,208],{"class":84},") Merge branch ",[50,210,211],{"class":60},"'other-change'",[50,213,214],{"class":84}," into ",[50,216,217],{"class":60},"'main'\n",[50,219,221],{"class":52,"line":220},11,[50,222,223],{"class":67},"...\n",[12,225,226],{},"この例では、フィーチャーXとYを実装する2つのコミットの後に、それ単体では意味をなさないコミットがいくつか続いています。Git rebaseのfixup機能を使って、これらを整理しましょう。",[228,229,230],"h3",{"id":230},"コミットを特定する",[12,232,233],{},"このテクニックの考え方は、後続のコミットの変更内容を、各フィーチャーを導入したコミットに統合することです。そのためには、後続の各コミットがどのコミットに属するかを特定する必要があります。",[12,235,236],{},"ファイル名から関連するコミットが分かる場合もありますが、分からない場合はgit-blameを使って調べられます。",[40,238,240],{"className":42,"code":239,"language":44,"meta":45,"style":45},"git blame \u003Crevision> -L\u003Cstart>,\u003Cend> \u003Cfilename>\n",[47,241,242],{"__ignoreMap":45},[50,243,244,247,250,253,256,259,261,264,267,270,272,275,277,280,282,284,287,290],{"class":52,"line":53},[50,245,246],{"class":56},"git",[50,248,249],{"class":60}," blame",[50,251,252],{"class":88}," \u003C",[50,254,255],{"class":60},"revisio",[50,257,258],{"class":84},"n",[50,260,89],{"class":88},[50,262,263],{"class":67}," -L",[50,265,266],{"class":88},"\u003C",[50,268,269],{"class":67},"start",[50,271,89],{"class":88},[50,273,274],{"class":67},",",[50,276,266],{"class":88},[50,278,279],{"class":67},"end",[50,281,89],{"class":88},[50,283,252],{"class":88},[50,285,286],{"class":60},"filenam",[50,288,289],{"class":84},"e",[50,291,292],{"class":88},">\n",[12,294,295,298,299,302,303,306,307,310],{},[47,296,297],{},"-L","オプションで対象の行番号の範囲を指定します。",[47,300,301],{},"\u003Cend>","は省略できませんが、",[47,304,305],{},"\u003Cstart>","と同じ値でも構いません。",[47,308,309],{},"\u003Crevision>","は省略できますが、リベースで除外したいコミットをスキップするために指定することをお勧めします。実際のコマンドは次のようになります。",[40,312,314],{"className":42,"code":313,"language":44,"meta":45,"style":45},"$ git blame 5ff160db -L22,22 app/model/user.rb\n\nf68080e3 22) scope :admins, -> { where(admin: true) }\n",[47,315,316,333,337],{"__ignoreMap":45},[50,317,318,320,322,324,327,330],{"class":52,"line":53},[50,319,57],{"class":56},[50,321,61],{"class":60},[50,323,249],{"class":60},[50,325,326],{"class":60}," 5ff160db",[50,328,329],{"class":67}," -L22,22",[50,331,332],{"class":60}," app/model/user.rb\n",[50,334,335],{"class":52,"line":71},[50,336,75],{"emptyLinePlaceholder":74},[50,338,339,341,344,347,349,352,355,358],{"class":52,"line":78},[50,340,184],{"class":56},[50,342,343],{"class":67}," 22",[50,345,346],{"class":84},") scope :admins, -",[50,348,89],{"class":88},[50,350,351],{"class":84}," { ",[50,353,354],{"class":56},"where(admin:",[50,356,357],{"class":67}," true",[50,359,360],{"class":84},") }\n",[12,362,363,364,367],{},"これにより、22行目が",[47,365,366],{},"f68080e3 Implement feature X","によって変更されたことが分かります。",[12,369,370],{},"リベースで除外したい各コミットについて、対応するコミットが特定できるまでこの手順を繰り返します。",[228,372,373],{"id":373},"インタラクティブリベース",[12,375,376],{},"次のステップは、インタラクティブリベースを開始することです。",[40,378,380],{"className":42,"code":379,"language":44,"meta":45,"style":45},"$ git rebase -i main\n",[47,381,382],{"__ignoreMap":45},[50,383,384,386,388,391,394],{"class":52,"line":53},[50,385,57],{"class":56},[50,387,61],{"class":60},[50,389,390],{"class":60}," rebase",[50,392,393],{"class":67}," -i",[50,395,396],{"class":60}," main\n",[12,398,399,402],{},[47,400,401],{},"$EDITOR","に命令のリストが表示されます。",[40,404,409],{"className":405,"code":407,"language":408,"meta":45},[406],"language-text","pick 8f8ef5af More CI fixes\npick e4fb7935 Apply suggestion from reviewer\npick c1a1bec6 Apply suggestion from reviewer\npick 673222be Make linter happy\npick a0c30577 Fix CI failure for X\npick 5ff160db Implement feature Y\npick f68080e3 Implement feature X\n","text",[47,410,407],{"__ignoreMap":45},[12,412,413],{},"これを次のように書き換えます。",[40,415,418],{"className":416,"code":417,"language":408,"meta":45},[406],"fixup 8f8ef5af More CI fixes\nfixup e4fb7935 Apply suggestion from reviewer\nfixup 673222be Make linter happy\npick 5ff160db Implement feature Y\nfixup c1a1bec6 Apply suggestion from reviewer\nfixup a0c30577 Fix CI failure for X\npick f68080e3 Implement feature X\n",[47,419,417],{"__ignoreMap":45},[12,421,422,423,426,427,429],{},"コミットを並べ替え、一部の",[47,424,425],{},"pick","を",[47,428,29],{},"に変更しています。",[12,431,432,433,435,436,438],{},"Git rebaseはこのリストを下から上に処理します。",[47,434,425],{},"の行はそのコミットメッセージをそのまま使用し、",[47,437,29],{},"の行はその変更内容を直下のコミットに統合します。ファイルを保存してエディターを閉じると、Gitの履歴は次のようになります。",[40,440,442],{"className":42,"code":441,"language":44,"meta":45,"style":45},"$ git log --oneline\n\ne880c726 (HEAD -> my-change) Implement feature Y\ne088ea06 Implement feature X\n3cdbc201 (origin/main, origin/HEAD, main) Merge branch 'other-change' into 'main'\n...\n",[47,443,444,454,458,472,483,501],{"__ignoreMap":45},[50,445,446,448,450,452],{"class":52,"line":53},[50,447,57],{"class":56},[50,449,61],{"class":60},[50,451,64],{"class":60},[50,453,68],{"class":67},[50,455,456],{"class":52,"line":71},[50,457,75],{"emptyLinePlaceholder":74},[50,459,460,463,465,467,469],{"class":52,"line":78},[50,461,462],{"class":56},"e880c726",[50,464,85],{"class":84},[50,466,89],{"class":88},[50,468,92],{"class":60},[50,470,471],{"class":84},") Implement feature Y\n",[50,473,474,477,479,481],{"class":52,"line":98},[50,475,476],{"class":56},"e088ea06",[50,478,172],{"class":60},[50,480,175],{"class":60},[50,482,163],{"class":60},[50,484,485,487,489,491,493,495,497,499],{"class":52,"line":116},[50,486,196],{"class":56},[50,488,199],{"class":84},[50,490,202],{"class":60},[50,492,205],{"class":60},[50,494,208],{"class":84},[50,496,211],{"class":60},[50,498,214],{"class":84},[50,500,217],{"class":60},[50,502,503],{"class":52,"line":130},[50,504,223],{"class":67},[27,506,508],{"id":507},"autosquash","Autosquash",[12,510,511],{},"autosquashは、上記の方法の代替として使えるテクニックです。まず、除外したいコミットの変更をすべて取り消します。",[40,513,515],{"className":42,"code":514,"language":44,"meta":45,"style":45},"git checkout f68080e3\n",[47,516,517],{"__ignoreMap":45},[50,518,519,521,524],{"class":52,"line":53},[50,520,246],{"class":56},[50,522,523],{"class":60}," checkout",[50,525,526],{"class":60}," f68080e3\n",[12,528,529,530,533,534,537,538,541,542,545,546,549,550,553],{},"これで、変更内容はすべてワーキングツリーにのみ存在し、コミット履歴からは消えた状態になります。",[47,531,532],{},"git add","または",[47,535,536],{},"git add -p","を使って",[47,539,540],{},"e088ea06 Implement feature X","に関連するすべての変更をステージングします。",[47,543,544],{},"git commit","や",[47,547,548],{},"git commit -m","の代わりに、",[47,551,552],{},"--fixup","オプションを使います。",[40,555,557],{"className":42,"code":556,"language":44,"meta":45,"style":45},"$ git commit --fixup e088ea06\n",[47,558,559],{"__ignoreMap":45},[50,560,561,563,565,568,571],{"class":52,"line":53},[50,562,57],{"class":56},[50,564,61],{"class":60},[50,566,567],{"class":60}," commit",[50,569,570],{"class":67}," --fixup",[50,572,573],{"class":60}," e088ea06\n",[12,575,576],{},"これで履歴は次のようになります。",[40,578,580],{"className":42,"code":579,"language":44,"meta":45,"style":45},"$ git log --oneline\n\ne744646b (HEAD -> my-change) fixup! Implement feature X\n5ff160db Implement feature Y\nf68080e3 Implement feature X\n3cdbc201 (origin/main, origin/HEAD, main) Merge branch 'other-change' into 'main'\n...\n",[47,581,582,592,596,619,629,639,657],{"__ignoreMap":45},[50,583,584,586,588,590],{"class":52,"line":53},[50,585,57],{"class":56},[50,587,61],{"class":60},[50,589,64],{"class":60},[50,591,68],{"class":67},[50,593,594],{"class":52,"line":71},[50,595,75],{"emptyLinePlaceholder":74},[50,597,598,601,603,605,607,610,613,615,617],{"class":52,"line":78},[50,599,600],{"class":56},"e744646b",[50,602,85],{"class":84},[50,604,89],{"class":88},[50,606,92],{"class":60},[50,608,609],{"class":84},") fixup",[50,611,612],{"class":88},"!",[50,614,172],{"class":56},[50,616,175],{"class":60},[50,618,163],{"class":60},[50,620,621,623,625,627],{"class":52,"line":98},[50,622,169],{"class":56},[50,624,172],{"class":60},[50,626,175],{"class":60},[50,628,178],{"class":60},[50,630,631,633,635,637],{"class":52,"line":116},[50,632,184],{"class":56},[50,634,172],{"class":60},[50,636,175],{"class":60},[50,638,163],{"class":60},[50,640,641,643,645,647,649,651,653,655],{"class":52,"line":130},[50,642,196],{"class":56},[50,644,199],{"class":84},[50,646,202],{"class":60},[50,648,205],{"class":60},[50,650,208],{"class":84},[50,652,211],{"class":60},[50,654,214],{"class":84},[50,656,217],{"class":60},[50,658,659],{"class":52,"line":145},[50,660,223],{"class":67},[12,662,663,664,667],{},"残りの変更はすべて",[47,665,666],{},"5ff160db Implement feature Y","に属するはずなので、次を実行します。",[40,669,671],{"className":42,"code":670,"language":44,"meta":45,"style":45},"$ git add .\n\n$ git commit --fixup 5ff160db\n\n$ git log --oneline\n\n18c0fff9 (HEAD -> my-change) fixup! Implement feature Y\ne744646b fixup! Implement feature X\n5ff160db Implement feature Y\nf68080e3 Implement feature X\n3cdbc201 (origin/main, origin/HEAD, main) Merge branch 'other-change' into 'main'\n...\n",[47,672,673,685,689,702,706,716,720,741,754,764,774,792],{"__ignoreMap":45},[50,674,675,677,679,682],{"class":52,"line":53},[50,676,57],{"class":56},[50,678,61],{"class":60},[50,680,681],{"class":60}," add",[50,683,684],{"class":60}," .\n",[50,686,687],{"class":52,"line":71},[50,688,75],{"emptyLinePlaceholder":74},[50,690,691,693,695,697,699],{"class":52,"line":78},[50,692,57],{"class":56},[50,694,61],{"class":60},[50,696,567],{"class":60},[50,698,570],{"class":67},[50,700,701],{"class":60}," 5ff160db\n",[50,703,704],{"class":52,"line":98},[50,705,75],{"emptyLinePlaceholder":74},[50,707,708,710,712,714],{"class":52,"line":116},[50,709,57],{"class":56},[50,711,61],{"class":60},[50,713,64],{"class":60},[50,715,68],{"class":67},[50,717,718],{"class":52,"line":130},[50,719,75],{"emptyLinePlaceholder":74},[50,721,722,725,727,729,731,733,735,737,739],{"class":52,"line":145},[50,723,724],{"class":56},"18c0fff9",[50,726,85],{"class":84},[50,728,89],{"class":88},[50,730,92],{"class":60},[50,732,609],{"class":84},[50,734,612],{"class":88},[50,736,172],{"class":56},[50,738,175],{"class":60},[50,740,178],{"class":60},[50,742,743,745,748,750,752],{"class":52,"line":166},[50,744,600],{"class":56},[50,746,747],{"class":60}," fixup!",[50,749,172],{"class":60},[50,751,175],{"class":60},[50,753,163],{"class":60},[50,755,756,758,760,762],{"class":52,"line":181},[50,757,169],{"class":56},[50,759,172],{"class":60},[50,761,175],{"class":60},[50,763,178],{"class":60},[50,765,766,768,770,772],{"class":52,"line":193},[50,767,184],{"class":56},[50,769,172],{"class":60},[50,771,175],{"class":60},[50,773,163],{"class":60},[50,775,776,778,780,782,784,786,788,790],{"class":52,"line":220},[50,777,196],{"class":56},[50,779,199],{"class":84},[50,781,202],{"class":60},[50,783,205],{"class":60},[50,785,208],{"class":84},[50,787,211],{"class":60},[50,789,214],{"class":84},[50,791,217],{"class":60},[50,793,795],{"class":52,"line":794},12,[50,796,223],{"class":67},[12,798,799,802],{},[47,800,801],{},"fixup!","コミットの内容を確認して問題なければ、次を実行します。",[40,804,806],{"className":42,"code":805,"language":44,"meta":45,"style":45},"$ git rebase -i --autosquash main\n",[47,807,808],{"__ignoreMap":45},[50,809,810,812,814,816,818,821],{"class":52,"line":53},[50,811,57],{"class":56},[50,813,61],{"class":60},[50,815,390],{"class":60},[50,817,393],{"class":67},[50,819,820],{"class":67}," --autosquash",[50,822,396],{"class":60},[12,824,825,828,829,831,832,834,835,838,839,841],{},[47,826,827],{},"--autosquash","オプションを追加しています。このオプションは",[47,830,801],{},"コミットを自動的に並べ替え、命令を",[47,833,29],{},"に設定します。通常はこの状態で何もする必要はなく、エディターで命令リストをそのまま閉じるだけです。",[47,836,837],{},"git log","を実行すると、",[47,840,801],{},"コミットが消えていることが確認できます。",[27,843,844],{"id":844},"その他のツール",[12,846,847],{},"最後に、コミットの統合をより簡単に行える代替ツールもいくつかご紹介します。",[849,850,851,859,866,873,880],"ul",{},[852,853,854],"li",{},[16,855,858],{"href":856,"rel":857},"https://lib.rs/crates/git-absorb",[],"lib.rs/crates/git-absorb",[852,860,861],{},[16,862,865],{"href":863,"rel":864},"https://github.com/MrFlynn/git-absorb",[],"github.com/MrFlynn/git-absorb",[852,867,868],{},[16,869,872],{"href":870,"rel":871},"https://gitlab.com/bertoldia/git-absorb",[],"gitlab.com/bertoldia/git-absorb",[852,874,875],{},[16,876,879],{"href":877,"rel":878},"https://github.com/tummychow/git-absorb",[],"github.com/tummychow/git-absorb",[852,881,882],{},[16,883,886],{"href":884,"rel":885},"https://github.com/torbiak/git-autofixup",[],"github.com/torbiak/git-autofixup",[12,888,889,894,895,900,901,906],{},[16,890,893],{"href":891,"rel":892},"https://unsplash.com/photos/qAShc5SV83M",[],"カバー画像","：",[16,896,899],{"href":897,"rel":898},"https://unsplash.com/@yungnoma",[],"Yung Chang","（",[16,902,905],{"href":903,"rel":904},"https://unsplash.com/",[],"Unsplash","）",[908,909,910],"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 pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html pre.shiki code .sD7c4, html code.shiki .sD7c4{--shiki-default:#D73A49}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":45,"searchDepth":71,"depth":71,"links":912},[913,917,918],{"id":29,"depth":71,"text":30,"children":914},[915,916],{"id":230,"depth":78,"text":230},{"id":373,"depth":78,"text":373},{"id":507,"depth":71,"text":508},{"id":844,"depth":71,"text":844},"engineering","2022-11-08","fixupからautosquashまで、Git rebaseを実際の開発現場で活用する具体的な方法をご紹介します。","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682486/Blog/Hero%20Images/rebase-in-real-life.jpg",{},"/ja-jp/blog/rebase-in-real-life",{"title":929,"description":930,"ogTitle":929,"ogDescription":921,"noIndex":924,"ogImage":925,"ogUrl":931,"ogSiteName":932,"ogType":933,"canonicalUrls":931},"Git rebaseを実務で活用する方法","fixupからautosquashまで、Git rebaseを実際の開発現場で活用するための具体的な手法を解説します。マージリクエストのコミット履歴をすっきり整理して、レビューしやすいブランチを作るためのステップをわかりやすくご紹介します。","https://about.gitlab.com/ja-jp/blog/rebase-in-real-life","https://about.gitlab.com","article","rebase-in-real-life","ja-jp/blog/rebase-in-real-life",[246,937,938],"workflow","tutorial","BlogPost","I_Ah-jo88EisOGwdzc6NRFgBzhqT78VvhKExCLds_EA",{"logo":942,"freeTrial":947,"sales":952,"login":957,"items":962,"search":1279,"minimal":1312,"duo":1329,"switchNav":1338,"pricingDeployment":1349},{"config":943},{"href":944,"dataGaName":945,"dataGaLocation":946},"/ja-jp/","gitlab logo","header",{"text":948,"config":949},"無料トライアルを開始",{"href":950,"dataGaName":951,"dataGaLocation":946},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp&glm_content=default-saas-trial/","free trial",{"text":953,"config":954},"お問い合わせはこちら",{"href":955,"dataGaName":956,"dataGaLocation":946},"/ja-jp/sales/","sales",{"text":958,"config":959},"サインイン",{"href":960,"dataGaName":961,"dataGaLocation":946},"https://gitlab.com/users/sign_in/","sign in",[963,992,1094,1099,1203,1259],{"text":964,"config":965,"menu":967},"プラットフォーム",{"dataNavLevelOne":966},"platform",{"type":968,"columns":969},"cards",[970,976,984],{"title":964,"description":971,"link":972},"DevSecOpsに特化したインテリジェントオーケストレーションプラットフォーム",{"text":973,"config":974},"プラットフォームの詳細はこちら",{"href":975,"dataGaName":966,"dataGaLocation":946},"/ja-jp/platform/",{"title":977,"description":978,"link":979},"GitLab Duo Agent Platform","ソフトウェアライフサイクル全体を支えるエージェント型AI",{"text":980,"config":981},"GitLab Duoのご紹介",{"href":982,"dataGaName":983,"dataGaLocation":946},"/ja-jp/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":985,"description":986,"link":987},"GitLabが選ばれる理由","エンタープライズがGitLabを選ぶ主な理由をご覧ください",{"text":988,"config":989},"詳細はこちら",{"href":990,"dataGaName":991,"dataGaLocation":946},"/ja-jp/why-gitlab/","why gitlab",{"text":993,"left":74,"config":994,"menu":996},"製品",{"dataNavLevelOne":995},"solutions",{"type":997,"link":998,"columns":1002,"feature":1073},"lists",{"text":999,"config":1000},"すべてのソリューションを表示",{"href":1001,"dataGaName":995,"dataGaLocation":946},"/ja-jp/solutions/",[1003,1028,1051],{"title":1004,"description":1005,"link":1006,"items":1011},"自動化","CI/CDと自動化でデプロイを加速",{"config":1007},{"icon":1008,"href":1009,"dataGaName":1010,"dataGaLocation":946},"AutomatedCodeAlt","/ja-jp/solutions/delivery-automation/","automated software delivery",[1012,1016,1019,1024],{"text":1013,"config":1014},"CI/CD",{"href":1015,"dataGaLocation":946,"dataGaName":1013},"/ja-jp/solutions/continuous-integration/",{"text":977,"config":1017},{"href":982,"dataGaLocation":946,"dataGaName":1018},"gitlab duo agent platform - product menu",{"text":1020,"config":1021},"ソースコード管理",{"href":1022,"dataGaLocation":946,"dataGaName":1023},"/ja-jp/solutions/source-code-management/","Source Code Management",{"text":1025,"config":1026},"自動化されたソフトウェアデリバリー",{"href":1009,"dataGaLocation":946,"dataGaName":1027},"Automated software delivery",{"title":1029,"description":1030,"link":1031,"items":1036},"セキュリティ","セキュリティを犠牲にすることなくコード作成を高速化",{"config":1032},{"href":1033,"dataGaName":1034,"dataGaLocation":946,"icon":1035},"/ja-jp/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[1037,1041,1046],{"text":1038,"config":1039},"アプリケーションセキュリティテスト",{"href":1033,"dataGaName":1040,"dataGaLocation":946},"Application security testing",{"text":1042,"config":1043},"ソフトウェアサプライチェーンセキュリティ",{"href":1044,"dataGaLocation":946,"dataGaName":1045},"/ja-jp/solutions/supply-chain/","Software supply chain security",{"text":1047,"config":1048},"ソフトウェアコンプライアンス",{"href":1049,"dataGaName":1050,"dataGaLocation":946},"/ja-jp/solutions/software-compliance/","software compliance",{"title":1052,"link":1053,"items":1058},"測定",{"config":1054},{"icon":1055,"href":1056,"dataGaName":1057,"dataGaLocation":946},"DigitalTransformation","/ja-jp/solutions/visibility-measurement/","visibility and measurement",[1059,1063,1068],{"text":1060,"config":1061},"可視性と測定",{"href":1056,"dataGaLocation":946,"dataGaName":1062},"Visibility and Measurement",{"text":1064,"config":1065},"バリューストリーム管理",{"href":1066,"dataGaLocation":946,"dataGaName":1067},"/ja-jp/solutions/value-stream-management/","Value Stream Management",{"text":1069,"config":1070},"分析とインサイト",{"href":1071,"dataGaLocation":946,"dataGaName":1072},"/ja-jp/solutions/analytics-and-insights/","Analytics and insights",{"title":1074,"type":997,"items":1075},"GitLabが活躍する場所",[1076,1082,1088],{"text":1077,"config":1078},"大企業",{"icon":1079,"href":1080,"dataGaLocation":946,"dataGaName":1081},"Building","/ja-jp/enterprise/","enterprise",{"text":1083,"config":1084},"スモールビジネス",{"icon":1085,"href":1086,"dataGaLocation":946,"dataGaName":1087},"Work","/ja-jp/small-business/","small business",{"text":1089,"config":1090},"公共部門",{"icon":1091,"href":1092,"dataGaLocation":946,"dataGaName":1093},"Organization","/ja-jp/solutions/public-sector/","public sector",{"text":1095,"config":1096},"価格",{"href":1097,"dataGaName":1098,"dataGaLocation":946,"dataNavLevelOne":1098},"/ja-jp/pricing/","pricing",{"text":1100,"config":1101,"menu":1103},"関連リソース",{"dataNavLevelOne":1102},"resources",{"type":997,"link":1104,"columns":1108,"feature":1192},{"text":1105,"config":1106},"すべてのリソースを表示",{"href":1107,"dataGaName":1102,"dataGaLocation":946},"/ja-jp/resources/",[1109,1142,1164],{"title":1110,"items":1111},"はじめに",[1112,1117,1122,1127,1132,1137],{"text":1113,"config":1114},"インストール",{"href":1115,"dataGaName":1116,"dataGaLocation":946},"/ja-jp/install/","install",{"text":1118,"config":1119},"クイックスタートガイド",{"href":1120,"dataGaName":1121,"dataGaLocation":946},"/ja-jp/get-started/","quick setup checklists",{"text":1123,"config":1124},"学ぶ",{"href":1125,"dataGaLocation":946,"dataGaName":1126},"https://university.gitlab.com/","learn",{"text":1128,"config":1129},"製品ドキュメント",{"href":1130,"dataGaName":1131,"dataGaLocation":946},"https://docs.gitlab.com/","product documentation",{"text":1133,"config":1134},"ベストプラクティスビデオ",{"href":1135,"dataGaName":1136,"dataGaLocation":946},"/ja-jp/getting-started-videos/","best practice videos",{"text":1138,"config":1139},"インテグレーション",{"href":1140,"dataGaName":1141,"dataGaLocation":946},"/ja-jp/integrations/","integrations",{"title":1143,"items":1144},"検索する",[1145,1150,1155,1159],{"text":1146,"config":1147},"お客様成功事例",{"href":1148,"dataGaName":1149,"dataGaLocation":946},"/ja-jp/customers/","customer success stories",{"text":1151,"config":1152},"ブログ",{"href":1153,"dataGaName":1154,"dataGaLocation":946},"/ja-jp/blog/","blog",{"text":1156,"config":1157},"The Source",{"href":1158,"dataGaName":1154,"dataGaLocation":946},"/ja-jp/the-source/",{"text":1160,"config":1161},"リモート",{"href":1162,"dataGaName":1163,"dataGaLocation":946},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":1165,"items":1166},"つなげる",[1167,1172,1177,1182,1187],{"text":1168,"config":1169},"GitLabサービス",{"href":1170,"dataGaName":1171,"dataGaLocation":946},"/ja-jp/services/","services",{"text":1173,"config":1174},"コミュニティ",{"href":1175,"dataGaName":1176,"dataGaLocation":946},"/community/","community",{"text":1178,"config":1179},"フォーラム",{"href":1180,"dataGaName":1181,"dataGaLocation":946},"https://forum.gitlab.com/","forum",{"text":1183,"config":1184},"イベント",{"href":1185,"dataGaName":1186,"dataGaLocation":946},"/events/","events",{"text":1188,"config":1189},"パートナー",{"href":1190,"dataGaName":1191,"dataGaLocation":946},"/ja-jp/partners/","partners",{"config":1193,"title":1196,"text":1197,"link":1198},{"background":1194,"textColor":1195},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","GitLabの最新情報","最新の機能と改善点に関する情報をお届けします。",{"text":1199,"config":1200},"最新情報を読む",{"href":1201,"dataGaName":1202,"dataGaLocation":946},"/ja-jp/whats-new/","whats new",{"text":1204,"config":1205,"menu":1207},"企業情報",{"dataNavLevelOne":1206},"company",{"type":997,"columns":1208},[1209],{"items":1210},[1211,1216,1222,1224,1229,1234,1239,1244,1249,1254],{"text":1212,"config":1213},"GitLabについて",{"href":1214,"dataGaName":1215,"dataGaLocation":946},"/ja-jp/company/","about",{"text":1217,"config":1218,"footerGa":1221},"採用情報",{"href":1219,"dataGaName":1220,"dataGaLocation":946},"/jobs/","jobs",{"dataGaName":1220},{"text":1183,"config":1223},{"href":1185,"dataGaName":1186,"dataGaLocation":946},{"text":1225,"config":1226},"経営陣",{"href":1227,"dataGaName":1228,"dataGaLocation":946},"/company/team/e-group/","leadership",{"text":1230,"config":1231},"ハンドブック",{"href":1232,"dataGaName":1233,"dataGaLocation":946},"https://handbook.gitlab.com/","handbook",{"text":1235,"config":1236},"投資家向け情報",{"href":1237,"dataGaName":1238,"dataGaLocation":946},"https://ir.gitlab.com/","investor relations",{"text":1240,"config":1241},"トラストセンター",{"href":1242,"dataGaName":1243,"dataGaLocation":946},"/ja-jp/security/","trust center",{"text":1245,"config":1246},"AI Transparency Center",{"href":1247,"dataGaName":1248,"dataGaLocation":946},"/ja-jp/ai-transparency-center/","ai transparency center",{"text":1250,"config":1251},"ニュースレター",{"href":1252,"dataGaName":1253,"dataGaLocation":946},"/company/contact/#contact-forms","newsletter",{"text":1255,"config":1256},"プレス",{"href":1257,"dataGaName":1258,"dataGaLocation":946},"/press/","press",{"text":1260,"config":1261,"menu":1262},"お問い合わせ",{"dataNavLevelOne":1206},{"type":997,"columns":1263},[1264],{"items":1265},[1266,1269,1274],{"text":953,"config":1267},{"href":955,"dataGaName":1268,"dataGaLocation":946},"talk to sales",{"text":1270,"config":1271},"サポートを受ける",{"href":1272,"dataGaName":1273,"dataGaLocation":946},"https://support.gitlab.com","support portal",{"text":1275,"config":1276},"カスタマーポータル",{"href":1277,"dataGaName":1278,"dataGaLocation":946},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":1280,"login":1281,"suggestions":1288},"閉じる",{"text":1282,"link":1283},"リポジトリとプロジェクトを検索するには、次にログインします",{"text":1284,"config":1285},"GitLab.com",{"href":960,"dataGaName":1286,"dataGaLocation":1287},"search login","search",{"text":1289,"default":1290},"提案",[1291,1293,1298,1300,1304,1308],{"text":977,"config":1292},{"href":982,"dataGaName":977,"dataGaLocation":1287},{"text":1294,"config":1295},"コード提案（AI）",{"href":1296,"dataGaName":1297,"dataGaLocation":1287},"/ja-jp/solutions/code-suggestions/","Code Suggestions (AI)",{"text":1013,"config":1299},{"href":1015,"dataGaName":1013,"dataGaLocation":1287},{"text":1301,"config":1302},"GitLab on AWS",{"href":1303,"dataGaName":1301,"dataGaLocation":1287},"/ja-jp/partners/technology-partners/aws/",{"text":1305,"config":1306},"GitLab on Google Cloud",{"href":1307,"dataGaName":1305,"dataGaLocation":1287},"/ja-jp/partners/technology-partners/google-cloud-platform/",{"text":1309,"config":1310},"GitLabを選ぶ理由",{"href":990,"dataGaName":1311,"dataGaLocation":1287},"Why GitLab?",{"freeTrial":1313,"mobileIcon":1317,"desktopIcon":1322,"secondaryButton":1325},{"text":948,"config":1314},{"href":1315,"dataGaName":951,"dataGaLocation":1316},"https://gitlab.com/-/trials/new/","nav",{"altText":1318,"config":1319},"GitLabアイコン",{"src":1320,"dataGaName":1321,"dataGaLocation":1316},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":1318,"config":1323},{"src":1324,"dataGaName":1321,"dataGaLocation":1316},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":1110,"config":1326},{"href":1327,"dataGaName":1328,"dataGaLocation":1316},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp/get-started/","get started",{"freeTrial":1330,"mobileIcon":1334,"desktopIcon":1336},{"text":1331,"config":1332},"GitLab Duoの詳細について",{"href":982,"dataGaName":1333,"dataGaLocation":1316},"gitlab duo",{"altText":1318,"config":1335},{"src":1320,"dataGaName":1321,"dataGaLocation":1316},{"altText":1318,"config":1337},{"src":1324,"dataGaName":1321,"dataGaLocation":1316},{"button":1339,"mobileIcon":1344,"desktopIcon":1346},{"text":1340,"config":1341},"/switch",{"href":1342,"dataGaName":1343,"dataGaLocation":1316},"#contact","switch",{"altText":1318,"config":1345},{"src":1320,"dataGaName":1321,"dataGaLocation":1316},{"altText":1318,"config":1347},{"src":1348,"dataGaName":1321,"dataGaLocation":1316},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":1350,"mobileIcon":1355,"desktopIcon":1357},{"text":1351,"config":1352},"料金ページに戻る",{"href":1097,"dataGaName":1353,"dataGaLocation":1316,"icon":1354},"back to pricing","GoBack",{"altText":1318,"config":1356},{"src":1320,"dataGaName":1321,"dataGaLocation":1316},{"altText":1318,"config":1358},{"src":1324,"dataGaName":1321,"dataGaLocation":1316},{"title":1360,"button":1361,"config":1366},"エージェント型AIがソフトウェアデリバリーをどのように変革するかをご覧ください",{"text":1362,"config":1363},"6月18日のGitLab Transcend日本開催版に申し込む",{"href":1364,"dataGaName":1365,"dataGaLocation":946},"/ja-jp/events/transcend/virtual/","transcend event",{"layout":1367,"disabled":924},"release",{"data":1369},{"text":1370,"source":1371,"edit":1377,"contribute":1382,"config":1387,"items":1392,"minimal":1600},"GitはSoftware Freedom Conservancyの商標です。当社は「GitLab」をライセンスに基づいて使用しています",{"text":1372,"config":1373},"ページのソースを表示",{"href":1374,"dataGaName":1375,"dataGaLocation":1376},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":1378,"config":1379},"このページを編集",{"href":1380,"dataGaName":1381,"dataGaLocation":1376},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":1383,"config":1384},"ご協力をお願いします",{"href":1385,"dataGaName":1386,"dataGaLocation":1376},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":1388,"facebook":1389,"youtube":1390,"linkedin":1391},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[1393,1438,1491,1535,1567],{"title":1095,"links":1394,"subMenu":1409},[1395,1399,1404],{"text":1396,"config":1397},"プランの表示",{"href":1097,"dataGaName":1398,"dataGaLocation":1376},"view plans",{"text":1400,"config":1401},"Premiumを選ぶ理由",{"href":1402,"dataGaName":1403,"dataGaLocation":1376},"/ja-jp/pricing/premium/","why premium",{"text":1405,"config":1406},"Ultimateを選ぶ理由",{"href":1407,"dataGaName":1408,"dataGaLocation":1376},"/ja-jp/pricing/ultimate/","why ultimate",[1410],{"title":1260,"links":1411},[1412,1414,1416,1418,1423,1428,1433],{"text":1260,"config":1413},{"href":955,"dataGaName":956,"dataGaLocation":1376},{"text":1270,"config":1415},{"href":1272,"dataGaName":1273,"dataGaLocation":1376},{"text":1275,"config":1417},{"href":1277,"dataGaName":1278,"dataGaLocation":1376},{"text":1419,"config":1420},"ステータス",{"href":1421,"dataGaName":1422,"dataGaLocation":1376},"https://status.gitlab.com/","status",{"text":1424,"config":1425},"利用規約",{"href":1426,"dataGaName":1427,"dataGaLocation":1376},"/terms/","terms of use",{"text":1429,"config":1430},"プライバシーに関する声明",{"href":1431,"dataGaName":1432,"dataGaLocation":1376},"/ja-jp/privacy/","privacy statement",{"text":1434,"config":1435},"Cookie 優先設定",{"dataGaName":1436,"dataGaLocation":1376,"id":1437,"isOneTrustButton":74},"cookie preferences","ot-sdk-btn",{"title":993,"links":1439,"subMenu":1448},[1440,1444],{"text":1441,"config":1442},"DevSecOpsプラットフォーム",{"href":975,"dataGaName":1443,"dataGaLocation":1376},"devsecops platform",{"text":1445,"config":1446},"AI支援開発",{"href":982,"dataGaName":1447,"dataGaLocation":1376},"ai-assisted development",[1449],{"title":1450,"links":1451},"トピック",[1452,1456,1461,1466,1471,1476,1481,1486],{"text":1013,"config":1453},{"href":1454,"dataGaName":1455,"dataGaLocation":1376},"/ja-jp/topics/ci-cd/","cicd",{"text":1457,"config":1458},"GitOps",{"href":1459,"dataGaName":1460,"dataGaLocation":1376},"/ja-jp/topics/gitops/","gitops",{"text":1462,"config":1463},"DevOps",{"href":1464,"dataGaName":1465,"dataGaLocation":1376},"/ja-jp/topics/devops/","devops",{"text":1467,"config":1468},"バージョン管理",{"href":1469,"dataGaName":1470,"dataGaLocation":1376},"/ja-jp/topics/version-control/","version control",{"text":1472,"config":1473},"DevSecOps",{"href":1474,"dataGaName":1475,"dataGaLocation":1376},"/ja-jp/topics/devsecops/","devsecops",{"text":1477,"config":1478},"クラウドネイティブ",{"href":1479,"dataGaName":1480,"dataGaLocation":1376},"/ja-jp/topics/cloud-native/","cloud native",{"text":1482,"config":1483},"コーディングのためのAI",{"href":1484,"dataGaName":1485,"dataGaLocation":1376},"/ja-jp/topics/devops/ai-for-coding/","ai for coding",{"text":1487,"config":1488},"エージェント型AI",{"href":1489,"dataGaName":1490,"dataGaLocation":1376},"/ja-jp/topics/agentic-ai/","agentic ai",{"title":1492,"links":1493},"ソリューション",[1494,1497,1499,1504,1508,1511,1514,1517,1520,1522,1525,1530],{"text":1038,"config":1495},{"href":1033,"dataGaName":1496,"dataGaLocation":1376},"Application Security Testing",{"text":1025,"config":1498},{"href":1009,"dataGaName":1010,"dataGaLocation":1376},{"text":1500,"config":1501},"アジャイル開発",{"href":1502,"dataGaName":1503,"dataGaLocation":1376},"/ja-jp/solutions/agile-delivery/","agile delivery",{"text":1505,"config":1506},"SCM",{"href":1022,"dataGaName":1507,"dataGaLocation":1376},"source code management",{"text":1013,"config":1509},{"href":1015,"dataGaName":1510,"dataGaLocation":1376},"continuous integration & delivery",{"text":1064,"config":1512},{"href":1066,"dataGaName":1513,"dataGaLocation":1376},"value stream management",{"text":1457,"config":1515},{"href":1516,"dataGaName":1460,"dataGaLocation":1376},"/ja-jp/solutions/gitops/",{"text":1518,"config":1519},"エンタープライズ",{"href":1080,"dataGaName":1081,"dataGaLocation":1376},{"text":1083,"config":1521},{"href":1086,"dataGaName":1087,"dataGaLocation":1376},{"text":1523,"config":1524},"公共機関",{"href":1092,"dataGaName":1093,"dataGaLocation":1376},{"text":1526,"config":1527},"教育",{"href":1528,"dataGaName":1529,"dataGaLocation":1376},"/ja-jp/solutions/education/","education",{"text":1531,"config":1532},"金融サービス",{"href":1533,"dataGaName":1534,"dataGaLocation":1376},"/ja-jp/solutions/finance/","financial services",{"title":1536,"links":1537},"リソース",[1538,1540,1542,1544,1548,1550,1553,1555,1557,1559,1561,1563,1565],{"text":1113,"config":1539},{"href":1115,"dataGaName":1116,"dataGaLocation":1376},{"text":1118,"config":1541},{"href":1120,"dataGaName":1121,"dataGaLocation":1376},{"text":1123,"config":1543},{"href":1125,"dataGaName":1126,"dataGaLocation":1376},{"text":1128,"config":1545},{"href":1546,"dataGaName":1547,"dataGaLocation":1376},"https://docs.gitlab.com/ja-jp/","docs",{"text":1151,"config":1549},{"href":1153,"dataGaName":1154,"dataGaLocation":1376},{"text":1551,"config":1552},"新着情報",{"href":1201,"dataGaName":1202,"dataGaLocation":1376},{"text":1146,"config":1554},{"href":1148,"dataGaName":1149,"dataGaLocation":1376},{"text":1160,"config":1556},{"href":1162,"dataGaName":1163,"dataGaLocation":1376},{"text":1168,"config":1558},{"href":1170,"dataGaName":1171,"dataGaLocation":1376},{"text":1173,"config":1560},{"href":1175,"dataGaName":1176,"dataGaLocation":1376},{"text":1178,"config":1562},{"href":1180,"dataGaName":1181,"dataGaLocation":1376},{"text":1183,"config":1564},{"href":1185,"dataGaName":1186,"dataGaLocation":1376},{"text":1188,"config":1566},{"href":1190,"dataGaName":1191,"dataGaLocation":1376},{"title":1568,"links":1569},"会社情報",[1570,1572,1574,1576,1578,1580,1584,1589,1591,1593,1595],{"text":1212,"config":1571},{"href":1214,"dataGaName":1206,"dataGaLocation":1376},{"text":1217,"config":1573},{"href":1219,"dataGaName":1220,"dataGaLocation":1376},{"text":1225,"config":1575},{"href":1227,"dataGaName":1228,"dataGaLocation":1376},{"text":1230,"config":1577},{"href":1232,"dataGaName":1233,"dataGaLocation":1376},{"text":1235,"config":1579},{"href":1237,"dataGaName":1238,"dataGaLocation":1376},{"text":1581,"config":1582},"Sustainability",{"href":1583,"dataGaName":1581,"dataGaLocation":1376},"/sustainability/",{"text":1585,"config":1586},"ダイバーシティ、インクルージョン、ビロンギング（DIB）",{"href":1587,"dataGaName":1588,"dataGaLocation":1376},"/ja-jp/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":1240,"config":1590},{"href":1242,"dataGaName":1243,"dataGaLocation":1376},{"text":1250,"config":1592},{"href":1252,"dataGaName":1253,"dataGaLocation":1376},{"text":1255,"config":1594},{"href":1257,"dataGaName":1258,"dataGaLocation":1376},{"text":1596,"config":1597},"現代奴隷制の透明性に関する声明",{"href":1598,"dataGaName":1599,"dataGaLocation":1376},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1601},[1602,1604,1607],{"text":1424,"config":1603},{"href":1426,"dataGaName":1427,"dataGaLocation":1376},{"text":1605,"config":1606},"Cookieの設定",{"dataGaName":1436,"dataGaLocation":1376,"id":1437,"isOneTrustButton":74},{"text":1429,"config":1608},{"href":1431,"dataGaName":1432,"dataGaLocation":1376},[1610],{"id":1611,"title":7,"body":923,"config":1612,"content":1614,"description":923,"extension":1618,"meta":1619,"navigation":74,"path":1620,"seo":1621,"stem":1622,"__hash__":1623},"blogAuthors/en-us/blog/authors/toon-claes.yml",{"template":1613},"BlogAuthor",{"name":7,"config":1615},{"headshot":1616,"ctfId":1617},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663082/Blog/Author%20Headshots/toon_claes_headshot.png","toon","yml",{},"/en-us/blog/authors/toon-claes",{},"en-us/blog/authors/toon-claes","guXJXoqO1anz4H932Namk7kqyZsO1xyVQr6stBL4o18",[1625,1633,1642],{"title":1626,"description":1627,"heroImage":1628,"category":919,"date":1629,"authors":1630,"slug":1632,"externalUrl":923},"モノレポとは？マルチレポとの違いやメリット、デメリットを解説","この記事では、モノレポの特徴やマルチレポとの違い、モノレポが向いているケース・向いていないケースを詳しく解説します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1781228639/dgazp67o5nee87ljkt3s.jpg","2026-06-12",[1631],"GitLab Team","what-is-monorepo",{"title":1634,"description":1635,"heroImage":1636,"category":919,"date":1637,"authors":1638,"slug":1641,"externalUrl":923},"ガイド: Azure DevOpsからGitLabへの移行","GitLabプロフェッショナルサービスの移行ツールを使用してAzure DevOpsからGitLabへの完全な移行を実行する方法を学びます — 計画、実行から移行後のフォローアップタスクまで。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749658924/Blog/Hero%20Images/securitylifecycle-light.png","2025-12-03",[1639,1640],"Evgeny Rudinsky","Michael Leopard","migration-from-azure-devops-to-gitlab",{"title":1643,"description":1644,"heroImage":1645,"category":919,"date":1646,"authors":1647,"slug":1649,"externalUrl":923},"世界最大のGitLabインスタンスを1日12回デプロイする方法","GitLab.comのデプロイパイプラインを技術的に深掘りします。段階的ロールアウト、Canary戦略、データベースマイグレーション、マルチバージョン互換性について解説します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1764108112/tyntnsy3xotlmehtnfkb.png","2025-12-01",[1648],"John Skarbek","continuously-deploying-the-largest-gitlab-instance",{"promotions":1651},[1652,1666,1678,1690],{"id":1653,"categories":1654,"header":1656,"text":1657,"button":1658,"image":1663},"ai-modernization",[1655],"ai","AIの真価、組織全体で発揮できていますか？","所要時間は5分以内です",{"text":1659,"config":1660},"AI成熟度スコアを確認する",{"href":1661,"dataGaName":1662,"dataGaLocation":1154},"/ja-jp/assessments/ai-modernization-assessment/","modernization assessment",{"config":1664},{"src":1665},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1667,"categories":1668,"header":1670,"text":1657,"button":1671,"image":1675},"devops-modernization",[1669,1475],"product","単にツールを管理するだけでなく、イノベーションを提供していますか？",{"text":1672,"config":1673},"DevOps成熟度スコアを確認しましょう",{"href":1674,"dataGaName":1662,"dataGaLocation":1154},"/ja-jp/assessments/devops-modernization-assessment/",{"config":1676},{"src":1677},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1679,"categories":1680,"header":1682,"text":1657,"button":1683,"image":1687},"security-modernization",[1681],"security","スピードのためにセキュリティを犠牲にしていませんか？",{"text":1684,"config":1685},"セキュリティ成熟度スコアを確認しましょう",{"href":1686,"dataGaName":1662,"dataGaLocation":1154},"/ja-jp/assessments/security-modernization-assessment/",{"config":1688},{"src":1689},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1691,"paths":1692,"header":1694,"text":1695,"button":1696,"image":1701},"github-azure-migration",[1641,1693],"integrating-azure-devops-scm-and-gitlab","チームはGitHubのAzure移行に対応できていますか？","GitHubはすでにAzureを基盤として再構築を進めています。それがあなたのチームにとって何を意味するのか、ご確認ください。",{"text":1697,"config":1698},"GitLabとGitHubの比較を見る",{"href":1699,"dataGaName":1700,"dataGaLocation":1154},"/ja-jp/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1702},{"src":1677},{"header":1704,"blurb":1705,"button":1706,"secondaryButton":1710},"今すぐ開発をスピードアップ","DevSecOpsに特化したインテリジェントオーケストレーションプラットフォームで実現できることをご確認ください。\n",{"text":948,"config":1707},{"href":1708,"dataGaName":951,"dataGaLocation":1709},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/ja-jp/","feature",{"text":1260,"config":1711},{"href":955,"dataGaName":956,"dataGaLocation":1709},1781392686985]