0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【GitHubフォーク】開発フロー整理

Last updated at Posted at 2025-03-09

本記事では、GitHubでの開発においてよく使われるフォークを活用した運用フローを、リポジトリ・ブランチ構成図と具体的なコマンドを交えて整理します。
新たな職場の運用でフォークを使用し始めたので、自分なりの運用方法とその流れをまとめました。

🟢登場するリポジトリとブランチの整理

以下のような構成を前提とします。

【GitHub (upstreamリポジトリ・チーム共有)】
├─ master(本番用)
└─ develop(開発用)
     ↑                  ↑
プルリク          プルリク
【GitHub (originリポジトリ・自分専用のフォーク)】
├─ master(upstream/masterをフォーク)
├─ develop(upstream/developをフォーク)
└─ 作業ブランチ(後で作成される)
       ↑push
【ローカルPC】
├─ master(origin/masterを追跡)
├─ develop(origin/developを追跡)
└─ 作業ブランチ(upstream/masterから作成)
  • upstream: チームで共有するリポジトリ(元リポジトリ)
  • origin: 自分専用のフォーク(GitHub上)
  • ローカル: 自分のPC環境で作業するリポジトリ

🟢運用の流れ(詳細コマンド付き)

① upstreamリポジトリをフォーク(ブラウザ操作)

  • GitHubの画面上でupstreamリポジトリをフォーク
    → 自分用リポジトリ(origin)が作成される。

(コマンド不要・GitHubブラウザ上で操作)

② originリポジトリをローカルにクローン(ローカル操作)

自分のPCにoriginをクローンします。

git clone https://github.com/<あなたのGitHub名>/<リポジトリ名>.git
cd <リポジトリ名>

# upstreamも登録(推奨)
git remote add upstream https://github.com/<元のリポジトリ所有者>/<リポジトリ名>.git

③ upstreamの最新を取得して作業ブランチ作成(ローカル操作)

最新のupstream/masterを元にローカルで作業ブランチを作成。

git fetch upstream
git checkout -b feature/<作業名> upstream/master

④ 作業を行いコミットする(ローカル操作)

ローカルの作業ブランチで作業をしてコミットします。

git add .
git commit -m "作業内容をコミット"

⑤ originリポジトリに作業ブランチをpush(ローカル操作)

ローカルの作業ブランチをoriginにpushします。

git push -u origin feature/<作業名>

⑥ GitHub上でorigin作業ブランチ → origin/developにマージ(GitHub操作)

GitHub画面でプルリクエストを作成し、origin内でdevelopにマージします。

  • GitHubページで操作: feature/<作業名> → develop にプルリクエスト&マージ

⑦ origin/develop → upstream/developにプルリク提出(GitHub操作)

マージ後のoriginのdevelopブランチをupstreamのdevelopに向けてプルリクします。

  • GitHub上でorigin/develop → upstream/developへプルリク(開発環境でテストを行う)

⑧ upstream/developでテスト確認(GitHub&開発環境操作)

開発環境でテストをして問題なければ次へ。

  • (開発環境で動作確認)

⑨ テスト完了後、origin作業ブランチ → origin/masterにマージ(GitHub操作)

動作確認後、本番にリリースするためorigin内でmasterにマージ。

  • GitHub画面で操作: originの feature/<作業名> → originの master にマージ

⑩ origin/master → upstream/masterへプルリクしリリース(GitHub操作)

最後に、本番環境へのリリースのためプルリクエスト。

  • GitHub画面で操作: originの master → upstreamの master へプルリク&マージ(本番環境へリリース完了)

🟢定期的にoriginをupstreamと同期する方法(推奨)

originのdevelopやmasterが常に最新になるよう、定期的に同期を取りましょう。

# developの同期
git fetch upstream
git checkout develop
git merge upstream/develop
git push origin develop

# masterの同期
git checkout master
git merge upstream/master
git push origin master

これによりoriginは常にupstreamと同じ最新状態を保てます。


🟢最終的な全体イメージ(再掲)

以下の図がこの運用フローの全体イメージです。

[ローカル作業ブランチ]
     │push
     ▼
[GitHub originリポジトリ]
     │プルリク
     ▼
[GitHub upstream develop(開発環境テスト)]
     │テスト後マージ
     ▼
[GitHub origin master(本番準備)]
     │プルリク(リリース)
     ▼
[GitHub upstream master(本番環境)]

🟢この運用のメリット(まとめ)

  • フォークしたリポジトリ(origin)を経由することで、本流(upstream)への影響をコントロール可能。
  • 開発・テスト・本番のリポジトリとブランチが明確に分かれ、管理がしやすい。
  • 他人のリポジトリを汚さず、権限のない環境でも安全に作業が可能。

以上、GitHubフォークを活用した開発フローの完全整理でした。ぜひ参考にしてみてください!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?