なぜGitを学ぶ必要があるのか?現代エンジニアの必須スキル
「コードのバックアップならGoogle Driveでいいのでは?」「なぜわざわざGitという難しそうなツールを使うの?」初めてGitを知った時、誰もがこう思います。しかし、プログラミングを仕事にするなら、Gitは避けて通れません。
本記事では、Git未経験者でも確実に理解できるよう、実際の開発現場でよく使うコマンドに絞って解説します。
Gitが解決する5つの問題
従来の問題 | Gitでの解決 |
---|---|
最終版_修正済み_本当に最終.zipの山 | すべての変更履歴を自動記録 |
誰が何を変更したか分からない | 変更者と理由を完全追跡 |
同時編集で上書きしてしまう | 自動マージ機能で安全に統合 |
バグ修正前の状態に戻せない | 任意の時点に即座に復元可能 |
チーム開発が困難 | ブランチで独立して開発 |

初めてGitを使った時は「なんでこんなに複雑なの?」と思いましたが、一度チーム開発でコンフリクトを経験すると、Gitなしでは開発できなくなりました。今では個人プロジェクトでも必ず使っています。
Git vs GitHub:違いを理解する
- Git:バージョン管理システム(ツール)
- GitHub:Gitリポジトリのホスティングサービス(Webサービス)
Gitはあなたのパソコンで動くソフトウェアで、GitHubはGitで管理しているコードをクラウドに保存・共有するためのサービスです。GitHubの代わりにGitLabやBitbucketを使うこともできます。
環境構築:Gitのインストールと初期設定
macOS
# Homebrewでインストール(推奨)
brew install git
# または Xcodeコマンドラインツール
xcode-select --install
Windows
# Git for Windowsをダウンロード
# https://gitforwindows.org/ から実行ファイルをダウンロード
# または winget(Windows 11)
winget install --id Git.Git
Linux (Ubuntu/Debian)
sudo apt update
sudo apt install git
初期設定(全OS共通)
# ユーザー名とメールアドレスを設定
git config --global user.name "あなたの名前"
git config --global user.email "[email protected]"
# 日本語ファイル名を正しく表示
git config --global core.quotepath false
# デフォルトブランチ名をmainに設定
git config --global init.defaultBranch main
# 設定確認
git config --list
実践:初めてのGitリポジトリ
新規プロジェクトの開始
# プロジェクトフォルダを作成
mkdir my-first-project
cd my-first-project
# Gitリポジトリとして初期化
git init
# 確認(.gitフォルダが作成される)
ls -la
ファイルの追加とコミット
# READMEファイルを作成
echo "# My First Project" > README.md
# 現在の状態を確認(重要!)
git status
# ファイルをステージングエリアに追加
git add README.md
# もう一度状態確認(緑色になる)
git status
# 変更をコミット(記録)
git commit -m "初めてのコミット:READMEを追加"
# コミット履歴を確認
git log --oneline

git statusは本当に大事です!何か操作する前後で必ず実行する癖をつけましょう。これだけで、ミスの9割は防げます。
GitHub:リモートリポジトリの活用
GitHubアカウント作成とSSH設定
# SSHキーの生成
ssh-keygen -t ed25519 -C "[email protected]"
# 生成されたキーを確認
cat ~/.ssh/id_ed25519.pub
# このキーをGitHubに登録:
# 1. GitHub → Settings → SSH and GPG keys
# 2. New SSH key をクリック
# 3. キーを貼り付けて保存
# 接続テスト
ssh -T [email protected]
リモートリポジトリへのプッシュ
# GitHubで新規リポジトリを作成後
# リモートリポジトリを追加
git remote add origin [email protected]:yourusername/my-first-project.git
# リモートの確認
git remote -v
# mainブランチにプッシュ
git push -u origin main
# 以降は簡略化可能
git push
必須コマンド10選:これだけ覚えれば大丈夫
コマンド | 用途 | 使用頻度 |
---|---|---|
git status |
現在の状態確認 | ★★★★★ |
git add . |
変更をステージング | ★★★★★ |
git commit -m "メッセージ" |
変更を記録 | ★★★★★ |
git push |
リモートに送信 | ★★★★☆ |
git pull |
リモートから取得 | ★★★★☆ |
git log --oneline |
履歴確認 | ★★★☆☆ |
git branch |
ブランチ一覧 | ★★★☆☆ |
git checkout -b ブランチ名 |
新規ブランチ作成 | ★★★☆☆ |
git diff |
変更内容確認 | ★★☆☆☆ |
git clone URL |
リポジトリ複製 | ★★☆☆☆ |
ブランチ戦略:チーム開発の基本
なぜブランチを使うのか?
ブランチは「並行世界」のようなものです。メインの開発ラインに影響を与えずに、新機能の開発やバグ修正ができます。
# 現在のブランチを確認
git branch
# 新機能用のブランチを作成して移動
git checkout -b feature/add-login
# 作業後、コミット
git add .
git commit -m "ログイン機能を追加"
# mainブランチに戻る
git checkout main
# 変更をマージ
git merge feature/add-login
# 不要になったブランチを削除
git branch -d feature/add-login
一般的なブランチ命名規則
main
またはmaster
:本番環境のコードdevelop
:開発中の最新コードfeature/機能名
:新機能開発bugfix/バグ名
:バグ修正hotfix/緊急修正名
:緊急修正
コンフリクト解決:避けては通れない道
複数人が同じファイルの同じ部分を編集すると「コンフリクト」が発生します。怖がらずに対処しましょう。
コンフリクトの例
# コンフリクトが発生したファイルの中身
<<<<<<< HEAD
私の変更内容
=======
他の人の変更内容
>>>>>>> feature/other-branch
# 解決方法
1. 手動で正しい内容に編集
2. <<<<<<<, =======, >>>>>>> の行を削除
3. git add で解決済みとマーク
4. git commit で完了

