Git/GitHub入門:チーム開発の必須スキルを基礎から習得

開発ツール

なぜGitを学ぶ必要があるのか?現代エンジニアの必須スキル

「コードのバックアップならGoogle Driveでいいのでは?」「なぜわざわざGitという難しそうなツールを使うの?」初めてGitを知った時、誰もがこう思います。しかし、プログラミングを仕事にするなら、Gitは避けて通れません。

本記事では、Git未経験者でも確実に理解できるよう、実際の開発現場でよく使うコマンドに絞って解説します。

Gitが解決する5つの問題

従来の問題 Gitでの解決
最終版_修正済み_本当に最終.zipの山 すべての変更履歴を自動記録
誰が何を変更したか分からない 変更者と理由を完全追跡
同時編集で上書きしてしまう 自動マージ機能で安全に統合
バグ修正前の状態に戻せない 任意の時点に即座に復元可能
チーム開発が困難 ブランチで独立して開発
じゅんち8

初めて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
じゅんち8

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 で完了
じゅんち8

コンフリクトは怖くありません!最初は戸惑いますが、「どちらの変更を残すか」を冷静に判断すれば大丈夫。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活用:オープンソースへの貢献

他人のプロジェクトに貢献する流れ

  1. Fork:GitHubでプロジェクトをフォーク
  2. Clone:自分のフォークをローカルにクローン
  3. Branch:機能追加用のブランチ作成
  4. Commit:変更をコミット
  5. Push:自分のフォークにプッシュ
  6. 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
じゅんち8

Gitは最初は難しく感じますが、基本的なコマンドだけでも十分実用的です。まずはgit status, add, commit, pushの4つを確実に使えるようになりましょう。Claude CodeDockerと組み合わせると、さらに開発効率が上がります。

まとめ:Git/GitHubで変わる開発スタイル

Gitは単なるバージョン管理ツールではなく、現代の開発文化の中心です。オープンソース、チーム開発、CI/CD、すべての基盤にGitがあります。

最初は複雑に見えますが、日常的に使うコマンドは10個程度。これらを確実に覚えれば、あなたも立派なGitユーザーです。さらに重要なのは、失敗を恐れないこと。Gitは「やり直し」ができるツールです。

まずは個人プロジェクトで練習して、徐々にチーム開発やオープンソース貢献にチャレンジしていきましょう。Happy Coding!

関連記事

タイトルとURLをコピーしました