Gitとは?バージョン管理の仕組みと最初に覚える5コマンド【入門】

公開

/ 最終更新

Gitとは?バージョン管理の仕組みと最初に覚える5コマンド【入門】

「ファイル名が『企画書_最終_修正2_これが本当に最終.docx』になっている」――この混沌を根本から解決するのがバージョン管理システムGit(ギット)です。

Gitはプログラマーだけの道具ではありません。文書・設定ファイル・Webサイトなど「変更履歴を残したいもの」すべてに使えます。この記事では、仕組みのイメージと最初に覚える5つのコマンド、GitHubとの関係までを初心者向けに解説します。

Gitは「巻き戻せるセーブ機能」

Gitを一言で言えば、フォルダの状態を好きなタイミングでセーブ(記録)し、いつでも過去のセーブ地点に戻れる仕組みです。ゲームのセーブデータを想像してください。

  • セーブ地点(コミット)には「何を変えたか」のメモが付く
  • いつ・誰が・どこを変えたかが全履歴として残る
  • 失敗しても、動いていた時点に確実に戻れる
  • 複数人で同じフォルダを安全に編集できる(仕事でGitが必須とされる理由)

基本の流れ:3つの場所を意識する

Gitの基本概念図。作業フォルダで編集し、git addでステージに載せ、git commitでリポジトリに記録する流れ
この図が頭に入れば、Gitの入門書がすらすら読めるようになります

Gitには「作業フォルダ→ステージ→リポジトリ」という3つの場所があります。ポイントは、セーブが2段階に分かれていることです。「add」で記録したい変更を選び、「commit」でメモ付きの記録として確定する。この2段階のおかげで、複数の変更のうち一部だけをきれいに記録できます。

最初に覚える5コマンド

Git入門で最初に覚えるコマンド。git init、git status、git add、git commit、git logの実行例
実際の画面イメージ。#で始まる行は説明用のコメントです
コマンド働き
git initフォルダをGit管理下にする(最初に1回だけ)
git status現在の変更状況を表示。迷ったらまずこれ
git add ファイル名変更をステージに載せる(全部なら git add .)
git commit -m “メモ”ステージの内容を履歴として記録
git log –onelineこれまでの記録を一覧表示

コミットのメモ(コミットメッセージ)は「見出しを修正」「◯◯のバグを修正」のように、後で読む自分がわかる具体的な一文にするのがコツです。

GitとGitHubの関係

よく混同されますが、Gitは自分のPCで動く仕組み、GitHubはGitの履歴を預かるクラウドサービスです。GitHubに履歴を置く(push)ことで、バックアップ、他の人との共同作業、作品の公開(ポートフォリオ)ができるようになります。まずはPC内のGitだけで練習し、慣れたらGitHubへ進む2段階がおすすめです。

導入方法

  • Windows:「Git for Windows」をインストール。またはWSL内なら sudo apt install git
  • Mac:ターミナルで git --version と打つと、未導入なら開発ツールのインストールが案内されます
  • 初期設定:インストール後に名前とメールアドレスを登録します(git config --global user.name "名前" など)

初心者がつまずくポイント

  • コミットの粒度がわからない:「1つの意味のある変更=1コミット」が目安。細かすぎるほうが粗すぎるより安全です
  • コマンドが怖い:VS CodeのGit機能やGitHub Desktopなど、画面操作(GUI)でも同じことができます。仕組みを理解していればGUIから入っても問題ありません
  • 過去に戻る操作(reset/revert)で混乱:最初は「戻る前に現状をコミットしておく」だけ覚えれば大丈夫。失われて困る状態を作らないことが最優先です

よくある質問

Q. プログラミングをしない人にもGitは役立ちますか?

A. 役立ちます。設定ファイル、原稿、ブログのカスタマイズ記録など「壊したくないテキスト」の管理に最適です。ただし、WordやExcelなどのバイナリファイルは差分が見えないため、恩恵は薄めです。

Q. GitとGitHubは無料ですか?

A. Git自体は完全無料です。GitHubも個人利用の基本機能は無料で、公開・非公開リポジトリの両方を作れます。

Q. チーム開発で必要な「ブランチ」も最初に覚えるべきですか?

A. 1人での利用ならブランチは後回しで大丈夫です。add/commit/logのリズムが身についてから、「試験的な変更を分けて進める道具」として学ぶと、すんなり理解できます。

この記事に出てくる用語

バックアップ/クラウド/Git/ほか計117語をIT用語辞典で解説しています

やり直したいときの、状況別コマンド

Gitで最も困るのが「間違えた。戻したい」という場面です。ところが戻し方は状況によって違い、間違ったコマンドを使うと作業内容が消えます。ここは表として手元に置いておく価値があります。

