※本記事はJavaの勉強がてら、自分達の学んだことを備忘録的に残しておくことが目的です。
素人が四苦八苦しながらJavaを学び、何かしら作り上げていきます。
その過程を楽しんでいただければ、そしてそれが、少しでも誰かのためになれば嬉しいです。
はじめに
さて今回は、Gitを使っていく上で最も重要だと言っても過言ではないであろう、Gitコマンド「commit」「pull」「push」がそれぞれ何なのかについてまとめたいと思います。
色々紆余曲折ありましたが、ようやくここまでたどり着けました・・・
単純に実行方法を学ぶだけでも良いとは思いますが、せっかくならそれぞれ何をやっているのかしっかりとおさえた上で実行するようにしましょう。
「clone」コマンドについて解説した時と同じですね~
ちなみに前提知識として、「リポジトリ」が何なのかについてはしっかりと理解しておく必要があります。
このJava勉強ログシリーズを一から読んでくださってる方であれば既にご存知かとは思いますが、まだご覧いただけていない方、読んだけど忘れてしまったからもう一度復習したい、という方は是非そちらを先に読んでいただけると嬉しいです!
この後の説明がよりしっくりくるかと思います。
ちなみに余談ですが、「add」も重要なコマンドです。
「commit」「pull」「push」と合わせて、しっかり理解しておくようにしましょう!
Gitコマンド「commit」「pull」「push」って何??
ではさっそく、「commit」「pull」「push」がそれぞれ何をやっているのかについて解説してきます。
下の図を見ていただければ、すぐに理解できるかと思います。
commit
「commit」はワークツリー上で作ったプログラムや修正の内容を、ローカルリポジトリに記録するコマンドです。
誰が、いつ、どこを、修正したのかという情報が、「commit」を実行することでローカルリポジトリ上に刻まれるというわけですね。
また、「commit」を実行する際にコミットコメントと呼ばれる短い解説文を残すこともできます。
これによりどんな修正を加えたのか一目で分かるようになるため、とても大切です。
自分一人で開発をするならコミットコメントなんていらないだろ!とか思ったりしましたか??
たとえ一人で進める場合でも、後ほど振り返る際に絶対あった方がいいと思いますので、コミットコメントは必ず残すようにしましょう。
push
「push」はローカルリポジトリに記録された内容をリモートリポジトリに記録するコマンドです。
まぁ単純にローカルリポジトリとリモートリポジトリで同期を取るようなイメージでしょうか。
「commit」実行後、「push」を実行すると、手元で編集した内容をサーバー上に上げられるというわけです。
ちなみにですが複数人で開発を進めていると、「push」を実行した際に「競合(conflict)」と言われる状態を1度は経験するかと思います。
(経験したこと無いなんて完璧人間いるのか・・・)
どのような状態か簡単に説明しておきますね。
Gitの競合(conflict)とは、複数の開発者が同じファイルやコードの同じ箇所を変更しようとした場合に発生する状態のことです。
競合が起こると、Gitは自動的にどちらの変更を優先すべきか判断できず、「どっちを優先すればいいんだ!」と怒ってきます。
そうなった場合、すいません・・・と手動で直してあげる必要があるというわけです。
最初は競合すると焦るんですよね~、このあたりの対処法などもそのうちまとめていければなと思ってます。
(しっかりと勉強しておきたいですし・・・)
pull
「pull」はリモートリポジトリの内容をローカル環境に反映させるようなイメージを持つコマンドです。
「pull」を実行することでリモートリポジトリの最新状態がローカルリポジトリに反映されます。
またそれだけでなく、ローカルリポジトリの内容をワークツリーへ反映するというようなアクションも同時に実行されます。
以上が開発を進めていく上で重要な3つのコマンドでした。
自分の編集内容をアップする際は「commit」と「push」を実行し、サーバー上にあがっている最新の状況を反映する際は「pull」を実行するようなイメージですかね。
また、「commit」はローカル内でのやり取り(ワークツリーとローカルリポジトリのやり取り)というのも重要なポイントです。
例えば、インターネット環境につながっていなくても、いったん「commit」をしてローカルリポジトリへ上げておき、最後にまとめて「push」する・・・みたいな運用の方法も取れます。
「commit」をうまく活用していけると良さそうですね・・・
最後に・・・
さて今回は、Gitコマンド「commit」「pull」「push」がそれぞれ何なのかについてまとめました。
内容自体はそこまで難しくないですよね。
次はもう1つ重要??な「add」コマンドでも軽くまとめておこうかなと思ってます。
そのあとは具体的な実行手順ですかね。
それまでにしっかりと、今回のポイントをおさえておくようにしましょう!
commit:ワークツリー → ローカルリポジトリ
pull:リモートリポジトリ → ローカルリポジトリ & ワークツリー
push:ローカルリポジトリ → リモートリポジトリ
本記事は以上!!
前回まとめた記事も読んでもらえると嬉しいです!
Java以外の勉強記事も是非!
オススメ参考書 & Udemy講座
以下に、私がオススメする参考書と、Udemyの講座を載せておきますね。
是非参考にしてみてください。
オススメ参考書
Javaのオススメ参考書はこちらです。
更なる高みを目指す方はこちらも是非!
GitHubのオススメ参考書も見つけたら、そのうち載せますね~
オススメUdemy講座
GitHubのオススメUdemy講座はこちらです。
JavaのオススメUdemy講座も見つけたら、そのうち載せますね~
コメント
認識が間違っていたら申し訳ないのですが、最後のPointの部分につきまして、
pullとpushの説明文が逆になっているかと思います。
Yuuさん
コメントありがとうございます。
Yuuさんのおっしゃる通りです。Pointのpullとpushの説明が逆となっていました、申し訳ございません。
ご指摘いただきありがとうございます。
※既に記事は修正済みです。
私たちの記事を丁寧に読んでいただいた結果のご指摘とても嬉しいです。
他にも色々な記事をあげています是非ご覧ください!