「Gitって難しそう」「GitHubの使い方がわからない」
プログラミングを始めると必ず出会うのがGitとGitHub。最初は難しく感じますが、基本を押さえれば怖くありません。
この記事では、Git/GitHubの基本から実践的な使い方まで、初心者にもわかりやすく解説します。
GitとGitHubの違い
まず、GitとGitHubの違いを理解しましょう。
Gitとは
Gitは「バージョン管理システム」です。
- ファイルの変更履歴を記録
- 過去の状態に戻せる
- 複数人での共同作業が可能
- ローカル(自分のPC)で動作
GitHubとは
GitHubは「Gitのホスティングサービス」です。
- Gitリポジトリをクラウドに保存
- チームでの共同開発をサポート
- Issue、Pull Requestなどの機能
- 世界最大の開発者コミュニティ
Git = バージョン管理ツール(ソフトウェア)
GitHub = Gitリポジトリのクラウドサービス
Gitのインストール
Windowsの場合
- Git公式サイトからダウンロード
- インストーラーを実行
- デフォルト設定でインストール
Macの場合
# Homebrewでインストール
brew install git
# または Xcode Command Line Toolsで
xcode-select --install
インストール確認
git --version
# git version 2.43.0
Gitの初期設定
インストール後、ユーザー名とメールアドレスを設定します。
# ユーザー名を設定
git config --global user.name "Your Name"
# メールアドレスを設定
git config --global user.email "your.email@example.com"
# 設定確認
git config --list
おすすめの追加設定
# デフォルトブランチ名をmainに
git config --global init.defaultBranch main
# エディタをVS Codeに(任意)
git config --global core.editor "code --wait"
# 日本語ファイル名の文字化け対策
git config --global core.quotepath false
基本的なGitコマンド
リポジトリの作成
# 新規プロジェクトの場合
mkdir my-project
cd my-project
git init
# 既存プロジェクトの場合
cd existing-project
git init
変更の記録(コミット)
# ファイルの状態を確認
git status
# ファイルをステージング(追加)
git add ファイル名
git add . # 全ファイル
# コミット(変更を記録)
git commit -m "コミットメッセージ"
履歴の確認
# コミット履歴を表示
git log
# 簡潔な履歴表示
git log --oneline
# グラフ表示
git log --oneline --graph
変更の取り消し
# ステージングを取り消す
git reset HEAD ファイル名
# 直前のコミットを修正
git commit --amend
# ファイルの変更を元に戻す
git checkout -- ファイル名
GitHubの始め方
アカウント作成
- GitHubにアクセス
- 「Sign up」をクリック
- メールアドレス、パスワード、ユーザー名を入力
- メール認証を完了
SSH鍵の設定(推奨)
# SSH鍵を生成
ssh-keygen -t ed25519 -C "your.email@example.com"
# 公開鍵をコピー(Mac)
pbcopy < ~/.ssh/id_ed25519.pub
# 公開鍵をコピー(Windows)
clip < ~/.ssh/id_ed25519.pub
GitHubの Settings → SSH and GPG keys → New SSH key で登録。
接続確認
ssh -T git@github.com
# Hi username! You've successfully authenticated
リモートリポジトリとの連携
新規リポジトリをGitHubにプッシュ
# GitHubでリポジトリを作成後
git remote add origin git@github.com:username/repo.git
git branch -M main
git push -u origin main
既存リポジトリをクローン
git clone git@github.com:username/repo.git
cd repo
プッシュとプル
# ローカルの変更をGitHubに反映
git push
# GitHubの変更をローカルに反映
git pull
ブランチの使い方
ブランチとは
ブランチは「作業の分岐」です。機能追加やバグ修正を本線(main)から分けて作業できます。
main ─────●─────●─────●─────●─── 本線
\ /
feature ●─────●─────●─── 機能開発
ブランチの基本操作
# ブランチ一覧を表示
git branch
# 新しいブランチを作成
git branch feature/new-feature
# ブランチを切り替え
git checkout feature/new-feature
# 作成と切り替えを同時に
git checkout -b feature/new-feature
# ブランチを削除
git branch -d feature/new-feature
ブランチ命名規則
feature/機能名 - 新機能開発
fix/修正内容 - バグ修正
hotfix/緊急修正 - 緊急バグ修正
docs/ドキュメント - ドキュメント更新
プルリクエスト(PR)
プルリクエストとは
プルリクエストは「変更をレビューしてマージする」仕組みです。
- ブランチで作業
- GitHubにプッシュ
- プルリクエストを作成
- レビューを受ける
- mainにマージ
PRの作成手順
# 1. 作業ブランチで変更をコミット
git checkout -b feature/add-login
# ... 作業 ...
git add .
git commit -m "ログイン機能を追加"
# 2. GitHubにプッシュ
git push -u origin feature/add-login
- GitHubでPull Requestを作成
- タイトルと説明を記入
- レビュアーを指定
- 「Create pull request」をクリック
良いPRの書き方
## 概要
ログイン機能を実装しました。
## 変更内容
- ログインフォームの追加
- 認証APIとの連携
- セッション管理
## テスト方法
1. /login にアクセス
2. テストアカウントでログイン
3. ダッシュボードが表示されることを確認
コンフリクトの解決
コンフリクトとは
同じファイルの同じ箇所を別々に編集すると発生します。
<<<<<<< HEAD
自分の変更
=======
他の人の変更
>>>>>>> feature/other
解決手順
# 1. 最新のmainを取得
git checkout main
git pull
# 2. 作業ブランチに戻ってマージ
git checkout feature/my-feature
git merge main
# 3. コンフリクトファイルを編集して解決
# <<<<<<< と >>>>>>> を削除し、正しいコードに修正
# 4. 解決をコミット
git add .
git commit -m "Merge main and resolve conflicts"
便利なGitコマンド
よく使うコマンド
# 変更の差分を確認
git diff
# 一時的に変更を退避
git stash
git stash pop
# 特定のコミットを取り込む
git cherry-pick コミットハッシュ
# コミット履歴を検索
git log --grep="検索キーワード"
# ファイルの変更履歴を確認
git log -p ファイル名
エイリアス設定
# よく使うコマンドを短縮
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.cm "commit -m"
# 使用例
git st # = git status
git co main # = git checkout main
.gitignoreの設定
.gitignoreとは
バージョン管理から除外するファイルを指定します。
よく除外するファイル
# 依存関係
node_modules/
vendor/
# ビルド成果物
dist/
build/
.next/
# 環境変数
.env
.env.local
# OS生成ファイル
.DS_Store
Thumbs.db
# IDE設定
.idea/
.vscode/
*.swp
グローバル.gitignore
# グローバル設定を作成
git config --global core.excludesfile ~/.gitignore_global
GitHubの便利機能
Issues
バグ報告、機能要望、タスク管理に使用。
## バグ報告
### 再現手順
1. ログインページにアクセス
2. パスワードを空にして送信
3. エラーが表示されない
### 期待する動作
エラーメッセージが表示される
### 環境
- OS: macOS 14
- ブラウザ: Chrome 120
GitHub Actions
CI/CDを自動化できます。
# .github/workflows/ci.yml
name: CI
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- run: npm ci
- run: npm test
GitHub Copilot
AIによるコード補完。月額$10から。
まとめ
Git/GitHubの学習ステップ:
初心者チェックリスト
- Gitをインストールした
- GitHubアカウントを作成した
- SSH鍵を設定した
- add, commit, pushを理解した
- ブランチを作成できる
- プルリクエストを作成できる
次のステップ
- 実際のプロジェクトで使ってみる
- チーム開発に参加する
- OSS(オープンソース)に貢献する
関連ツール
あなたに最適な学習方法を見つけませんか?