clone
cloneコマンドは一言で言えばリポジトリ(ファイルやディレクトリの状態)をコピーするためのコマンド。主にみんなで活用しているリモートリポジトリをクローンして、自分の開発用にローカルリポジトリを作るために使います。
fork
一般的にフォークは、他のユーザのプロジェクトへの変更を提案するため、あるいは他のユーザのプロジェクトを自分のアイディアの出発点として活用するために使用します。
(他人のリポジトリを自分のアカウントのリモートリポジトリにコピーすること)
forkによるワークフロー
- 元となるリポジトリをfork
- forkしたリポジトリBをローカルにclone
- cloneしたリポジトリCで開発し、リポジトリBに反映
- リポジトリAの管理者にPull Requestを送信
フォークした後のワークフロー
GitHubでフォークした後にフォーク元の差分を取り込む時の手順になります。
ローカル環境で該当プロジェクトのディレクトリに移行して、フォーク元のリポジトリを登録します。
$ git remote add upstream git://github.com/ユーザー名/リポジトリ
上記はフォーク元のURLになります。
フォーク元からの内容を取得して、自分のmasterにマージします。
$ git fetch upstream
$ git merge upstream/master
これでフォーク元の差分を取り込むことができます!