はじめに
Gitを使うようになってしばらく立つのですが、cloneとforkの違いについて理解できていなかったので、まとめました。
clone
リモートリポジトリをローカルリポジトリに複製すること
fork
他人のリポジトリを自分のアカウントのリモートリポジトリにコピーすること
- オリジナルのリポジトリへの貢献が前提
- forkした場合そのリポジトリを所有する開発者に通知される
forkによるワークフロー
- リポジトリAをfork
- forkしたリポジトリBをローカルにclone
- cloneしたリポジトリCで開発し、リポジトリBに反映
- リポジトリAの管理者にPull Requestを送信
まとめ
cloneは単に任意のリポジトリをローカルに複製する。
forkはOSSなどの自分以外のリポジトリに対して、何らかの追加機能の実装、バグ改修を行いたい場合使用するものである。