JJUGナイトセミナー「Git入門」で登壇した話(&質問の回答) #jjug

1週間経ってしまいましたが、1/25(月)はJJUGナイトセミナー Git入門でした。

Togetterはこちら↓

今回はありがたいことに50分おはなしする時間をいただきました。
ということで資料こちらです。

全体をざっくり掴んでいただきたく、操作をまとまりごとに一枚絵で示すことを目指しました。
なお、資料・話す内容ともに@tan_go238さんに死ぬほどレビューしていただきましたし、
資料だけなら@irofさん、@backpaper0さん、@Posauneさん、@yukieenさん(あいうえお順)からも
たっくさんアドバイスをいただきました。
そして他にも、関西を代表するエンジニアの皆さんが事前に見てくださり・・・
本当にありがとうございました。

それから、動画もあります!@yusukeさんありがとうございます!:
JJUG ナイトセミナー Git入門「Gitはじめの一歩」 - YouTube


初めて50分も話したし、当然めっちゃ緊張しました。
ひとまず、あまりそわそわしないように気をつけるので精一杯でしたね。
そのかたさが伝わっちゃってたようなのでもっと穏やかな雰囲気で出来るようになりたいです。

あと、リハで時間が足りなくなったのではしょりつつテンポよくやったら時間が余りました('_')
そこで質問を2ついただいたのですが、ろくな回答が出来なかったのでここで説明しておきます。

git addは何のために存在するのか?

何のためにあるか、というのはGitの思想っぽい話に繋がるでしょうか、
正直ちょっと調べても分からないのでお答えできないです…。
代わりといってはなんですが、何に使うことが多いかというのを書いておきます。

これは当日もおはなししましたが、「コミットを意味ごとにわける」時に便利です。
例えば、画面にボタンを追加するための修正と、背景色をかえるための修正を終えた後、
それを1つのコミットにしてしまうと・・・
コミットコメントが「デザインを変更」とか「UIを修正」とか曖昧になりかねないですし、
何のために何をしたのかが分かりづらくなるので、避けるのが無難かなと思います。

修正の単位が小さかったり、分ける必要がなかったり、状況によってはもちろん
git add --all(全編集ファイルをadd)やgit commit -a(全編集ファイルをaddしコミット)も
便利なので、使い分ければよいと思います。

ちなみにgit add -pを使えば、ファイル内の特定行だけステージに追加出来ますよ〜。

なお、コミットを分けるだけならgit commitで引数にファイル名を渡せればいいじゃん
と思うかもしれませんが、それだと間違った時とかやり直したい時に面倒かなと思います。
スライドにある通りaddはすぐ取り消せますし、コミット前の作業なので
何回やっても「歴史」は書き変わらず、ローカル(自分)にしか影響がありません。

一方、コミットの取り消しは、いちいちリバートコミットを作ってしまうとか、
歴史の改変や削除など危険な作業を伴うとか、ちょっとaddの取り消しに比べて
ハードルがあがってしまう気がします・・・。

②ブランチを作成って実体のコピー?参照のコピー?コピー元のブランチを消すと新しいブランチも消えるの?

まず、詳細はここをご確認いただくのがベストであることをお伝えします:Pro Git - ブランチとは

ブランチを作成すると、コミットをさすポインタが新たに作られるというわけです。
(実体とか参照とか関係なく、内部的に行っていることがそもそもコピーではないような…)
少なくとも参照のコピーではないので、ブランチの変更や削除は他ブランチに一切影響しません。
また、Git管理下にあるファイルの実体をコピーしているなんて誤解はだめですよ〜!

※ちょっと難しい話になってしまったので初心者の方へ
たった今「コピーではない」などと書きましたが、ブランチの概念を理解するだけなら
当日説明した通り元のブランチをコピーしたものという捉え方で十分です。
その「コピー」を用い、開発を並行して進めていきます。
ここでしているのは、Gitの中身がどうなってるかを正確に捉えるとどうだろう?という話です。
この質問及び回答がややこしいわけわからん・・・という方は、
スライドの内容だけおさえてください\('ω')/

ということで補足は以上です。


さて、発表の話に戻ると…今回は@syobochimさんも登壇されてました!
資料はこれで

動画はこちらです!:
Git実戦入門 @syobochim #jjug ナイトセミナー Git入門 - YouTube

これから導入したい(けど色々厳しそうだ)なという方の参考になりそうな、実践的な話でした!
質問とその回答もなんかリアルで・・・同じような環境にいらっしゃる方は特に、
「うんうん」とうなずける内容だったという感じです\\\(۶•̀ᴗ•́)۶////

ちむさんは話し方も落ち着いていて上手だったし、笑えるところもあり素敵でした。
資料は、事例の比較内容や違いが一目で分かる点を見習いたいと思いました〜!

それから最後に紹介された@kawasimaさん作ギットクエストはさすがの一言でした。

RPGツクール面白いんだな・・・


Git、Gitの使い方、資料の作り方、話し方などなどなどなど学びが多すぎて書ききれません。
(アドバイスくださった方ありがとうございました。)
とりあえず課題は少しずつ直せるよう引き続き努力しないとですね。
そのためには勉強したり仕事で知見ためたりして発表の場を獲得し、場数をふまないとですね。
ガンバルゾ〜

そうだ、もし資料は使えそうな場面あったら是非お使いください( ՞ਊ՞)ノ
あの内容で良ければいつでも説明しにいきます( ՞ਊ՞)ノ質問もどうぞ( ՞ਊ՞)ノ:@ihcomega