Webチームの案件開発においては、先方専用のOrganizationの中にリポジトリを作り、それをwinc1980でForkして作ったリポジトリで作業する。そうすることで、ソースコードを先方に帰属させつつ、開発の実績をwinc1980に残すことができる。このドキュメントではGitHubの機能であるForkについての解説と、案件においてForkしたリポジトリ上で開発する際の留意事項についてまとめる。

※Git/GitHubでcommitを出したりPR(プルリクエスト)を作ったりなどの基本操作はできる前提で書いているので、自信がない人はこのドキュメントを見るようにしてください。

Forkとは

フォークとは、元の "上流" リポジトリとコードと可視性の設定を共有する新しいリポジトリです。 多くの場合、フォークは、上流リポジトリに再提案する前に、アイデアや変更に繰り返し取り組むために使用されます。たとえば、オープンソース プロジェクトや、ユーザーが上流リポジトリへの書き込みアクセス権を持っていない場合などです。(参考資料)

作業手順

案件の開発では、先方のOrganizationにあるリポジトリをForkし、そこで作業する。作業をしてPRをマージすると、Fork元のリポジトリと差分が生じる。その差分は極力作らないようにしたいので、原則Fork先のリポジトリで更新が生じたら(PRをマージしたら)、Forkも更新すること。以下、詳細手順である。

  1. Fork先のリポジトリでPRをマージした後などmainブランチに更新が生じた場面を想定する。そのとき、リポジトリの画面上部には**This branch is n commit ahead of “fork元ブランチ”.**と表示される。

    農楽塾のリポジトリの例

    農楽塾のリポジトリの例

  2. **This branch is n commit ahead of “Fork元ブランチ”**をクリックすると以下のような画面になる。これは、Fork先のリポジトリのmainブランチをFork元のmainブランチに取り込ませるプルリクエストである。この設定のまま[Create pull request]をクリックし、PRを作る。

    スクリーンショット 2024-10-17 午後7.39.50.png

  3. するとFork元リポジトリ上でPRが一件追加され、PRページに遷移するのでマージを完了させる。

    スクリーンショット 2024-10-17 午後7.56.09.png

  4. Fork先のリポジトリに戻り、[Sync fork]をクリックすると、This branch is out-of-dateとなっているので、[Update branch]をクリックして、Fork元のリポジトリと同期する。

    スクリーンショット 2024-10-17 午後7.57.11.png

以上の手順を案件開発の際はPRをマージするたびに行う必要がある。少々面倒だが、PMはこれを徹底させること