Github

【Github】cloneとfork、共同開発する際にはどっちを使うべき?

Github

 

今回は共同開発(チーム開発)をする際、リポジトリをclone(クローン)して進めるべきなのか?fork(フォーク)して進めるべきなのか?について解説したいと思います。それぞれのメリット・デメリットがあるので、それらを把握して適切な方法で開発していきましょう。

結論

結論としては、以下の条件に当てはまればcloneで開発を進めていきます。

  • 知り合い同士で共同開発をする
  • Githubの操作に不安がある
  • 出来るだけ簡単にしたい

 

一方で、以下の条件に当てはる場合はforkで開発をしていきましょう。

  • 見知らぬ人と共同開発する
  • 他の人がどのような作業を行っているのか都度把握したい
  • 様々な人を巻き込んだ大規模開発である

 

簡単にまとめると、手軽に共同開発したい場合はclone、大掛かりな開発である場合はforkで進めていくのがおすすめです。

cloneとは

cloneとは、リモートリポジトリを自分のパソコンにまるっと複製することです。リモートリポジトリの内容をダウンロードし、自分のパソコンにローカルリポジトリとして作成することができます。

イメージとしては下図です。

clone

他の人のリモートリポジトリを自分のPCに複製するので、自由にコミット&プッシュやマージを行えるという特徴があります。

自由にできる反面、コンフリクトが起こりやすくなるなど管理が難しいけどね。

forkとは

forkとは、他人のリモートリポジトリを自分のアカウントのリモートリポジトリに複製することです。開発者は複製した自分のリモートリポジトリをcloneして、開発を進めていきます。

イメージとしては下図です。

fork
  1. 複製したいリモートリポジトリ(リモートリポジトリA)をforkする
  2. forkしたリモートリポジトリ(リモートリポジトリB)をcloneする
  3. forkしたリモートリポジトリ(リモートリポジトリB)にコミット&プッシュする
  4. リモートリポジトリAの管理者にPull Requestを送信

 

プルリクエストを毎回送信することから、レポジトリの管理はしやすい反面、手間が増えてしまうという特徴があります。

ここからも分かるように、forkの場合だとcloneに比べて手順がやや多いね。

まとめ

  • cloneは知り合い同士で手軽に始めたい時におすすめ
  • forkは見知らぬ人と大掛かりな開発を行う時におすすめ
  • cloneに比べforkはやや手順が多い

 

 

今回は共同開発(チーム開発)をする際、リポジトリをclone(クローン)して進めるべきなのか?fork(フォーク)して進めるべきなのか?について解説しました。それぞれのメリット・デメリットを理解した上で、開発を進めていきましょう。