Gitのフォークとクローン
GitHubについて調べているとclone以外にforkという機能があることを知りました。
どうやらフォークとクローンは似ているみたいなのでイラストを使いながら、まとめてみることにします。
対象読者
- ひとりで勉強している初学者
GitHubを用いてチーム開発をしている方は対象にしていません。
チーム開発でのクローン、フォークについては別の機会に。
Gitのforkとcloneの違い
GitHub Docsの用語集にフォークとクローンについて説明がありましたので引用します。
フォーク
フォークとは、個人が別のユーザのリポジトリをコピーしたものであり、その個人のアカウントに存在します。フォークであれば、元の上流リポジトリに影響を与えることなしに、プロジェクトに対して自由に変更を加えることができます。また、いずれのリポジトリも接続は切れていないので、上流リポジトリでプルリクエストをオープンしてフォークと最新の変更とが常に同期されるようにすることもできます。
クローン
クローンとは、コンピュータ上に存在するリポジトリのコピーです。ウェブサイトのサーバ上のどこかにあるのではなく、またそのコピーを作成する動作とも異なります。クローンを作成すると、お気に入りのエディタでファイルを編集できるようになり、オンラインになっていなくても Git を使用して変更を追跡できます。クローン作成元のリポジトリもリモートバージョンへの接続が切れることはないので、オンラインになればローカルでの変更をリモートにプッシュすることで同期が取れます。
どちらもコピーのことと書いてあります。
ちょっとよくわからないですよね。わかりやすくしてみます。
フォークとは
フォークとは他人のユーザーのリポジトリをコピーして、自分のアカウントのリポジトリとしてコピーすることです。これにより、他人のユーザーのリポジトリに影響を受けずに、自由に変更を加えることができます。
クローンとは
クローンは単にリモートリポジトリを自分のローカルリポジトリに複製することです。あくまで自分のリモートリポジトリのものではないので、権限がなければ変更を加えることはできません。
フォークの使い道
フォークは主な目的としてはフォークしたユーザーのリポジトリへの変更を提案したり、そのリポジトリから自分のアイデアの出発点として活用するために使えます。
- オリジナルのリポジトリへの貢献が前提
- forkした場合そのリポジトリを所有する開発者に通知される
*無気力人間をやる気マックス人間に変えてみた。
クローンの使い道
クローンの主な目的としては、好きなVSコードなどのエディタでソースコードを見たり、ローカルサーバーで実際にアプリケーションを動作させてみたりすることができます。
クローンのやり方、フォークのやり方
GitHub Desktopからやるやり方もありますが、一般的なGitHubページからフォーク、クローンする方法を説明します。
どこか適当な他人のGitHubのページにアクセスしてください。
フォークのやり方
GitHubのページの右上にForkとあります。クリックしましょう。
すると自分のGitHubアカウント名が表示されます。アカウント名をクリックします。
自分のアカウントにslackのリポジトリが作成されています。
これだけで自分のアカウントにコピーすることができました。
クローンのやり方
Codeをクリックします。
クローンの方法についての選択画面が表示されます。
今回は一般的なHTTPSを使ってクローンしましょう。
クリップのアイコンをクリックすることでコードがコピーできます。
ターミナルを開いてください。クローンを保存したいディレクトリに移動します。ない場合は作成してください。
git clone
と入力した後にコピーしたコードを貼り付けます。
Enterキーを押します。
これで自分のパソコンにクローンすることができました。
終わりに
リモートリポジトリをローカルリポジトリにコピーすること
同じ人間です。
他人のリポジトリを自分のリポジトリにコピーすること
DNAが同じだけど違う人間です。
クローン人間って別人だよな。。。とは思いますが。
これだけとりあえず覚えておきましょう。
深い話はまた別の機会に!!
参考サイト