【GitHubの使い方完全ガイド!リポジトリの作成からプルリクまで】

【GitHubの使い方完全ガイド!リポジトリの作成からプルリクまで】

GitHubの基本的な使い方から実践的なワークフローまで、初心者にもわかりやすく解説します。


【GitHubの使い方完全ガイド!リポジトリの作成からプルリクまで】

GitHubは、世界中の開発者が利用する最大のソースコード共有プラットフォームです。この記事では、GitHubの基本的な使い方から実践的なワークフローまで、初心者にもわかりやすく解説します。

GitHubとは?

GitHubは、Gitのリポジトリをホスティングするウェブサービスです。主な特徴は:

  1. コード管理

    • ソースコードの保存
    • バージョン管理
    • 変更履歴の追跡
  2. コラボレーション

    • チーム開発の促進
    • コードレビュー
    • イシュー管理
  3. オープンソース

    • プロジェクトの公開
    • コミュニティとの協力
    • 知識の共有

アカウントの作成とセットアップ

1. アカウント作成

  1. GitHubにアクセス
  2. 「Sign up」をクリック
  3. 必要情報を入力
    • ユーザー名
    • メールアドレス
    • パスワード

2. プロフィールの設定

# プロフィールの例
- Name: 山田太郎
- Bio: Web developer, Open source enthusiast
- Location: Tokyo, Japan
- Company: Tech Company Inc.

3. SSHキーの設定

# SSHキーの生成
ssh-keygen -t ed25519 -C "your_email@example.com"

# 公開キーの表示
cat ~/.ssh/id_ed25519.pub

# GitHubに公開キーを登録
# Settings > SSH and GPG keys > New SSH key

リポジトリの作成と管理

1. 新規リポジトリの作成

  1. GitHubダッシュボードの「New」ボタンをクリック
  2. 基本情報の入力
    • リポジトリ名
    • 説明
    • 公開/非公開の選択
    • README.mdの初期化

2. リポジトリの初期化

# ローカルリポジトリの作成
git init

# リモートリポジトリの追加
git remote add origin git@github.com:username/repository.git

# 最初のコミット
git add .
git commit -m "Initial commit"
git push -u origin main

3. .gitignoreの設定

# Node.js
node_modules/
npm-debug.log

# IDE
.vscode/
.idea/

# OS
.DS_Store
Thumbs.db

# 環境変数
.env
.env.local

ブランチの操作

1. ブランチの作成と切り替え

# 新しいブランチの作成
git checkout -b feature/new-feature

# ブランチの一覧表示
git branch

# ブランチの切り替え
git checkout main

2. ブランチの命名規則

feature/   - 新機能の開発
bugfix/    - バグ修正
hotfix/    - 緊急の修正
release/   - リリース準備
docs/      - ドキュメント更新

プルリクエスト(PR)の作成と管理

1. PRの基本的な流れ

  1. ブランチの作成

    git checkout -b feature/new-feature
  2. 変更の実装

    # コードの変更
    git add .
    git commit -m "Add new feature"
    git push origin feature/new-feature
  3. PRの作成

    • GitHubで「New Pull Request」をクリック
    • ベースブランチと比較ブランチを選択
    • タイトルと説明を記入

2. 良いPRの書き方

# Pull Request Template

## 変更内容
- 機能Aの追加
- 機能Bの修正
- テストの追加

## 関連イシュー
- #123
- #456

## テスト結果
- [ ] ユニットテスト
- [ ] 統合テスト
- [ ] E2Eテスト

## スクリーンショット
(必要な場合)

## 補足情報
実装上の注意点や依存関係の変更など

3. レビューのプロセス

  1. レビュアーの指定

    • 適切なチームメンバーを選択
    • 必要な承認数を設定
  2. レビューコメントへの対応

    # レビュー指摘の修正
    git add .
    git commit -m "Fix review comments"
    git push origin feature/new-feature
  3. マージの実行

    • すべての承認を確認
    • CIチェックの確認
    • マージボタンをクリック

イシューの活用

1. イシューの作成

# Issue Template

## 概要
簡潔な問題/タスクの説明

## 詳細
具体的な内容や再現手順

## 期待される結果
理想的な状態や目標

## 現在の状態
現状の問題点や進捗

## タスク
- [ ] タスク1
- [ ] タスク2
- [ ] タスク3

## 関連リンク
- 関連ドキュメント
- 参考URL

2. ラベルとマイルストーン

  • ラベルの例

    • bug: バグ報告
    • enhancement: 機能改善
    • documentation: ドキュメント
    • help wanted: 協力募集
  • マイルストーンの活用

    • バージョンごとの管理
    • スプリントの管理
    • リリース計画の管理

GitHubの便利な機能

1. GitHub Actions

# .github/workflows/ci.yml
name: CI

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    
    - name: Setup Node.js
      uses: actions/setup-node@v2
      with:
        node-version: '18'
        
    - name: Install dependencies
      run: npm ci
      
    - name: Run tests
      run: npm test

2. GitHub Pages

# .github/workflows/deploy.yml
name: Deploy to GitHub Pages

on:
  push:
    branches: [ main ]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    
    - name: Build
      run: |
        npm ci
        npm run build
        
    - name: Deploy
      uses: peaceiris/actions-gh-pages@v3
      with:
        github_token: ${{ secrets.GITHUB_TOKEN }}
        publish_dir: ./dist

3. プロジェクトボード

  • カンバンボードの活用

    • To Do
    • In Progress
    • Review
    • Done
  • 自動化の設定

    • PRのオープン時にIn Progressに移動
    • マージ時にDoneに移動

セキュリティとベストプラクティス

1. セキュリティ設定

  1. 二要素認証の有効化

    • Settings > Security > Two-factor authentication
  2. アクセストークンの管理

    # トークンの使用例
    git clone https://[token]@github.com/username/repository.git
  3. 依存関係の脆弱性チェック

    • Dependabot alertsの有効化
    • 自動更新の設定

2. コードの保護

# .github/CODEOWNERS
# 特定のファイルやディレクトリの変更に必要なレビュアーを指定
*.js    @javascript-team
*.py    @python-team
/docs/  @docs-team

トラブルシューティング

1. よくある問題と解決方法

  1. プッシュが拒否された

    # リモートの変更を取得
    git fetch origin
    git rebase origin/main
    
    # 競合の解決後
    git push origin feature/new-feature
  2. マージ競合の解決

    # 競合したファイルの確認
    git status
    
    # 競合の解決後
    git add .
    git commit -m "Resolve merge conflicts"
  3. コミットの取り消し

    # 直前のコミットを取り消し
    git reset --soft HEAD^
    
    # 特定のコミットまで戻る
    git reset --hard <commit-hash>

まとめ

GitHubの基本的な使い方について解説しました:

  1. 基本操作

    • リポジトリの作成と管理
    • ブランチの操作
    • プルリクエストの作成
  2. チーム開発

    • イシュー管理
    • コードレビュー
    • プロジェクト管理
  3. セキュリティ

    • アクセス管理
    • 脆弱性対策
    • コードの保護

GitHubを効果的に活用することで、より効率的なソフトウェア開発が可能になります。

次のステップ

GitHubの基本を理解したら、以下の記事も参考にしてください: