以下の内容はあくまでも厳密さよりもわかりやすさの方を重視したため、厳密に考えたら違う内容を多く含みます。
本記事の想定するターゲット層
- GitHubを全く知らない人
- GitHubのなんとな〜くのイメージを知りたい、または考えたい人
ですので、厳密な話はしません。あくまでも一個人の仮説、イメージとして読んでください。むしろこの仮説に異を唱えたい方は歓迎です。コメントして教えてください。
(それn番煎じですよということもあったらコメントで教えてください…。)
導入
GitHubを最初学ぼうと思ったとき、私はとても苦労しました。こんな検索ワードで検索しました。
- GitHub とは
- GitHub 使い方
- GitHub 初心者
などなど。
しかし、そのような検索をして得られたのは、よくわからない横文字に、よくわからないシステム全体像。分散なんとかだの履歴がどうだのコード管理がどうだの…。
確かにそれらはあとで調べることにはなると思います。でも、初めてそのシステムを触る人が知りたいのはそこじゃなくて、システムそのもののイメージだと思うんです。
そんな人に向けた「GitHubとは」の図を示そうと思い、記事を書きました。
タイトルの通り、GitHubって引き出しみたいなものだと思ってます。
私が思うGitHubのイメージ
リポジトリ
書類が入っている引き出しをイメージしてください。例えばこんな感じ。
この引き出し本体が、リポジトリです。これが仮説の本体、「GitHubって引き出し」です。
(引き出しなのはリポジトリじゃないか!と思われるかもしれませんが、初めての人にはこんな感じでイメージしてもらったらいいかなというイメージですので、細かいことは後で調べてください。)
そして、この引き出しを定義したことで、他も簡単に定義できるようになるのです!
ブランチ
引き出し仮説に基づいて考えると、ブランチはそれぞれの引き出しだと思ってます。つまりこうなってるということです。
developという引き出しがあったり、masterという引き出しがあったり、それぞれの引き出し一つ一つがブランチである。そういうイメージです。
つまりみんな各自の引き出しの上で作業しているということです。
マージ
マージは、上のブランチの図を元に考えると、引き出し同士を融合して一個にまとめるイメージになります。
「developをmasterにマージする」、と言ったら、developとmasterが何らか融合して一個のmasterになる、みたいなことと思えばいいんじゃないかと。
プルリクエスト
いわゆるプルリクは、プルリクエストの略語です。
ここで?!と思うかもしれませんが、プルリクエストは、要は「マージをしたいです!」というお願いにあたります。マージを知った後ならわかりやすいのではないかと思います。
共同開発をしていて、今まで使ってた引き出しをいきなり融合なんてされたら、共同開発者もたまったもんじゃないですから、「いいですか?」というお伺いを立てるのです。
add
addは、その英語の意味からも、「加える」という意味でそのままです。
絵にするとこんな感じです。簡単です。
commit
commitは、addで追加した変更などをしまってるイメージです。
大体こんな感じ。
このとき青い付箋のようなものをつけていますが、これがコミットメッセージです。何をやったかを書いておくものです。
pull
ここからが、引き出し化の本領発揮です。むしろこの言葉から着想を得たとも言えます。
pullは、この引き出しを開けるということに該当するのです。
リポジトリがあって、それをガラっと開けて中身を見る。ここで、詳しい方やちょっと調べた方でしたら、ローカルとリモートをどうのこうの言いますが、詳しくは調べてください。「github pull とは」などと検索したら出てくると思います。
push
pullをお分かりいただいたあなたなら、pushはどうなるか、もう予想がついてると思います。
pushは、引き出しを閉めることに該当します。
閉めたら、あなたの引き出しの状態が保存されます。
引いて(pull)、押して(push)。まさに引き出しですね。
最後に
長いことお読みいただきありがとうございました。
少しでも理解の助けになっていたら幸いです。