Gitとは何か
Git(ギット)は、ファイルの変更を履歴として記録し、過去との違いを確認したり、必要な状態へ戻したりするための分散型バージョン管理システムです。個人開発でも、「昨日動いていた状態」と「今日の変更」を分けて残せます。
GitHubと一緒に使われることが多いものの、Gitそのものは自分のパソコンだけでも使えます。
一文でいうと
Gitとは、開発ファイルの節目ごとの状態と変更理由を、後から追える形で記録する仕組みです。
一般的なファイル保存は現在の内容を残します。Gitは、それに加えて「どのファイルが変わったか」「どの変更を一つの節目として残したか」を扱います。公式資料では、Gitは変更のたびにファイル群の状態をスナップショットとして捉える仕組みだと説明されています。
個人開発のどこで登場するか
画面を作る、バグを直す、設定を変えるといった作業の区切りで使います。たとえば読書記録アプリなら、次の履歴を別々に残せます。
本を追加する画面を作った
空欄を保存できないようにした
公開用の説明文を直した
変更を小さな目的ごとに分けておくと、不具合が出たときに原因候補を絞りやすくなります。「作業した日ごと」ではなく、「何を成立させた変更か」で区切るのが基本です。
変更が記録されるまでの三つの状態
Gitを始めるときは、まず次の三つを区別します。
変更済み:ファイルを編集したが、次の記録へ含めるかまだ決めていない
ステージ済み:次の記録へ含める変更として選んだ
コミット済み:選んだ変更を、説明とともにリポジトリへ記録した
git status は現在の状態を確認するコマンドです。git add で次のコミットへ含める変更を選び、git commit で記録します。操作名を暗記する前に、「今はどの状態で、次に何を選ぶのか」を意識します。
GitとGitHubを混同しない
Gitは変更履歴を管理する仕組みです。GitHubとは何かで説明したGitHubは、そのGitリポジトリをオンラインへ置き、Issueやレビューなどを使えるサービスです。
そのため、次のことが起こります。
Gitでコミットしても、GitHubへ送るまではオンライン側に反映されない
GitHubがなくても、ローカルでコミットや履歴確認はできる
GitHub上のファイルを編集しても、手元のリポジトリは自動更新されない場合がある
Git、リポジトリ、GitHubを別々の役割として捉えると、保存先を見失いにくくなります。
実行前後に差分を確認する
Gitは履歴を守る道具ですが、操作によっては変更を移動、統合、破棄できます。意味の分からないコマンドをそのまま貼り付けず、まず現在地と差分を確認します。
最初は次の順番を習慣にします。
対象のリポジトリとは何かを確認する
git statusで変更中のファイルを見る差分を読み、残したい変更だけを選ぶ
変更理由が分かる説明でコミットする
もう一度状態を確認する
特に、変更を強制的に捨てる操作や履歴を書き換える操作は、対象と復元方法を説明できるまで実行しません。
次に読む記事
Gitの操作を入力する場所が分からない場合は、ターミナルとは何かから読みます。一行の構造を知りたい場合はコマンドとは何かが次の入口です。
作品をオンラインへ置く段階では、GitHubとは何かと合わせて、ローカルとリモートのどちらに最新の記録があるかを確認します。