[{"data":1,"prerenderedAt":1604},["ShallowReactive",2],{"content-/github-issue-pr-workflow":3,"all-pages-for-dir":1581,"related-/github-issue-pr-workflow":1582,"og-image-/github-issue-pr-workflow":1603},{"id":4,"title":5,"body":6,"category":1565,"concepts":1565,"description":1566,"extension":1567,"meta":1568,"navigation":71,"ogImage":1565,"path":1569,"project_name":1565,"published":1570,"publishedAt":1571,"seo":1572,"source":1565,"stem":1573,"tags":1574,"todo":1565,"unpublished":1570,"updatedAt":1565,"__hash__":1580},"pages/2025-11/2025-11-01/github-issue-pr-workflow.md","GitHub Issue・PR の正しいワークフロー",{"type":7,"value":8,"toc":1536},"minimark",[9,13,17,26,29,34,93,97,171,174,196,200,308,312,336,340,505,511,524,528,531,536,554,558,611,615,673,677,680,776,780,783,842,852,855,859,911,916,927,931,1055,1058,1062,1225,1235,1239,1242,1326,1329,1332,1335,1363,1366,1457,1460,1466,1474,1479,1497,1502,1529,1532],[10,11,5],"h1",{"id":12},"github-issuepr-の正しいワークフロー",[14,15,16],"h2",{"id":16},"概要",[18,19,20,21,25],"p",{},"GitHubでは、Issue → ブランチ → PR → マージという流れが標準的なワークフローです。PRのdescriptionに ",[22,23,24],"code",{},"Closes #3"," と記載することで、PRマージ時にIssueが自動クローズされます。",[14,27,28],{"id":28},"標準ワークフロー",[30,31,33],"h3",{"id":32},"_1-issueを確認","1. Issueを確認",[35,36,41],"pre",{"className":37,"code":38,"language":39,"meta":40,"style":40},"language-bash shiki shiki-themes vitesse-light vitesse-light","# Issue一覧を確認\ngh issue list\n\n# Issue #3の詳細を確認\ngh issue view 3\n","bash","",[22,42,43,52,66,73,79],{"__ignoreMap":40},[44,45,48],"span",{"class":46,"line":47},"line",1,[44,49,51],{"class":50},"sxvE3","# Issue一覧を確認\n",[44,53,55,59,63],{"class":46,"line":54},2,[44,56,58],{"class":57},"senZ8","gh",[44,60,62],{"class":61},"sdGka"," issue",[44,64,65],{"class":61}," list\n",[44,67,69],{"class":46,"line":68},3,[44,70,72],{"emptyLinePlaceholder":71},true,"\n",[44,74,76],{"class":46,"line":75},4,[44,77,78],{"class":50},"# Issue #3の詳細を確認\n",[44,80,82,84,86,89],{"class":46,"line":81},5,[44,83,58],{"class":57},[44,85,62],{"class":61},[44,87,88],{"class":61}," view",[44,90,92],{"class":91},"sM54T"," 3\n",[30,94,96],{"id":95},"_2-作業用ブランチを作成","2. 作業用ブランチを作成",[35,98,100],{"className":37,"code":99,"language":39,"meta":40,"style":40},"# masterブランチから最新を取得\ngit checkout master\ngit pull origin master\n\n# Issue番号を含むブランチ名で作成（推奨）\ngit checkout -b feature/3-add-search-functionality\n# または\ngit checkout -b fix/3-search-bug\n",[22,101,102,107,118,130,134,139,153,159],{"__ignoreMap":40},[44,103,104],{"class":46,"line":47},[44,105,106],{"class":50},"# masterブランチから最新を取得\n",[44,108,109,112,115],{"class":46,"line":54},[44,110,111],{"class":57},"git",[44,113,114],{"class":61}," checkout",[44,116,117],{"class":61}," master\n",[44,119,120,122,125,128],{"class":46,"line":68},[44,121,111],{"class":57},[44,123,124],{"class":61}," pull",[44,126,127],{"class":61}," origin",[44,129,117],{"class":61},[44,131,132],{"class":46,"line":75},[44,133,72],{"emptyLinePlaceholder":71},[44,135,136],{"class":46,"line":81},[44,137,138],{"class":50},"# Issue番号を含むブランチ名で作成（推奨）\n",[44,140,142,144,146,150],{"class":46,"line":141},6,[44,143,111],{"class":57},[44,145,114],{"class":61},[44,147,149],{"class":148},"snbK4"," -b",[44,151,152],{"class":61}," feature/3-add-search-functionality\n",[44,154,156],{"class":46,"line":155},7,[44,157,158],{"class":50},"# または\n",[44,160,162,164,166,168],{"class":46,"line":161},8,[44,163,111],{"class":57},[44,165,114],{"class":61},[44,167,149],{"class":148},[44,169,170],{"class":61}," fix/3-search-bug\n",[18,172,173],{},"ブランチ名の例：",[175,176,177,184,190],"ul",{},[178,179,180,183],"li",{},[22,181,182],{},"feature/3-add-search"," - 新機能",[178,185,186,189],{},[22,187,188],{},"fix/3-bug-name"," - バグ修正",[178,191,192,195],{},[22,193,194],{},"docs/3-update-readme"," - ドキュメント更新",[30,197,199],{"id":198},"_3-実装コミット","3. 実装・コミット",[35,201,203],{"className":37,"code":202,"language":39,"meta":40,"style":40},"# 変更を実装\n# ...\n\n# 変更をステージング\ngit add .\n\n# コミット（詳細なメッセージ）\ngit commit -m \"feat: FlexSearchによる全文検索機能を実装\n\n- FlexSearchライブラリを追加\n- 検索ページ（/search）を新規作成\n- MDC AST形式に対応したテキスト抽出を実装\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-Authored-By: Claude \u003Cnoreply@anthropic.com>\"\n",[22,204,205,210,215,219,224,234,238,243,260,265,271,277,283,288,294,299],{"__ignoreMap":40},[44,206,207],{"class":46,"line":47},[44,208,209],{"class":50},"# 変更を実装\n",[44,211,212],{"class":46,"line":54},[44,213,214],{"class":50},"# ...\n",[44,216,217],{"class":46,"line":68},[44,218,72],{"emptyLinePlaceholder":71},[44,220,221],{"class":46,"line":75},[44,222,223],{"class":50},"# 変更をステージング\n",[44,225,226,228,231],{"class":46,"line":81},[44,227,111],{"class":57},[44,229,230],{"class":61}," add",[44,232,233],{"class":61}," .\n",[44,235,236],{"class":46,"line":141},[44,237,72],{"emptyLinePlaceholder":71},[44,239,240],{"class":46,"line":155},[44,241,242],{"class":50},"# コミット（詳細なメッセージ）\n",[44,244,245,247,250,253,257],{"class":46,"line":161},[44,246,111],{"class":57},[44,248,249],{"class":61}," commit",[44,251,252],{"class":148}," -m",[44,254,256],{"class":255},"sMJiu"," \"",[44,258,259],{"class":61},"feat: FlexSearchによる全文検索機能を実装\n",[44,261,263],{"class":46,"line":262},9,[44,264,72],{"emptyLinePlaceholder":71},[44,266,268],{"class":46,"line":267},10,[44,269,270],{"class":61},"- FlexSearchライブラリを追加\n",[44,272,274],{"class":46,"line":273},11,[44,275,276],{"class":61},"- 検索ページ（/search）を新規作成\n",[44,278,280],{"class":46,"line":279},12,[44,281,282],{"class":61},"- MDC AST形式に対応したテキスト抽出を実装\n",[44,284,286],{"class":46,"line":285},13,[44,287,72],{"emptyLinePlaceholder":71},[44,289,291],{"class":46,"line":290},14,[44,292,293],{"class":61},"🤖 Generated with [Claude Code](https://claude.com/claude-code)\n",[44,295,297],{"class":46,"line":296},15,[44,298,72],{"emptyLinePlaceholder":71},[44,300,302,305],{"class":46,"line":301},16,[44,303,304],{"class":61},"Co-Authored-By: Claude \u003Cnoreply@anthropic.com>",[44,306,307],{"class":255},"\"\n",[30,309,311],{"id":310},"_4-ブランチをプッシュ","4. ブランチをプッシュ",[35,313,315],{"className":37,"code":314,"language":39,"meta":40,"style":40},"# 初回プッシュ時は -u オプションでトラッキング設定\ngit push -u origin feature/3-add-search-functionality\n",[22,316,317,322],{"__ignoreMap":40},[44,318,319],{"class":46,"line":47},[44,320,321],{"class":50},"# 初回プッシュ時は -u オプションでトラッキング設定\n",[44,323,324,326,329,332,334],{"class":46,"line":54},[44,325,111],{"class":57},[44,327,328],{"class":61}," push",[44,330,331],{"class":148}," -u",[44,333,127],{"class":61},[44,335,152],{"class":61},[30,337,339],{"id":338},"_5-prを作成","5. PRを作成",[35,341,343],{"className":37,"code":342,"language":39,"meta":40,"style":40},"gh pr create --title \"検索機能の実装\" --body \"$(cat \u003C\u003C'EOF'\n## 概要\nFlexSearchを使用した全文検索機能を実装しました。\n\n## 変更内容\n- ✅ FlexSearchライブラリの追加\n- ✅ `/search` ページの新規作成\n- ✅ MDC AST形式のテキスト抽出対応\n- ✅ 日本語・英語の全文検索対応\n- ✅ キーワードハイライト機能\n- ✅ デバウンス処理（300ms）\n\n## テスト\n- [x] 英語検索（例: \"SEO\", \"Excel\"）\n- [x] 日本語検索（例: \"赤字\", \"繰越欠損金\"）\n- [x] 短い単語の検索\n- [x] スニペット生成とハイライト\n\n## 関連Issue\nCloses #3\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\nEOF\n)\"\n",[22,344,345,385,390,395,399,404,409,414,419,424,429,434,438,443,448,453,458,464,469,475,481,486,491,497],{"__ignoreMap":40},[44,346,347,349,352,355,358,360,363,366,369,371,375,378,382],{"class":46,"line":47},[44,348,58],{"class":57},[44,350,351],{"class":61}," pr",[44,353,354],{"class":61}," create",[44,356,357],{"class":148}," --title",[44,359,256],{"class":255},[44,361,362],{"class":61},"検索機能の実装",[44,364,365],{"class":255},"\"",[44,367,368],{"class":148}," --body",[44,370,256],{"class":255},[44,372,374],{"class":373},"shFtX","$(",[44,376,377],{"class":57},"cat",[44,379,381],{"class":380},"stQ0i"," \u003C\u003C",[44,383,384],{"class":255},"'EOF'\n",[44,386,387],{"class":46,"line":54},[44,388,389],{"class":61},"## 概要\n",[44,391,392],{"class":46,"line":68},[44,393,394],{"class":61},"FlexSearchを使用した全文検索機能を実装しました。\n",[44,396,397],{"class":46,"line":75},[44,398,72],{"emptyLinePlaceholder":71},[44,400,401],{"class":46,"line":81},[44,402,403],{"class":61},"## 変更内容\n",[44,405,406],{"class":46,"line":141},[44,407,408],{"class":61},"- ✅ FlexSearchライブラリの追加\n",[44,410,411],{"class":46,"line":155},[44,412,413],{"class":61},"- ✅ `/search` ページの新規作成\n",[44,415,416],{"class":46,"line":161},[44,417,418],{"class":61},"- ✅ MDC AST形式のテキスト抽出対応\n",[44,420,421],{"class":46,"line":262},[44,422,423],{"class":61},"- ✅ 日本語・英語の全文検索対応\n",[44,425,426],{"class":46,"line":267},[44,427,428],{"class":61},"- ✅ キーワードハイライト機能\n",[44,430,431],{"class":46,"line":273},[44,432,433],{"class":61},"- ✅ デバウンス処理（300ms）\n",[44,435,436],{"class":46,"line":279},[44,437,72],{"emptyLinePlaceholder":71},[44,439,440],{"class":46,"line":285},[44,441,442],{"class":61},"## テスト\n",[44,444,445],{"class":46,"line":290},[44,446,447],{"class":61},"- [x] 英語検索（例: \"SEO\", \"Excel\"）\n",[44,449,450],{"class":46,"line":296},[44,451,452],{"class":61},"- [x] 日本語検索（例: \"赤字\", \"繰越欠損金\"）\n",[44,454,455],{"class":46,"line":301},[44,456,457],{"class":61},"- [x] 短い単語の検索\n",[44,459,461],{"class":46,"line":460},17,[44,462,463],{"class":61},"- [x] スニペット生成とハイライト\n",[44,465,467],{"class":46,"line":466},18,[44,468,72],{"emptyLinePlaceholder":71},[44,470,472],{"class":46,"line":471},19,[44,473,474],{"class":61},"## 関連Issue\n",[44,476,478],{"class":46,"line":477},20,[44,479,480],{"class":61},"Closes #3\n",[44,482,484],{"class":46,"line":483},21,[44,485,72],{"emptyLinePlaceholder":71},[44,487,489],{"class":46,"line":488},22,[44,490,293],{"class":61},[44,492,494],{"class":46,"line":493},23,[44,495,496],{"class":255},"EOF\n",[44,498,500,503],{"class":46,"line":499},24,[44,501,502],{"class":373},")",[44,504,307],{"class":255},[18,506,507],{},[508,509,510],"strong",{},"重要ポイント:",[175,512,513,518,521],{},[178,514,515,517],{},[22,516,24],{}," で Issue #3 とリンク",[178,519,520],{},"PR本文に変更内容を詳しく記載",[178,522,523],{},"チェックリストで実施内容を明示",[30,525,527],{"id":526},"_6-prマージ","6. PRマージ",[18,529,530],{},"PRがレビュー・承認されたら、以下のいずれかの方法でマージ：",[532,533,535],"h4",{"id":534},"方法a-github-web-ui","方法A: GitHub Web UI",[537,538,539,542,545,548],"ol",{},[178,540,541],{},"PR画面で「Merge pull request」をクリック",[178,543,544],{},"マージメッセージを確認",[178,546,547],{},"「Confirm merge」をクリック",[178,549,550,553],{},[508,551,552],{},"Issue #3 が自動的にクローズされる"," ✨",[532,555,557],{"id":556},"方法b-github-cli","方法B: GitHub CLI",[35,559,561],{"className":37,"code":560,"language":39,"meta":40,"style":40},"# PRをマージ\ngh pr merge 4 --squash --delete-branch\n\n# または、マージ方法を選択\ngh pr merge 4\n# → Merge方法を選択: Squash / Merge commit / Rebase\n",[22,562,563,568,586,590,595,606],{"__ignoreMap":40},[44,564,565],{"class":46,"line":47},[44,566,567],{"class":50},"# PRをマージ\n",[44,569,570,572,574,577,580,583],{"class":46,"line":54},[44,571,58],{"class":57},[44,573,351],{"class":61},[44,575,576],{"class":61}," merge",[44,578,579],{"class":91}," 4",[44,581,582],{"class":148}," --squash",[44,584,585],{"class":148}," --delete-branch\n",[44,587,588],{"class":46,"line":68},[44,589,72],{"emptyLinePlaceholder":71},[44,591,592],{"class":46,"line":75},[44,593,594],{"class":50},"# または、マージ方法を選択\n",[44,596,597,599,601,603],{"class":46,"line":81},[44,598,58],{"class":57},[44,600,351],{"class":61},[44,602,576],{"class":61},[44,604,605],{"class":91}," 4\n",[44,607,608],{"class":46,"line":141},[44,609,610],{"class":50},"# → Merge方法を選択: Squash / Merge commit / Rebase\n",[30,612,614],{"id":613},"_7-ローカルブランチの削除","7. ローカルブランチの削除",[35,616,618],{"className":37,"code":617,"language":39,"meta":40,"style":40},"# masterに戻る\ngit checkout master\n\n# リモートの最新を取得\ngit pull origin master\n\n# 作業ブランチを削除\ngit branch -d feature/3-add-search-functionality\n",[22,619,620,625,633,637,642,652,656,661],{"__ignoreMap":40},[44,621,622],{"class":46,"line":47},[44,623,624],{"class":50},"# masterに戻る\n",[44,626,627,629,631],{"class":46,"line":54},[44,628,111],{"class":57},[44,630,114],{"class":61},[44,632,117],{"class":61},[44,634,635],{"class":46,"line":68},[44,636,72],{"emptyLinePlaceholder":71},[44,638,639],{"class":46,"line":75},[44,640,641],{"class":50},"# リモートの最新を取得\n",[44,643,644,646,648,650],{"class":46,"line":81},[44,645,111],{"class":57},[44,647,124],{"class":61},[44,649,127],{"class":61},[44,651,117],{"class":61},[44,653,654],{"class":46,"line":141},[44,655,72],{"emptyLinePlaceholder":71},[44,657,658],{"class":46,"line":155},[44,659,660],{"class":50},"# 作業ブランチを削除\n",[44,662,663,665,668,671],{"class":46,"line":161},[44,664,111],{"class":57},[44,666,667],{"class":61}," branch",[44,669,670],{"class":148}," -d",[44,672,152],{"class":61},[14,674,676],{"id":675},"pr-description-のベストプラクティス","PR Description のベストプラクティス",[30,678,679],{"id":679},"基本構成",[35,681,685],{"className":682,"code":683,"language":684,"meta":40,"style":40},"language-markdown shiki shiki-themes vitesse-light vitesse-light","## 概要\n何を実装/修正したかを1-2行で説明\n\n## 変更内容\n- 主要な変更点をリスト化\n- ファイル単位または機能単位で記載\n\n## テスト\n実施したテストケース\n\n## スクリーンショット（必要に応じて）\n視覚的な変更がある場合\n\n## 関連Issue\nCloses #3\n","markdown",[22,686,687,697,703,707,714,722,729,733,740,745,749,756,761,765,772],{"__ignoreMap":40},[44,688,689,693],{"class":46,"line":47},[44,690,692],{"class":691},"sFA8A","##",[44,694,696],{"class":695},"syTZV"," 概要\n",[44,698,699],{"class":46,"line":54},[44,700,702],{"class":701},"sG7-3","何を実装/修正したかを1-2行で説明\n",[44,704,705],{"class":46,"line":68},[44,706,72],{"emptyLinePlaceholder":71},[44,708,709,711],{"class":46,"line":75},[44,710,692],{"class":691},[44,712,713],{"class":695}," 変更内容\n",[44,715,716,719],{"class":46,"line":81},[44,717,718],{"class":148},"-",[44,720,721],{"class":701}," 主要な変更点をリスト化\n",[44,723,724,726],{"class":46,"line":141},[44,725,718],{"class":148},[44,727,728],{"class":701}," ファイル単位または機能単位で記載\n",[44,730,731],{"class":46,"line":155},[44,732,72],{"emptyLinePlaceholder":71},[44,734,735,737],{"class":46,"line":161},[44,736,692],{"class":691},[44,738,739],{"class":695}," テスト\n",[44,741,742],{"class":46,"line":262},[44,743,744],{"class":701},"実施したテストケース\n",[44,746,747],{"class":46,"line":267},[44,748,72],{"emptyLinePlaceholder":71},[44,750,751,753],{"class":46,"line":273},[44,752,692],{"class":691},[44,754,755],{"class":695}," スクリーンショット（必要に応じて）\n",[44,757,758],{"class":46,"line":279},[44,759,760],{"class":701},"視覚的な変更がある場合\n",[44,762,763],{"class":46,"line":285},[44,764,72],{"emptyLinePlaceholder":71},[44,766,767,769],{"class":46,"line":290},[44,768,692],{"class":691},[44,770,771],{"class":695}," 関連Issue\n",[44,773,774],{"class":46,"line":296},[44,775,480],{"class":701},[30,777,779],{"id":778},"issueを自動クローズするキーワード","Issueを自動クローズするキーワード",[18,781,782],{},"PRのdescriptionまたはコミットメッセージに以下を記載：",[784,785,786,799],"table",{},[787,788,789],"thead",{},[790,791,792,796],"tr",{},[793,794,795],"th",{},"キーワード",[793,797,798],{},"例",[800,801,802,812,822,832],"tbody",{},[790,803,804,809],{},[805,806,807],"td",{},[22,808,24],{},[805,810,811],{},"最も一般的",[790,813,814,819],{},[805,815,816],{},[22,817,818],{},"Fixes #3",[805,820,821],{},"バグ修正の場合",[790,823,824,829],{},[805,825,826],{},[22,827,828],{},"Resolves #3",[805,830,831],{},"問題解決の場合",[790,833,834,839],{},[805,835,836],{},[22,837,838],{},"Close #3, #4",[805,840,841],{},"複数Issue同時クローズ",[18,843,844,845],{},"参考: ",[846,847,851],"a",{"href":848,"rel":849},"https://docs.github.com/ja/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue",[850],"nofollow","GitHub公式ドキュメント",[14,853,854],{"id":854},"今回の反省点",[30,856,858],{"id":857},"実際に行ったこと誤り","実際に行ったこと（誤り）",[35,860,862],{"className":37,"code":861,"language":39,"meta":40,"style":40},"# masterブランチで直接作業\ngit checkout master\n# 変更を実装...\ngit commit -m \"...\"\ngit push origin master  # ← masterに直接プッシュ\n",[22,863,864,869,877,882,897],{"__ignoreMap":40},[44,865,866],{"class":46,"line":47},[44,867,868],{"class":50},"# masterブランチで直接作業\n",[44,870,871,873,875],{"class":46,"line":54},[44,872,111],{"class":57},[44,874,114],{"class":61},[44,876,117],{"class":61},[44,878,879],{"class":46,"line":68},[44,880,881],{"class":50},"# 変更を実装...\n",[44,883,884,886,888,890,892,895],{"class":46,"line":75},[44,885,111],{"class":57},[44,887,249],{"class":61},[44,889,252],{"class":148},[44,891,256],{"class":255},[44,893,894],{"class":61},"...",[44,896,307],{"class":255},[44,898,899,901,903,905,908],{"class":46,"line":81},[44,900,111],{"class":57},[44,902,328],{"class":61},[44,904,127],{"class":61},[44,906,907],{"class":61}," master",[44,909,910],{"class":50},"  # ← masterに直接プッシュ\n",[18,912,913],{},[508,914,915],{},"問題点:",[175,917,918,921,924],{},[178,919,920],{},"✗ PRを経由していないためレビュー不可",[178,922,923],{},"✗ Issueが自動クローズされない",[178,925,926],{},"✗ 変更履歴がフラットで追跡困難",[30,928,930],{"id":929},"正しい流れ修正版","正しい流れ（修正版）",[35,932,934],{"className":37,"code":933,"language":39,"meta":40,"style":40},"# 1. 作業ブランチを作成\ngit checkout -b feature/3-add-search-functionality\n\n# 2. 変更を実装・コミット\ngit add .\ngit commit -m \"...\"\n\n# 3. ブランチをプッシュ\ngit push -u origin feature/3-add-search-functionality\n\n# 4. PRを作成（Closes #3 を記載）\ngh pr create --title \"...\" --body \"...Closes #3...\"\n\n# 5. PRをマージ → Issue #3 自動クローズ ✨\ngh pr merge\n",[22,935,936,941,951,955,960,968,982,986,991,1003,1007,1012,1037,1041,1046],{"__ignoreMap":40},[44,937,938],{"class":46,"line":47},[44,939,940],{"class":50},"# 1. 作業ブランチを作成\n",[44,942,943,945,947,949],{"class":46,"line":54},[44,944,111],{"class":57},[44,946,114],{"class":61},[44,948,149],{"class":148},[44,950,152],{"class":61},[44,952,953],{"class":46,"line":68},[44,954,72],{"emptyLinePlaceholder":71},[44,956,957],{"class":46,"line":75},[44,958,959],{"class":50},"# 2. 変更を実装・コミット\n",[44,961,962,964,966],{"class":46,"line":81},[44,963,111],{"class":57},[44,965,230],{"class":61},[44,967,233],{"class":61},[44,969,970,972,974,976,978,980],{"class":46,"line":141},[44,971,111],{"class":57},[44,973,249],{"class":61},[44,975,252],{"class":148},[44,977,256],{"class":255},[44,979,894],{"class":61},[44,981,307],{"class":255},[44,983,984],{"class":46,"line":155},[44,985,72],{"emptyLinePlaceholder":71},[44,987,988],{"class":46,"line":161},[44,989,990],{"class":50},"# 3. ブランチをプッシュ\n",[44,992,993,995,997,999,1001],{"class":46,"line":262},[44,994,111],{"class":57},[44,996,328],{"class":61},[44,998,331],{"class":148},[44,1000,127],{"class":61},[44,1002,152],{"class":61},[44,1004,1005],{"class":46,"line":267},[44,1006,72],{"emptyLinePlaceholder":71},[44,1008,1009],{"class":46,"line":273},[44,1010,1011],{"class":50},"# 4. PRを作成（Closes #3 を記載）\n",[44,1013,1014,1016,1018,1020,1022,1024,1026,1028,1030,1032,1035],{"class":46,"line":279},[44,1015,58],{"class":57},[44,1017,351],{"class":61},[44,1019,354],{"class":61},[44,1021,357],{"class":148},[44,1023,256],{"class":255},[44,1025,894],{"class":61},[44,1027,365],{"class":255},[44,1029,368],{"class":148},[44,1031,256],{"class":255},[44,1033,1034],{"class":61},"...Closes #3...",[44,1036,307],{"class":255},[44,1038,1039],{"class":46,"line":285},[44,1040,72],{"emptyLinePlaceholder":71},[44,1042,1043],{"class":46,"line":290},[44,1044,1045],{"class":50},"# 5. PRをマージ → Issue #3 自動クローズ ✨\n",[44,1047,1048,1050,1052],{"class":46,"line":296},[44,1049,58],{"class":57},[44,1051,351],{"class":61},[44,1053,1054],{"class":61}," merge\n",[14,1056,1057],{"id":1057},"既にmasterにプッシュしてしまった場合のリカバリ",[30,1059,1061],{"id":1060},"方法1-ブランチを作り直す","方法1: ブランチを作り直す",[35,1063,1065],{"className":37,"code":1064,"language":39,"meta":40,"style":40},"# 1. 現在のHEADからブランチを作成\ngit checkout -b feature/3-add-search-functionality\n\n# 2. masterを元に戻す（プッシュ前の状態）\ngit checkout master\ngit reset --hard origin/master\n\n# または、特定のコミットまで戻す\ngit reset --hard \u003Ccommit-hash>\n\n# 3. masterを強制プッシュ（注意！）\ngit push origin master --force\n\n# 4. feature ブランチをプッシュ\ngit checkout feature/3-add-search-functionality\ngit push -u origin feature/3-add-search-functionality\n\n# 5. 通常通りPRを作成\ngh pr create --title \"...\" --body \"...Closes #3...\"\n",[22,1066,1067,1072,1082,1086,1091,1099,1112,1116,1121,1141,1145,1150,1163,1167,1172,1180,1192,1196,1201],{"__ignoreMap":40},[44,1068,1069],{"class":46,"line":47},[44,1070,1071],{"class":50},"# 1. 現在のHEADからブランチを作成\n",[44,1073,1074,1076,1078,1080],{"class":46,"line":54},[44,1075,111],{"class":57},[44,1077,114],{"class":61},[44,1079,149],{"class":148},[44,1081,152],{"class":61},[44,1083,1084],{"class":46,"line":68},[44,1085,72],{"emptyLinePlaceholder":71},[44,1087,1088],{"class":46,"line":75},[44,1089,1090],{"class":50},"# 2. masterを元に戻す（プッシュ前の状態）\n",[44,1092,1093,1095,1097],{"class":46,"line":81},[44,1094,111],{"class":57},[44,1096,114],{"class":61},[44,1098,117],{"class":61},[44,1100,1101,1103,1106,1109],{"class":46,"line":141},[44,1102,111],{"class":57},[44,1104,1105],{"class":61}," reset",[44,1107,1108],{"class":148}," --hard",[44,1110,1111],{"class":61}," origin/master\n",[44,1113,1114],{"class":46,"line":155},[44,1115,72],{"emptyLinePlaceholder":71},[44,1117,1118],{"class":46,"line":161},[44,1119,1120],{"class":50},"# または、特定のコミットまで戻す\n",[44,1122,1123,1125,1127,1129,1132,1135,1138],{"class":46,"line":262},[44,1124,111],{"class":57},[44,1126,1105],{"class":61},[44,1128,1108],{"class":148},[44,1130,1131],{"class":380}," \u003C",[44,1133,1134],{"class":61},"commit-has",[44,1136,1137],{"class":701},"h",[44,1139,1140],{"class":380},">\n",[44,1142,1143],{"class":46,"line":267},[44,1144,72],{"emptyLinePlaceholder":71},[44,1146,1147],{"class":46,"line":273},[44,1148,1149],{"class":50},"# 3. masterを強制プッシュ（注意！）\n",[44,1151,1152,1154,1156,1158,1160],{"class":46,"line":279},[44,1153,111],{"class":57},[44,1155,328],{"class":61},[44,1157,127],{"class":61},[44,1159,907],{"class":61},[44,1161,1162],{"class":148}," --force\n",[44,1164,1165],{"class":46,"line":285},[44,1166,72],{"emptyLinePlaceholder":71},[44,1168,1169],{"class":46,"line":290},[44,1170,1171],{"class":50},"# 4. feature ブランチをプッシュ\n",[44,1173,1174,1176,1178],{"class":46,"line":296},[44,1175,111],{"class":57},[44,1177,114],{"class":61},[44,1179,152],{"class":61},[44,1181,1182,1184,1186,1188,1190],{"class":46,"line":301},[44,1183,111],{"class":57},[44,1185,328],{"class":61},[44,1187,331],{"class":148},[44,1189,127],{"class":61},[44,1191,152],{"class":61},[44,1193,1194],{"class":46,"line":460},[44,1195,72],{"emptyLinePlaceholder":71},[44,1197,1198],{"class":46,"line":466},[44,1199,1200],{"class":50},"# 5. 通常通りPRを作成\n",[44,1202,1203,1205,1207,1209,1211,1213,1215,1217,1219,1221,1223],{"class":46,"line":471},[44,1204,58],{"class":57},[44,1206,351],{"class":61},[44,1208,354],{"class":61},[44,1210,357],{"class":148},[44,1212,256],{"class":255},[44,1214,894],{"class":61},[44,1216,365],{"class":255},[44,1218,368],{"class":148},[44,1220,256],{"class":255},[44,1222,1034],{"class":61},[44,1224,307],{"class":255},[18,1226,1227,1230,1231,1234],{},[508,1228,1229],{},"注意:"," ",[22,1232,1233],{},"--force"," プッシュはチーム開発では危険です。個人リポジトリでのみ使用してください。",[30,1236,1238],{"id":1237},"方法2-今回は諦めて次回から正しく実施","方法2: 今回は諦めて次回から正しく実施",[18,1240,1241],{},"今回は手動でIssueをクローズし、次回から正しいワークフローを実践する方が安全です：",[35,1243,1245],{"className":37,"code":1244,"language":39,"meta":40,"style":40},"# Issueにコメントを追加\ngh issue comment 3 --body \"検索機能を実装しました。\n\n実装内容:\n- FlexSearchによる全文検索\n- MDC AST対応\n- 日本語・英語検索対応\n\n関連コミット: d7e6594, e7a3da1, cbc5aeb, 9cd9b7e\"\n\n# Issueを手動でクローズ\ngh issue close 3\n",[22,1246,1247,1252,1271,1275,1280,1285,1290,1295,1299,1306,1310,1315],{"__ignoreMap":40},[44,1248,1249],{"class":46,"line":47},[44,1250,1251],{"class":50},"# Issueにコメントを追加\n",[44,1253,1254,1256,1258,1261,1264,1266,1268],{"class":46,"line":54},[44,1255,58],{"class":57},[44,1257,62],{"class":61},[44,1259,1260],{"class":61}," comment",[44,1262,1263],{"class":91}," 3",[44,1265,368],{"class":148},[44,1267,256],{"class":255},[44,1269,1270],{"class":61},"検索機能を実装しました。\n",[44,1272,1273],{"class":46,"line":68},[44,1274,72],{"emptyLinePlaceholder":71},[44,1276,1277],{"class":46,"line":75},[44,1278,1279],{"class":61},"実装内容:\n",[44,1281,1282],{"class":46,"line":81},[44,1283,1284],{"class":61},"- FlexSearchによる全文検索\n",[44,1286,1287],{"class":46,"line":141},[44,1288,1289],{"class":61},"- MDC AST対応\n",[44,1291,1292],{"class":46,"line":155},[44,1293,1294],{"class":61},"- 日本語・英語検索対応\n",[44,1296,1297],{"class":46,"line":161},[44,1298,72],{"emptyLinePlaceholder":71},[44,1300,1301,1304],{"class":46,"line":262},[44,1302,1303],{"class":61},"関連コミット: d7e6594, e7a3da1, cbc5aeb, 9cd9b7e",[44,1305,307],{"class":255},[44,1307,1308],{"class":46,"line":267},[44,1309,72],{"emptyLinePlaceholder":71},[44,1311,1312],{"class":46,"line":273},[44,1313,1314],{"class":50},"# Issueを手動でクローズ\n",[44,1316,1317,1319,1321,1324],{"class":46,"line":279},[44,1318,58],{"class":57},[44,1320,62],{"class":61},[44,1322,1323],{"class":61}," close",[44,1325,92],{"class":91},[14,1327,1328],{"id":1328},"チーム開発での追加ルール",[30,1330,1331],{"id":1331},"ブランチ保護",[18,1333,1334],{},"masterブランチを保護して、直接プッシュを防止：",[537,1336,1337,1340,1343,1349],{},[178,1338,1339],{},"GitHub リポジトリ → Settings → Branches",[178,1341,1342],{},"\"Add rule\" をクリック",[178,1344,1345,1346],{},"Branch name pattern: ",[22,1347,1348],{},"master",[178,1350,1351,1352],{},"以下をチェック:\n",[175,1353,1354,1357,1360],{},[178,1355,1356],{},"✅ Require pull request before merging",[178,1358,1359],{},"✅ Require approvals (1人以上)",[178,1361,1362],{},"✅ Dismiss stale approvals",[30,1364,1365],{"id":1365},"レビュープロセス",[35,1367,1369],{"className":37,"code":1368,"language":39,"meta":40,"style":40},"# PR作成時にレビュアーを指定\ngh pr create --reviewer username1,username2\n\n# レビューコメントに返信\ngh pr comment 4 --body \"ご指摘ありがとうございます。修正しました。\"\n\n# 修正をプッシュ（同じブランチに追加コミット）\ngit add .\ngit commit -m \"fix: レビュー指摘事項を修正\"\ngit push\n",[22,1370,1371,1376,1390,1394,1399,1418,1422,1427,1435,1450],{"__ignoreMap":40},[44,1372,1373],{"class":46,"line":47},[44,1374,1375],{"class":50},"# PR作成時にレビュアーを指定\n",[44,1377,1378,1380,1382,1384,1387],{"class":46,"line":54},[44,1379,58],{"class":57},[44,1381,351],{"class":61},[44,1383,354],{"class":61},[44,1385,1386],{"class":148}," --reviewer",[44,1388,1389],{"class":61}," username1,username2\n",[44,1391,1392],{"class":46,"line":68},[44,1393,72],{"emptyLinePlaceholder":71},[44,1395,1396],{"class":46,"line":75},[44,1397,1398],{"class":50},"# レビューコメントに返信\n",[44,1400,1401,1403,1405,1407,1409,1411,1413,1416],{"class":46,"line":81},[44,1402,58],{"class":57},[44,1404,351],{"class":61},[44,1406,1260],{"class":61},[44,1408,579],{"class":91},[44,1410,368],{"class":148},[44,1412,256],{"class":255},[44,1414,1415],{"class":61},"ご指摘ありがとうございます。修正しました。",[44,1417,307],{"class":255},[44,1419,1420],{"class":46,"line":141},[44,1421,72],{"emptyLinePlaceholder":71},[44,1423,1424],{"class":46,"line":155},[44,1425,1426],{"class":50},"# 修正をプッシュ（同じブランチに追加コミット）\n",[44,1428,1429,1431,1433],{"class":46,"line":161},[44,1430,111],{"class":57},[44,1432,230],{"class":61},[44,1434,233],{"class":61},[44,1436,1437,1439,1441,1443,1445,1448],{"class":46,"line":262},[44,1438,111],{"class":57},[44,1440,249],{"class":61},[44,1442,252],{"class":148},[44,1444,256],{"class":255},[44,1446,1447],{"class":61},"fix: レビュー指摘事項を修正",[44,1449,307],{"class":255},[44,1451,1452,1454],{"class":46,"line":267},[44,1453,111],{"class":57},[44,1455,1456],{"class":61}," push\n",[14,1458,1459],{"id":1459},"まとめ",[18,1461,1462,1463],{},"✅ ",[508,1464,1465],{},"正しいワークフロー:",[35,1467,1472],{"className":1468,"code":1470,"language":1471},[1469],"language-text","Issue作成 → ブランチ作成 → 実装 → PR作成（Closes #N） → レビュー → マージ → Issue自動クローズ\n","text",[22,1473,1470],{"__ignoreMap":40},[18,1475,1462,1476],{},[508,1477,1478],{},"ベストプラクティス:",[175,1480,1481,1484,1491,1494],{},[178,1482,1483],{},"Issue番号をブランチ名に含める",[178,1485,1486,1487,1490],{},"PRのdescriptionに ",[22,1488,1489],{},"Closes #N"," を記載",[178,1492,1493],{},"PRで変更内容を詳しく説明",[178,1495,1496],{},"masterに直接プッシュしない",[18,1498,1462,1499],{},[508,1500,1501],{},"次回の実践:",[537,1503,1504,1509,1512,1517,1526],{},[178,1505,1506],{},[22,1507,1508],{},"git checkout -b feature/issue番号-機能名",[178,1510,1511],{},"実装・コミット",[178,1513,1514],{},[22,1515,1516],{},"git push -u origin ブランチ名",[178,1518,1519,1522,1523,1525],{},[22,1520,1521],{},"gh pr create"," で ",[22,1524,1489],{}," を含むPRを作成",[178,1527,1528],{},"PRマージでIssue自動クローズ",[18,1530,1531],{},"このワークフローを実践することで、変更履歴が整理され、レビューがしやすく、Issueとの紐付けも自動化されます。",[1533,1534,1535],"style",{},"html pre.shiki code .sxvE3, html code.shiki .sxvE3{--shiki-default:#A0ADA0;--shiki-dark:#A0ADA0}html pre.shiki code .senZ8, html code.shiki .senZ8{--shiki-default:#59873A;--shiki-dark:#59873A}html pre.shiki code .sdGka, html code.shiki .sdGka{--shiki-default:#B56959;--shiki-dark:#B56959}html pre.shiki code .sM54T, html code.shiki .sM54T{--shiki-default:#2F798A;--shiki-dark:#2F798A}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 .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .snbK4, html code.shiki .snbK4{--shiki-default:#A65E2B;--shiki-dark:#A65E2B}html pre.shiki code .sMJiu, html code.shiki .sMJiu{--shiki-default:#B5695977;--shiki-dark:#B5695977}html pre.shiki code .shFtX, html code.shiki .shFtX{--shiki-default:#999999;--shiki-dark:#999999}html pre.shiki code .stQ0i, html code.shiki .stQ0i{--shiki-default:#AB5959;--shiki-dark:#AB5959}html pre.shiki code .sFA8A, html code.shiki .sFA8A{--shiki-default:#999999;--shiki-default-font-weight:bold;--shiki-dark:#999999;--shiki-dark-font-weight:bold}html pre.shiki code .syTZV, html code.shiki .syTZV{--shiki-default:#1C6B48;--shiki-default-font-weight:bold;--shiki-dark:#1C6B48;--shiki-dark-font-weight:bold}html pre.shiki code .sG7-3, html code.shiki .sG7-3{--shiki-default:#393A34;--shiki-dark:#393A34}",{"title":40,"searchDepth":54,"depth":54,"links":1537},[1538,1539,1548,1552,1556,1560,1564],{"id":16,"depth":54,"text":16},{"id":28,"depth":54,"text":28,"children":1540},[1541,1542,1543,1544,1545,1546,1547],{"id":32,"depth":68,"text":33},{"id":95,"depth":68,"text":96},{"id":198,"depth":68,"text":199},{"id":310,"depth":68,"text":311},{"id":338,"depth":68,"text":339},{"id":526,"depth":68,"text":527},{"id":613,"depth":68,"text":614},{"id":675,"depth":54,"text":676,"children":1549},[1550,1551],{"id":679,"depth":68,"text":679},{"id":778,"depth":68,"text":779},{"id":854,"depth":54,"text":854,"children":1553},[1554,1555],{"id":857,"depth":68,"text":858},{"id":929,"depth":68,"text":930},{"id":1057,"depth":54,"text":1057,"children":1557},[1558,1559],{"id":1060,"depth":68,"text":1061},{"id":1237,"depth":68,"text":1238},{"id":1328,"depth":54,"text":1328,"children":1561},[1562,1563],{"id":1331,"depth":68,"text":1331},{"id":1365,"depth":68,"text":1365},{"id":1459,"depth":54,"text":1459},null,"IssueからPRを作成し、自動クローズさせる標準的な開発フロー","md",{},"/github-issue-pr-workflow",false,"2025-11-01T00:00:00.000Z",{"title":5,"description":1566},"2025-11/2025-11-01/github-issue-pr-workflow",[1575,1576,111,1577,1578,1579],"GitHub","workflow","PR","Issue","best-practice","ScNI3q4tSp96Y-OS_MtP4XTtIdPHxEKVz1Av-1iu_YU",[],[1583,1587,1591,1595,1599],{"title":1584,"path":1585,"publishedAt":1586},"oshieru-sansu PR #58 マージ後レビューと内角の丸めバグ修正","/oshieru-sansu-pr58-postmerge-review","2026-06-13T00:00:00.000Z",{"title":1588,"path":1589,"publishedAt":1590},"ブランチ跨ぎでmemoが消えたと焦った話。stash→branch切替→マージ→PR作成までを順次実行","/2026-05-03-git-stash-branch-merge-workflow","2026-05-03T00:00:00.000Z",{"title":1592,"path":1593,"publishedAt":1594},"並列ブランチ問題: 同じファイルへの複数PRがコンフリクトする理由と対策","/parallel-branch-problem","2025-12-31T00:00:00.000Z",{"title":1596,"path":1597,"publishedAt":1598},"GitHub Rulesets（ルールセット）とは","/github-rulesets-guide","2025-12-18T00:00:00.000Z",{"title":1600,"path":1601,"publishedAt":1602},"Git Worktreeを使った複数のClaudeセッションの並行実行","/git-worktree-parallel-claude-sessions","2025-10-19T00:00:00.000Z","https://log.eurekapu.com/og/blog/github-issue-pr-workflow.png?v=2025-11-01T00%3A00%3A00.000Z&title=GitHub%20Issue%E3%83%BBPR%20%E3%81%AE%E6%AD%A3%E3%81%97%E3%81%84%E3%83%AF%E3%83%BC%E3%82%AF%E3%83%95%E3%83%AD%E3%83%BC&author=Kei%20Komatsu&sig=05b7668b64c34e96",1785654956702]