Gitはコードのバックアップを取ってくれるシステムです。
そのバックアップを取る作業や、PCからサーバーにサイトをアップロードする時などにpushやpull、そしてcloneというコマンドを使います。
ここでは、push, pull とはなんなのか、cloneとはどう違うのか、どう使い分けるのか、それをGIT初心者のあなたでもスッキリ分かるように図解で解説します。
これを読めば、バッチリGITでサーバーとのやり取りもできるはずです!
GITのpush, pull とは?
GITのコマンドであるpush, pullを一言で表すなら、
Pushは、「ローカルリポジトリからリモートリポジトリにコピーを渡す行為」、もっと分かりやすく言うと、「PCからGITHUBにファイルをコピーする行為」です。
Pullは、「リモートリポジトリからローカルリポジトリにコピーを引っ張ってくる行為」、もっと分かりやすく言うと「GITHUBからPCにコピーを持ってくる行為」です。
Pushの図
PC(ローカル)から、git push origin master という命令を出すと、GitがPC上にあるデータ(コード)をGITHUB(リモート)のorigin/masterブランチにコピーしてくれます。
Pullの図
今度は、PC(ローカル)が git pull origin master という命令を出すと、GitがGITHUB(リモート)のorigin/masterブランチにあるデータを引っ張り出して、PCにコピーしてくれます。
GITを操作してる側(PC)から見て、Push(データを押し出す)、Pull(データを引っ張ってくる)と言ってるわけです。
GITのPush、コミットとの違いは?
そもそも、このPushというコマンドを使う前に、必ずcommitという操作をしておく必要があります。
この図のように、データ(ファイル)をGITHUBに保存するためには、まずターミナル(コマンドプロンプト)かSourcetreeを立ち上げて、コミットという作業をする必要があります。
add(stage)とcommitというコマンドを実行すると、まずPC上のブランチにファイル(データ)がバックアップされます。
さらにこれをGITHUBにもコピー保存しておきたい場合に、今度は、git push origin master というコマンドを使う事で、GitHubにも同じデータが保存されるわけです。
Gitを見える化できるツール SourceTree の場合は、
コミットが完了した後、Pushというボタンを押します。
次の画面でも、masterからmasterの欄にチェックを入れて(最初から入ってる)Pushを押せば完了です。
SourceTreeのインストール方法2020最新版。GITHUBとつなぐとこまで詳細解説。
GitのCommitとは?AddやPushとの違いは?初心者向けに図解でやさしく解説!
↓この記事では、commit, push全行程を解説してるよ
GITでレンタルサーバーにアップロード。やり方とコマンドを完全解説!
Pullについては次の項で詳しく触れるよ。
サーバーの場合のPushとPullは?
実際にGITを使う理由として、PC上にあるデータをサーバーにアップロードできるからというのもありますよね。
例えば、あなたがサイトを運営してるとします。
PCでサイトのコードを書き換えました。
このコードをサーバーにアップして、サイトの変更を適用したいとします。
FTPを使う手もありますが、GITを使ってアップロードしてみましょう。
下のイメージ図のように、まず、PCからGITHUBにデータをpushします。
そして、今度は、サーバーにターミナルでログインして、サーバー側からpullの命令を出す事で、GITHUBにあるデータをサーバーに引っ張ってくるわけです。
こうする事で、PC上の変更をサーバーにもまるっと適用できます。
Gitのorigin masterとmasterの違い、意味を初心者向けに図解でやさしく解説!
Cloneとは?Push、Pullとどう違う?
push, pull 以外にもcloneというコマンドがGitにはあります。
cloneは、まっさらな場所にデータをコピーする事を言います。
例えば、あなたがPC上でサイトを作成してるとします。
まだサーバーにはこのサイトはアップロードしてません。そんな時は、GITのcloneコマンドを使って、PC上のサイトをサーバーにまるっとコピーします。
さっきの手順とほとんど一緒です。まずPCから git push origin master コマンドを使って、GitHubにすべてのサイトデータをコピーします。
次にサーバーにターミナルでログインし、git clone https://github.com/~.git というコマンドを使う事で、丸ごとGithubからサイトを新たにコピーできます。
githubアドレス部分(上の赤文字部分)ですが、
自分のGithubにログインし、リポジトリを開き、Codeというボタンを押したところで、取得できます。このアドレスを使って、git clone コマンドを打ちます。
コマンドを打つとユーザー名とパスワードを聞かれるので、Githubのユーザー名とパスワードを入力します。これで、クローンが完了。サーバーにPCで作ったサイトと全く同じデータがアップロードされました。
まとめ
- Pushはローカルリポジトリからリモートリポジトリにデータを送るために使う。
- Pullはリモートリポジトリのデータをローカルリポジトリに持ってくるために使う。
- cloneは空のフォルダに全部丸ごとコピーするために使う。pullは旧データに新データを上書きするために使う。
というわけでGitの Push、Pull、Clone それぞれの意味と使い方が理解できたでしょうか。
今回話したPushやcommitを含めた全行程の解説はこちら
→GITでレンタルサーバーにアップロード。やり方とコマンドを完全解説!