コンフリクトは怖くありません!最初は戸惑いますが、「どちらの変更を残すか」を冷静に判断すれば大丈夫。VSCodeなどのエディタには、コンフリクト解決を支援する機能もあります。
.gitignore:管理したくないファイルの除外
パスワードファイルやビルド成果物など、Gitで管理すべきでないファイルを指定します。
# .gitignore ファイルの例
# OS関連
.DS_Store
Thumbs.db
# エディタ
.vscode/
.idea/
*.swp
# 依存関係
node_modules/
vendor/
# 環境変数
.env
.env.local
# ビルド成果物
dist/
build/
*.log
# 秘密鍵
*.pem
*.key
実践的なワークフロー:現場でのGit活用
朝の作業開始時
# 最新の変更を取得
git pull origin main
# 作業用ブランチを作成
git checkout -b feature/today-task
# 状態確認
git status
作業中(こまめにコミット)
# 変更確認
git diff
# 部分的に追加(対話モード)
git add -p
# 意味のある単位でコミット
git commit -m "feat: ユーザー認証機能を追加"
git commit -m "fix: ログイン時のエラーを修正"
git commit -m "docs: READMEにインストール手順を追加"
作業終了時
# リモートにプッシュ
git push origin feature/today-task
# GitHubでPull Requestを作成
# レビュー後、mainにマージ
便利なTips:生産性を上げる設定
エイリアス設定
# よく使うコマンドを短縮
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.cm commit
git config --global alias.lg "log --oneline --graph"
# 使用例
git st # git status と同じ
git lg # 見やすいログ表示
グローバル.gitignore
# 全プロジェクト共通の除外設定
git config --global core.excludesfile ~/.gitignore_global
# ~/.gitignore_global に記述
.DS_Store
.vscode/
.idea/
トラブルシューティング
問題 | 解決方法 |
---|---|
直前のコミットを取り消したい | git reset --soft HEAD^ |
コミットメッセージを修正したい | git commit --amend |
特定のファイルの変更を破棄 | git checkout -- ファイル名 |
ステージングを取り消し | git reset HEAD ファイル名 |
誤ってpushしてしまった | git revert HEAD (履歴を残す) |
GitHub活用:オープンソースへの貢献
他人のプロジェクトに貢献する流れ
- Fork:GitHubでプロジェクトをフォーク
- Clone:自分のフォークをローカルにクローン
- Branch:機能追加用のブランチ作成
- Commit:変更をコミット
- Push:自分のフォークにプッシュ
- Pull Request:本家にPRを送る
# フォーク後の作業
git clone [email protected]:yourusername/awesome-project.git
cd awesome-project
# 本家をupstreamとして追加
git remote add upstream [email protected]:original/awesome-project.git
# 最新の変更を取得
git fetch upstream
git merge upstream/main
# 作業ブランチで開発
git checkout -b fix/typo-in-readme
# ... 修正作業 ...
git commit -m "docs: Fix typo in README"
git push origin fix/typo-in-readme
# GitHubでPull Requestを作成
次のステップ:さらに学ぶために
中級者向けトピック
- git rebase:履歴をきれいに整理
- git stash:一時的な変更の退避
- git cherry-pick:特定のコミットだけ取り込み
- git bisect:バグの原因を特定
- Git hooks:自動化スクリプト
学習リソース
- Pro Git(日本語版):無料のGit完全ガイド
- GitHub Skills:GitHubの公式学習コース
- Gitクライアント:SourceTree, GitHub Desktop, GitKraken

Gitは最初は難しく感じますが、基本的なコマンドだけでも十分実用的です。まずはgit status, add, commit, pushの4つを確実に使えるようになりましょう。Claude CodeやDockerと組み合わせると、さらに開発効率が上がります。
まとめ:Git/GitHubで変わる開発スタイル
Gitは単なるバージョン管理ツールではなく、現代の開発文化の中心です。オープンソース、チーム開発、CI/CD、すべての基盤にGitがあります。
最初は複雑に見えますが、日常的に使うコマンドは10個程度。これらを確実に覚えれば、あなたも立派なGitユーザーです。さらに重要なのは、失敗を恐れないこと。Gitは「やり直し」ができるツールです。
まずは個人プロジェクトで練習して、徐々にチーム開発やオープンソース貢献にチャレンジしていきましょう。Happy Coding!