
【GitHubの使い方完全ガイド!リポジトリの作成からプルリクまで】
GitHubの基本的な使い方から実践的なワークフローまで、初心者にもわかりやすく解説します。
【GitHubの使い方完全ガイド!リポジトリの作成からプルリクまで】
GitHubは、世界中の開発者が利用する最大のソースコード共有プラットフォームです。この記事では、GitHubの基本的な使い方から実践的なワークフローまで、初心者にもわかりやすく解説します。
GitHubとは?
GitHubは、Gitのリポジトリをホスティングするウェブサービスです。主な特徴は:
-
コード管理
- ソースコードの保存
- バージョン管理
- 変更履歴の追跡
-
コラボレーション
- チーム開発の促進
- コードレビュー
- イシュー管理
-
オープンソース
- プロジェクトの公開
- コミュニティとの協力
- 知識の共有
アカウントの作成とセットアップ
1. アカウント作成
- GitHubにアクセス
- 「Sign up」をクリック
- 必要情報を入力
- ユーザー名
- メールアドレス
- パスワード
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. 新規リポジトリの作成
- GitHubダッシュボードの「New」ボタンをクリック
- 基本情報の入力
- リポジトリ名
- 説明
- 公開/非公開の選択
- 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の基本的な流れ
-
ブランチの作成
git checkout -b feature/new-feature
-
変更の実装
# コードの変更 git add . git commit -m "Add new feature" git push origin feature/new-feature
-
PRの作成
- GitHubで「New Pull Request」をクリック
- ベースブランチと比較ブランチを選択
- タイトルと説明を記入
2. 良いPRの書き方
# Pull Request Template
## 変更内容
- 機能Aの追加
- 機能Bの修正
- テストの追加
## 関連イシュー
- #123
- #456
## テスト結果
- [ ] ユニットテスト
- [ ] 統合テスト
- [ ] E2Eテスト
## スクリーンショット
(必要な場合)
## 補足情報
実装上の注意点や依存関係の変更など
3. レビューのプロセス
-
レビュアーの指定
- 適切なチームメンバーを選択
- 必要な承認数を設定
-
レビューコメントへの対応
# レビュー指摘の修正 git add . git commit -m "Fix review comments" git push origin feature/new-feature
-
マージの実行
- すべての承認を確認
- 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. セキュリティ設定
-
二要素認証の有効化
- Settings > Security > Two-factor authentication
-
アクセストークンの管理
# トークンの使用例 git clone https://[token]@github.com/username/repository.git
-
依存関係の脆弱性チェック
- Dependabot alertsの有効化
- 自動更新の設定
2. コードの保護
# .github/CODEOWNERS
# 特定のファイルやディレクトリの変更に必要なレビュアーを指定
*.js @javascript-team
*.py @python-team
/docs/ @docs-team
トラブルシューティング
1. よくある問題と解決方法
-
プッシュが拒否された
# リモートの変更を取得 git fetch origin git rebase origin/main # 競合の解決後 git push origin feature/new-feature
-
マージ競合の解決
# 競合したファイルの確認 git status # 競合の解決後 git add . git commit -m "Resolve merge conflicts"
-
コミットの取り消し
# 直前のコミットを取り消し git reset --soft HEAD^ # 特定のコミットまで戻る git reset --hard <commit-hash>
まとめ
GitHubの基本的な使い方について解説しました:
-
基本操作
- リポジトリの作成と管理
- ブランチの操作
- プルリクエストの作成
-
チーム開発
- イシュー管理
- コードレビュー
- プロジェクト管理
-
セキュリティ
- アクセス管理
- 脆弱性対策
- コードの保護
GitHubを効果的に活用することで、より効率的なソフトウェア開発が可能になります。
次のステップ
GitHubの基本を理解したら、以下の記事も参考にしてください: