Gitは、現代のソフトウェア開発において不可欠なバージョン管理システムです。単にコマンドを覚えるだけでなく、その仕組みや効率的な運用方法を理解することで、トラブルにも強く、チーム開発で頼りにされるエンジニアを目指せます。
本記事では、Gitのインストールから基本設定、日常的なコマンド、そしてプルリクエストやマージといった実務で役立つ応用知識まで、体系的に解説します。
導入と初期設定
開発環境としてWSL2(Windows Subsystem for Linux 2)を使用する場合、Ubuntuなどのディストリビューション上でGitを運用するのが一般的です。
インストールと基本設定
最新のUbuntuであればGitは標準で入っていることが多いですが、未導入の場合は sudo apt install git でインストールできます。インストール後は、コミット時に記録されるユーザー情報を必ず設定しましょう。
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
基本的なワークフローとコマンド
日常的な開発は、「変更・追加(add)」「記録(commit)」「確認(status/diff)」のサイクルで進みます。
ファイルのステージングとコミット
作業ディレクトリでの変更を git add(または git stage)でステージングエリアに追加し、 git commit でレポジトリに記録します。
誤って add したファイルをステージングエリアから下ろす(unstage)には、 git restore --staged <ファイル名> を使うのが最も安全で推奨される方法です。
変更内容の確認(git diff)
差分を確認するには git diff を使います。
オプションや引数を状況に応じて使い分けることで、見やすい差分を表示できます。
例:
- SQL View定義の更新:
git diff --color-moved - 別メソッドやファイルへのコード分割:
git diff --color-moved --color-moved-ws=ignore-all-space - 似通ったファイルのブランチ間比較:
git diff branch1:file1 branch2:file2
詳細記事: git diffオプション:目的別まとめ
プルリクエストの作成とコードレビュー
チーム開発では、自分の変更を他のメンバーに確認してもらうプルリクエスト(PR)が中心となります。
プルリクエストの説明欄
レビューワーが内容を素早く理解できるよう、説明欄には以下の項目を記載しましょう。
- 概要:どのような課題を解決するのか。
- 対応内容:具体的なロジックや処理の流れ。
- 動作確認結果:どのようなテストを行い、どのような結果(スクリーンショット等)になったか。
詳細記事:
効率的なコードレビュー
レビューを行う際は、いきなりコードを見るのではなく、まずタスクの背景やPRの説明を読み、動作確認を行ってからファイル一覧(森)とコード詳細(木)を確認する順番で進めると効率的です。
- 詳細記事: コードレビューの順番
CLIでのPR再現
コードレビューをターミナル上で行いたい場合、若干の設定変更でGitHubのプルリクエストレビュー画面とほぼ同じ内容をローカル環境で再現できます。
- 詳細記事: Github PR風の差分表示をCLIで実現
マージ戦略と取り消し
複数のブランチを統合する「マージ」には、状況に応じた戦略があります。
主なマージ戦略
- Fast-forward:履歴が一本道の場合に、単にHEADを移動させる方法。
- ORT (Ostensibly Recursive’s Twin):現在のGitのデフォルト。複雑な祖先を持つブランチ間でも再帰的にマージを行います。
- Octopus:3つ以上のブランチを一度に統合します。
詳細記事:
マージの取り消し方法
マージ後に問題が見つかった場合、状況に応じて対処します。
- プッシュ前:
git reset --hardで履歴を書き換えるのがシンプルです。 - プッシュ後:履歴を保持するため
git revert -m 1 <コミットID>を使用して、マージの変更を打ち消すコミットを作成します。
詳細記事:
まとめ:Gitの理解を深めよう
Gitの理解は、エンジニアとしての強力な武器になります。基本的なコマンドに慣れたら、 Gitの内部構造についても学習を深めてみてください。
Gitは「コミット」「ツリー」「ブロブ」といったデータ構造でデータを保持しており、各コマンドがこれらのポインタをどのように動かすかを視覚的にイメージできると、複雑なトラブルも論理的に解決できるようになります。
Gitの内部構造をより深く学びたい方には、Gitの設計思想やデータモデルを詳しく解説している『実用Git』(オライリー・ジャパン)を手に取ってみることをおすすめします。
