メインコンテンツへスキップ
ブログ一覧に戻る
Web制作・運用

Gitとは?超初心者向け完全ガイド

2025年12月23日
最終更新: 2026年10月8日
6分で読めます

この記事でわかること

Gitの基本を、作業ツリー・ステージ・コミットの違いから解説します。空の練習フォルダーで差分確認、ブランチの統合、ローカルのリモート共有を一巡し、各操作の前後に何を見るかを具体化。GitHubとの違い、未コミットの保護や秘密情報、履歴を戻す前の判断も整理し、仕事用のデータを使わず基本手順を試せます。

2026年10月8日にPro Gitの変更記録・remote、git pullのマニュアル、branchingの公式章を再確認した。Gitは変更をcommitへ記録し、remoteから取得・統合する流れを持つが、pullはfetchと統合の組み合わせであり、branch、remote、working tree、index、履歴、レビュー、CIを一つの同期ボタンへしない。共有前に差分、取得先、統合方針、未コミット変更、保護規則を確認し、教材のコマンドは自社の運用証跡とは別に扱う。

Gitは、ファイルの変更を自分で選んだ区切りに記録し、差分を調べたり、別の作業を統合したりするための道具です。ファイルを保存しただけで履歴が増えるわけではありません。まず「作業中の内容」「次に記録する内容」「記録済みの内容」を区別すると、操作の意味がつながります。

30秒で要点

  • addで記録対象を選び、commitで履歴を作る。編集しただけではコミットされない。
  • pushは別リポジトリへの共有、pullは取得と統合。どちらも公開・本番反映と同義ではない。
  • 最初は空の練習フォルダーで、差分確認、コミット、ブランチ、ローカルの共有を一巡する。
Gitの作業ツリー、ステージ、ローカル履歴、共有を四段階に分けた著者作成図
著者作成の練習手順。add時点の内容と後の編集、共有と本番反映を区別する。

GitとGitHub、リポジトリを分けて考える

リポジトリは、変更履歴とそれを管理する情報のまとまりです。Gitは履歴を扱う道具、GitHubはGitリポジトリを置いて共同作業などを行うサービスです。Gitを学ぶために、最初から外部サービスのアカウントや公開リポジトリを作る必要はありません。

履歴にはコミットした内容が入ります。作業中の未コミットの変更が自動で保護されるわけではなく、別の場所へ送っていない履歴はその端末を失うと失われ得ます。「Gitを入れたのでバックアップが完了した」とは判断しないでください。画像やWord文書も記録できますが、テキストと同じ細かさで差分・統合を扱えるとは限りません。

表が収まらない場合は、横にスクロールできます

場所何があるか確認する操作
作業ツリーいま編集しているファイルgit status、git diff
ステージ次のコミットに入れる内容git diff --staged
ローカルの履歴コミット済みの記録git log --oneline
リモート別のリポジトリgit remote -v

git addは、その時点の内容をステージへ置きます。その後に編集した内容は、もう一度追加しなければ同じコミットに入りません。細かな状態の意味はPro Gitの変更記録で確認できます。

空の練習フォルダーで最初の履歴を作る

以下はGitが利用できるPowerShellの教材です。既存の仕事用フォルダーでは実行せず、まだ存在しない練習用の名前を使います。メールアドレスは架空の値で、この練習リポジトリだけに設定します。グローバル設定は変更しません。

mkdir git-practice
cd git-practice
git init -b main
git config user.name "Practice User"
git config user.email "practice@example.invalid"
Set-Content -Encoding utf8 note.txt "first"
git status --short
git add note.txt
git diff --staged
git commit -m "Add practice note"
git log --oneline

最初の状態ではnote.txtが未追跡、追加後は次のコミット対象、コミット後は変更がなければ作業ツリーがきれいになります。コミットIDは実行環境や時刻で変わるので、教材と同じ文字列になることを成功条件にしません。内容と件数を確認します。

次に「追加後の編集」を試します。

Add-Content -Encoding utf8 note.txt "second"
git add note.txt
Add-Content -Encoding utf8 note.txt "third"
git diff --staged
git diff
git commit -m "Add second line"
git status --short
git add note.txt
git commit -m "Add third line"

最初の差分にはsecond、後の差分にはthirdが見えるはずです。「Add second line」の直後もthirdは未記録です。確認せずにgit add .を使うと、同じ場所の別の変更まで対象になる場合があります。初心者の練習ではファイルを指定し、追加前後の差分を確認してください。鍵・トークン・個人情報は教材にも履歴にも入れません。

ブランチで試し、統合先を確認する

ブランチは作業の流れを分けるために使います。次の例では、新しいブランチで1行追加してからmainへ戻し、変更を統合します。

git switch -c try-note
Add-Content -Encoding utf8 note.txt "branch example"
git add note.txt
git commit -m "Add branch example"
git switch main
git merge --ff-only try-note
git log --oneline --all

この単純な例は、統合先で別の変更をしていないためfast-forwardで進められます。現実に履歴が分岐していれば、--ff-onlyが拒否することがあります。拒否は失敗をごまかすための条件ではなく、統合方法を人が決める地点です。

同じ行を別々に変えた衝突は、どちらが正しいかGitだけでは決められません。残す内容を確認し、動作を検証してから記録します。Pro Gitのブランチとマージでは、分岐した履歴の統合も説明されています。

外部へ送らずにremote、push、clone、pullを試す

元の練習フォルダー内から、隣に履歴の受け皿を作ります。shared.gitはこの教材用のローカルbareリポジトリです。外部ネットワークへは送信しません。

git init --bare -b main ../shared.git
git remote add origin ../shared.git
git remote -v
git push -u origin main
cd ..
git clone shared.git teammate
cd teammate
git log --oneline
git pull --ff-only

remote addは接続先に名前を付ける操作で、追加しただけではアップロードされません。cloneは複製を作り、通常は元をoriginとして設定します。公式のリモート説明も参照してください。

この時点では新しい変更がないため、pullは更新なしになるはずです。pullを「ダウンロードだけ」と覚えず、取得した履歴を現在のブランチへ統合する操作と捉えます。統合方法はオプションや設定に関係するため、教材では--ff-onlyを明示しました。git-pullの説明

戻す前に、どこまで記録したかを確認する

表が収まらない場合は、横にスクロールできます

困っている状態まず確認すること次の判断
追加した内容を見直したいステージの差分記録対象から外すか、追加内容を修正する
未コミットの編集を消したい必要な変更が混ざっていないか別コピーを保存してから、対象を限定する
共有済みコミットを取り消したい他の人が参照している履歴か履歴を書き換える前にチームの方針を確認する
サイトを前の状態へ戻したいビルド・データ・配信の状態Gitの履歴操作だけで完了としない

いきなり強制リセットや強制pushを行うより、statusと差分で対象を明確にする方が安全です。復旧操作は、未保存の作業や共有済み履歴を失う場合があるため、この入門では実行例に含めていません。

次の作業に進める確認

練習後、自分の言葉で「どの内容が作業中で、どの内容を追加し、どのコミットへ入れたか」を説明してください。架空の練習では4回のコミットができ、ローカルに作った複製にもその4件が見えます。件数だけでなく、最後のファイルに4行があることも確認します。

次に実プロジェクトへ移るときは、管理対象、秘密情報の除外、ブランチの使い方、レビュー、復旧とバックアップの担当をチームで決めます。基本用語はリポジトリ、コミット、ブランチ、マージも参照できます。

よくある質問(FAQ)