[st-kaiwa3 r]Gitを最近使い始めたんだけど、リモートリポジトリとかローカルリポジトリとかの概念がイマイチ分からなくて。[/st-kaiwa3]
GitやGithubを使い始めて初心者が困惑するのが、リポジトリ(repository)という言葉ですよね。しかもリモートリポジトリとローカルリポジトリという2つのワードが出てきて、どっちがどれの事を言ってるのかあなたも分からなくなって困ってませんか?
というわけで、ここでは、リポジトリについて超分かりやすい図解を出しながらGIT初心者のあなたにやさしく解説しちゃいます!
[st-kaiwa1 r]そもそもGITとGITHUBがなんなのかをよく分かってないんだけど・・って場合は、先に「GITとGITHUBとは?全く分からない初心者向けに図入りでやさしく解説!」を読んでもらうと、リポジトリの話がより分かるようになりますよ。[/st-kaiwa1]
Gitのリポジトリとは?
Gitのリポジトリとは、簡単に言うと「GITでバックアップしたいファイルを入れるフォルダ」です。短縮してrepo と呼んだりもします。
そもそもGitというのは、コードの過去の変更履歴(バックアップ)を保存しておくシステムです。
なので、バックアップしたいデータはリポジトリに入れます。
リポジトリは、PC上では単なるフォルダです。
なので、自分でフォルダを作って、
それをGITを使ってリポジトリ化すれば、そのフォルダはリポジトリです。
リポジトリは何個でも作れます。
通常は、サイトごと、アプリごとなどで作ります。
例えば、ABC.comというサイトを作成してるなら、そのサイトのデータをバックアップするためのフォルダがABC.com用のリポジトリになりますし、
ghiというアプリを作ってるなら、そのアプリのバックアップを取るためのリポジトリを新たに作るというわけです。
GITのリポジトリの作り方(PCの場合)
じゃあ、実際にリポジトリはPC上にどうやって作るのか?
簡単です。
まずは、どこでも良いのでフォルダを作ります。
名前はサイト名とかアプリ名が良いでしょう。
次にコマンドプロンプトを立ち上げて、次のようにコマンドを打ちます。
Dドライブにフォルダを作った場合は、D: と打ってEnter。
次にそのフォルダを開いて、フォルダまでのパスをコピーします。
次にcd パス と入力します。上の画像の場合だったら、cd D:\website と入力してEnterです。
最後に git init と入力してEnterを押せば、今作ったフォルダ(厳密にはフォルダの中)がリポジトリになります。
リポジトリとなったフォルダの中には、.gitというフォルダが出現します。通常隠しフォルダになってるので、View → Hidden items にチェックを入れると出てきます。
このフォルダにGITでバックアップしたいファイル(画像だったらpost1.html)を入れるわけです。
GITのローカルリポジトリとリモートリポジトリとは?サーバーはどっち?
さて、このリポジトリですが、場所によって、ローカルリポジトリと呼ばれたり、リモートリポジトリと呼ばれたりします。
まずは図で見てもらったほうが分かりやすいでしょう。
ローカル(local)は英語で、地元という意味があります。
リモート(Remote)は、離れた場所という意味です。
なので、自分の手元にあるPCはローカルリポジトリに当たります。
逆にネットを介した離れた場所にあるGITHUBウェブサイトはリモートリポジトリというわけです。
[st-kaiwa3 r]はい、質問!なんで自分の手元にない、サーバーや他人のPCまでローカルリポジトリって図ではなってるの?そこがホント分からんのよ。[/st-kaiwa3]
そう、基本的にリモートリポジトリと聞いたら、GITHUBやGITHUBと同じようなサービスをしているサイト(Bitbucketなど)を意味します。
で、そのリモートにアクセスする側がローカルリポジトリって事なんです。
例えば、サーバーは自分のPCから見たら、一見リモートリポジトリじゃないかと感じるかもしれません。
でも、実際にPC上で作成したサイトをサーバーにコピー(クローン)するとしたら、どうやるでしょうか?
PCから一旦GitHubにPushします。
(ローカルリポからリモートリポにコピーします。)
次に、あなたはサーバーにターミナルを使ってログインし、
サーバーからGitHubにPullかCloneします。つまり、サーバーから、GitHubにコピーをよこせと頼んでるという事です。(= ローカルリポからリモートリポにコピーをくれと頼んでる)
→GITのPushとPullとは?Cloneとの違いは?初心者でも図で驚くほど分かる!
そう、あなたが直接GITを操作してるのはサーバー上です。
サーバー(ローカルリポジトリ)にログインし、そこからgit pull もしくは、git cloneというコマンドを使って、GitHub(リモートリポジトリ)のデータを取り出しているのです。
だから、サーバーもローカルリポジトリって事なんです。
[st-kaiwa1 r]君がサーバーにログインして、サーバーにインストールしてあるGITを使って命令を出してるわけ。命令を出してる場所がローカル。だからサーバーもPCと同じローカルリポジトリって事になるんだ。[/st-kaiwa1]
[st-kaiwa3 r]なるほど、そうやって考えるんだね。ちなみに他人のPCはなんでローカルリポジトリなの?[/st-kaiwa3]
たしかに、これも自分から見ればリモートリポジトリに見えますが、そのPC所有者からはローカルリポジトリです。
そして、結局自分のPCから直接他人のPCにアクセスするわけではないですし、他人のPCもPC所有者がPCからGITを操作してるので、ローカルリポジトリと言えます。
GITを操作してる場所がローカルリポジトリ、GITのpush, pull, clone などのリクエストを受ける側がリモートリポジトリだという事です。
[st-kaiwa3 r]そっかぁ、そういうふうに考えればいいんだね。リモートリポジトリとローカルリポジトリの違いが分かってきたよ。
ちなみに図にはGITHUBにoriginって書いてあるけど、あれは?[/st-kaiwa3]
[st-kaiwa1 r]Gitを使ってると、master と origin master っていう2種類が出てくるでしょ?originっていうのが、リモート側、つまりGITHUB側の事を意味してて、originが付いてない方が、PC側やサーバー側を意味してるんだ。
Gitのorigin masterとmasterの違い、意味を初心者向けに図解でやさしく解説![/st-kaiwa1]
[st-kaiwa3 r]おぉ。それも疑問に思ってた事だったんだ。一気に解決できてよかったよ![/st-kaiwa3]
[st-kaiwa1 r]GITHUBがなんなのか分からないって場合はこちらの記事を読むとバッチリ分かるよ。
GITとGITHUBとは?全く分からない初心者向けに図入りでやさしく解説![/st-kaiwa1]
GITHUB側のリポジトリはどう作る?
GITHUBはPCで作ったリポジトリと同じコピーを保存してくれるサイトです。
なので、GITHUBにも同じ名前のリポジトリを作ります。
GITHUBにログインして、ニャンコみたいなマークを押すと、マイページに飛ぶので、
そこのRepositoriesの項にあるNewボタンを押します。
次のページでRepository nameの欄に、リポジトリ名を入れます。(PC上のリポジトリと同じ名前を付けるのが吉)。
もし他人に公開したくない場合は、Privateを選んで、Create repositoryを押せば、リポジトリがGITHUB上に出来ます。
[st-kaiwa1 r]例えば、ABC.comというサイトのデータをGITHUBに保存するなら、PC上とGITHUB上にそれぞれ、ABCという名のリポジトリを作る。そしてPC側からPushという操作をする事で、GITHUB側にも同じバックアップがされるわけ。
そもそもGITHUBアカウントをまだ持ってない場合はこちらの記事
GITHUB無料アカウントの作り方2020最新版。初心者向けに図入りでやさしく解説
実際にGITHUBにバックアップしたり、そこからサーバーにアップロードする流れはこちら
GITでレンタルサーバーにアップロード。やり方とコマンドを完全解説![/st-kaiwa1]