やりたいことコマンド危険度
編集を取り消して、最後のコミットの状態に戻す(1ファイル)git restore ファイル名編集内容は消える
ステージ(add)を取り消す。編集内容は残すgit restore --staged ファイル名安全
直前のコミットのメッセージを書き直すgit commit --amend共有前なら安全
直前のコミットを取り消す。編集内容は残すgit reset --soft HEAD~1安全
直前のコミットを取り消し、編集内容も破棄git reset --hard HEAD~1復旧が難しい。要注意
公開済みのコミットを打ち消すgit revert コミットID安全。取り消した記録が残る
作業を一時的に棚上げするgit stash / 戻すときは git stash pop安全

覚え方の原則。まだ誰とも共有していない(pushしていない)なら reset、すでに共有したなら revert。共有済みの履歴をresetで書き換えると、他の人の手元と食い違い、収拾がつかなくなります。1人で使っていても、この使い分けを癖にしておくと安全です。

「消してしまった」ときの最後の砦

git reset --hard をしてしまっても、諦めるのはまだ早い場合があります。Gitは、履歴の移動を別の場所に記録しています。

git reflog と入力してください。これまでHEADがどこを指していたかの一覧が出ます。消してしまったコミットのIDがここにあれば、次のコマンドで戻せます。

git reset --hard そのコミットID

状況救えるか
コミット済みのものをresetで消した救える。reflogに残っている
ブランチを間違えて削除した救える。reflogから復元できる
まだ一度もコミットしていない編集を消した救えない。Gitはコミットしたものしか記録していない
stashしたものを見失った救える。git stash listで一覧を確認

ここから導かれる実務上の教訓は1つです。不安な作業をする前には、とりあえずコミットしておく。メッセージが雑でも構いません。コミットさえしてあれば、ほぼ何をしても戻せます。

ブランチを、1人でも使う理由

ブランチはチーム開発の道具だと思われがちですが、1人で使っても効果があります。「本体を壊さずに試せる」からです。

場面ブランチなしブランチあり
新機能を試したい動いていたコードを直接いじる。失敗すると戻すのが大変別ブランチで試し、駄目なら捨てるだけ
試している途中で緊急の修正が入った中途半端な状態が混ざる本体ブランチに切り替えて修正し、また戻れる
2つの案を比べたい片方ずつしか作れない両方を並行して残せる

最低限の流れは3コマンドです。

操作コマンド
新しいブランチを作って移動git switch -c 名前
元のブランチに戻るgit switch main
作業したブランチを取り込むgit merge 名前

命名は自由ですが、fix-logintry-new-design のように何をしているかが分かる名前にしておくと、数日後の自分が助かります。

公開してはいけないファイルを、確実に除外する

初学者が最も多く起こす事故が、パスワードやAPIキーを含む設定ファイルを、そのまま公開リポジトリに上げてしまうことです。公開されたキーは、自動巡回プログラムに数分で拾われます。

防ぐには、リポジトリの直下に .gitignore というファイルを作り、除外したいものを1行ずつ書きます。

書く内容除外されるもの
.env環境変数ファイル。APIキーの定番の置き場所
node_modules/依存ライブラリ。再取得できるので上げる必要がない
*.logログファイル。個人情報が含まれることがある
.DS_StoremacOSが自動生成するファイル
config.local.*個人の設定ファイル

一度コミットしてしまったファイルは、.gitignoreに書いても消えません。すでに履歴に入っているためです。この場合、まず git rm --cached ファイル名 で追跡対象から外し、さらにそのキー自体を無効化して再発行してください。履歴からファイルを完全に消す作業は難しく、消したつもりでも残っていることがあります。漏れた鍵は、消すのではなく作り直す。これが原則です。

毎日の作業の型を、4行で固定する

コマンドを覚えようとするより、作業の型を決めてしまうほうが定着します。1人開発なら、次の4行を繰り返すだけで運用できます。

タイミングコマンド意味
作業を始める前git pull別の端末での変更を取り込む
切りのいいところでgit add .変更を記録の対象にする
続けてgit commit -m "何をしたか"セーブポイントを作る
作業を終えるときgit push手元の記録を共有先へ送る

コミットの粒度で迷ったら、「ここまでは動く」と言える状態ごとを目安にしてください。1日1回の巨大なコミットは、あとから問題箇所を特定できなくなります。逆に、細かすぎても履歴が読みにくくなります。1つの目的が達成されるたびに1コミット、が基本形です。

この記事で使える無料ツール

作ったものを公開するところまでを目標に据えると、学ぶ範囲が定まります。目標の立て方はプログラミング独学の目標の立て方を参照してください。

コミットのハッシュのような一意の識別子を自分で用意したい場面ではUUID・ランダム文字列生成が使えます。ブラウザの暗号用乱数で生成するため、推測されにくい値が得られます。

まとめ

Gitは「変更する→選ぶ(add)→記録する(commit)」のリズムさえ覚えれば、あとは必要に応じて広げていける道具です。ファイル名での版管理から卒業し、履歴という安心を手に入れましょう。プログラミング学習中の方は、作品づくりと並行して習慣にすると就職・案件でも強みになります。