kakakakakku blog

Weekly Tech Blog: Keep on Learning!

Software Design 2022年4月号の特集「本質から学ぶ Git」を読んだ

「Software Design 2022年4月号」を読んだ.本誌の第2特集「堂々と使える!人に教えられる!本質から学ぶ Git」に寄稿をされた id:syobochim に献本(ギフトコード)をもらったので第2特集を中心にまとめる.献本ありがとうございます!

第2特集 目次

本特集は以下の4章から構成されている.基礎的な内容から実践的な内容まで幅広くまとまっている.ただ内容的には 1,2,4 章と 3 章で前提となる技術レベルが違う気もするので,初学者は 1,2,4 章を読んで,Git の内部まで興味があれば 3 章も読んでも良さそう.

  • 第1章 : コミットの記録、リポジトリの状態確認のやり方
  • 第2章 : ブランチやリモートリポジトリの扱い
  • 第3章 : 本質から学ぶ git コマンド
  • 第4章 : チーム開発 / OSS 開発におけるマナー

また特集名にも含まれている「人に教えられる!」という観点もイイ!

第1章

「第1章」では「コミットとは何か?」「作業ディレクトリとステージングエリアの違いは何か?」など,Git に入門するときに知っておくべき知識がわかりやすくまとまっていた.雑誌ならではのコンパクトな分量で図解が多いのも良かった.実際に git configgit init コマンドを使ってセットアップをして,git addgit commit コマンドを使って「お買い物リストファイル」を作り上げていくので,初学者でも挫折せずに学べる.

日常的に Git を使っていて慣れてるけど,せっかくだから試したw

$ git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
    modified:   ShoppingList.md
    new file:   ToDoList.md

個人的に今まで初学者に Git を教えてきた経験からすると「なぜ "ステージングエリア" に登録する必要があるの?」とよく聞かれる.直接コミットすれば良いじゃん!と.本誌ではステージングエリアを使えば「変更したファイルの中からコミットするファイルを明示的に指定できる」と紹介されている.具体的にファイルを明示的に指定してコミットする例や git commit -a -m コマンドの紹介があっても良かったかも!

git-scm.com

第2章

「第2章」では git mergegit pull コマンドを使ってブランチ操作の基礎を学べる.実際にターミナルと GitHub 画面を使って,一人二役で練習できる流れも良かった.そして,初学者がよくつまずく「コンフリクト」「origin って何?」という内容も載っている.より詳しく学ぶには同じく今月に出版された「いちばんやさしい Git & GitHub の教本 第2版」を読むと良さそう!

また本誌では git checkout コマンドを使いつつ,関連する git switch コマンドの紹介が載っているのも良かった.

kakakakakku.hatenablog.com

第3章

「第3章」では Git リポジトリの内部構造を学べる.「第1,2章」とは違ってより深く学べて git cat-file コマンドを使って Git オブジェクトを確認したりする.このあたりは今まで「何となく」理解していたこともあって,コミットグラフの解説などもとても楽しめた.確かにここまで詳しく理解できれば「堂々と使える!」に近付けそう!

$ git cat-file -p dbe1
tree 4013e11029cac8cdc48706a85104a3ae7dbfa64f
parent 226c37e1a7068c4d30b4e4e2ebd0b75db464cef6
author kakakakakku <y.yoshida22@gmail.com> 1648731388 +0900
committer kakakakakku <y.yoshida22@gmail.com> 1648731407 +0900

memo.txt を新規作成しました

git-scm.com

第4章

「第4章」は仕事や OSS で Git を使うときに知っておくべき「お作法」を学べる.「意味のある」コミットメッセージを書くコツや Conventional Commits を取り入れる案なども紹介されていてイイ!また「コミットが大きすぎる可能性」を意識しましょう!というメッセージもとても重要で良かった.ちょうど4月から開発プロジェクトに参加する人もいるだろうし,本誌で最低限の「お作法」を学んで,取り込まれやすいプルリクエストを作れるようになろう!

www.conventionalcommits.org

まとめ

「Software Design 2022年4月号」を読んだ.今回の記事では第2特集「堂々と使える!人に教えられる!本質から学ぶ Git」を読んだ感想をまとめた.他にも「HashiCorp Vault 連載」「Log4j2 特集」も良かった.最近は正直言って技術雑誌を読まなくなってたけど,久し振りに読んでみると多岐にわたる技術トピックをコンパクトに学べるメリットを再認識できた!

関連記事

寄稿おめでとうございまーす🎉

syobochim.hatenablog.com

Git や GitHub の操作を学ぶなら「GitHub Learning Lab」もイイぞー!

kakakakakku.hatenablog.com