いものやま。

雑多な知識の寄せ集め

『わかばちゃんと学ぶ Git使い方入門』を読んでみた。

ツイッターを見ていたら、社畜ちゃんで有名なビタワンさんの次のツイートが。

そういえば以前CodeIQ MAGAZINEで連載してたよなぁ、と。

https://codeiq.jp/magazine/category/git-ai/

知らぬ間に冊子になっていたとは。

これは読んでみたいと、自分も早速hontoで検索。
電子書籍にもなってたので、サクッとゲット出来た。
しかも、500円引きのクーポンがちょうど使えたので、1,600円くらいでw
ビタワンさんのように本屋に駆け込む必要もないし、すぐに読めるし、場所も取らないし、そのうえさらに安いとか、やはり電子書籍はいいねw

内容と感想

それはさておき、内容と読んでみての感想。

内容は、分散型バージョン管理システムの1つであるGitの使い方(そう、「使い方」)を、マンガを交えながら学んでいくものとなっている。
Gitというと何やら難しいイメージがあるけど、この本ではマンガのおかげもあって、そういった難しさは全く感じられないようになっている。
これはいいw

ツールとしては、コマンドラインベースではなく、GUISourceTreeを使っている。
しかも、操作手順をちゃんと画像を入れながら説明してくれるという親切設計w
プログラマならコマンドラインでも何も問題ないと思うけど(というか、自分は基本的にはコマンドラインXcodeからしか使わないけど)、これはコマンドに慣れていない人にすごくいいと思う。
(逆にいうと、コマンドの説明は全然ないので、コマンドで使うつもりの人はちょっと注意)

Gitを個人のバックアップツールとして使うところから始まって、複数人で使う基本的な使い方、それに、GitHubやBitbacketを使ったソーシャルコーディングまで、基本的な話はちゃんと入っている感じ。
とりあえずこれを読んで、あとは必要に応じて調べれば、一通り使えるんじゃないかな。

ただ、自分は一応Gitを知っているので、その観点での感想なのが気になるところ。
Gitを全然知らない人が、この本を読んで理解できるのかは、正直ちょっと分からない。
すごく分かりやすそうに書いているので、たぶん大丈夫だと思うんだけど、その「分かりやすそう」が本当に分かりやすいのか、マンガのせいでそう感じさせられているだけなのか、そのあたりが、すでにGitを知っている自分からは判断できなかった。

例えばだけど、「『Git』をどう読むのか」という割と典型的な部分の説明がなかったり。
「ギット」と読むわけだけど、GIF(ジフと発音されることが多い)に慣れてると、「ジット」と読んでしまってもおかしくないわけで。
(実際、自分は昔、間違えて「ジット」だと思ってた)
まぁ一応、表紙のタイトルの「Git」にそっと添えるように「ギット」と書かれていたり、初めて「Git」という単語を聞いた(主人公の)わかばちゃんが次のコマで「ギット?」というセリフを言ってたりはするけど。

そんな感じで、Gitに慣れ親しんでしまった身には当然になりすぎてしまっていて、初心者には実はよく分からないという内容が紛れ込んでしまってるんじゃないかなぁ、というのが、気になるところ。

あと、個人的に気になったところがいくつか。

マージすべきかリベースすべきかという話があるけど、その両方に触れてはいるものの、実際にどちらにすべきかについては言及していなかったり。
自分も昔はリベースすげぇとリベース大好きだったけど、次のスライドを見てからは、リベースではなくマージを行う運用を使うようにしている。

Subversionに慣れていて、branchはtrunkへマージするものという意識があったので、その逆の、trunkをbranchにマージする(Gitの場合、masterブランチをtopicブランチにマージする)という発想はかなり衝撃的だった。
ただ、このスライドのいうとおり、マージをmasterブランチ側ではなくtopicブランチ側で行うようにすれば、マージの記録が残る上に、masterブランチへの反映のタイミングでは絶対にコンフリクトが発生しないので、とてもいい。

それと、これは自分がGitHubでforkを行なったことがないからなんだけど、forkしたリポジトリでfork元のリポジトリの変更をどうやって取得するのかなぁ、と。
これについて、本では言及なし。
こういうところがあるので、最初に書いた「Gitを知らない人がホントに理解できるのか分からない」という感想も出てきたのだけど・・・
おそらく、fork元のリポジトリをremoteリポジトリとしてローカルのリポジトリに追加した後、ローカルのリポジトリにfork元のコミットをfetchしてきて、そこから自分がforkしたリポジトリにpushするのかなぁ、と思っているけど、そんなメンドイ手順が必要なんだろうか・・・?

まぁ、上記の2つは、基本というよりかは実際の運用上の問題なので、この本には書いてなくても当然という気もするけど。

何はともあれ、こうやって気軽にGitの使い方を学べるのは、とてもいいなと思った。
Gitを使える人がもっと増えるといいなw

今日はここまで!

わかばちゃんと学ぶ Git使い方入門〈GitHub、Bitbucket、SourceTree〉

わかばちゃんと学ぶ Git使い方入門〈GitHub、Bitbucket、SourceTree〉