GitHub
GitHubについてはじめに学んだこと
git githubgit
✅ frontmatterを追加しました!
GitHub
GitHubとの連携とプラットフォーム特有の機能について
GitHubとは
GitHubは世界最大のGitリポジトリホスティングサービスで、コードの管理、コラボレーション、プロジェクト管理を統合的に提供するプラットフォームです。
アカウント設定
初期アカウント設定
- GitHubアカウントの作成
- プロフィール設定
- SSH鍵の登録(推奨)
- 2要素認証の有効化
SSH鍵の登録手順
# 1. SSH鍵の生成(ローカル)
ssh-keygen -t ed25519 -C "your-email@example.com"
# 2. 公開鍵をクリップボードにコピー
# Windows
clip < ~/.ssh/id_ed25519.pub
# macOS
pbcopy < ~/.ssh/id_ed25519.pub
# Linux
cat ~/.ssh/id_ed25519.pub
# 3. GitHubで設定
# Settings > SSH and GPG keys > New SSH key で公開鍵を貼り付け
リポジトリ管理
リポジトリの作成
# GitHubでリポジトリ作成後、ローカルと連携
git remote add origin git@github.com:username/repository.git
git branch -M main
git push -u origin main
リポジトリのクローン
# HTTPS
git clone https://github.com/username/repository.git
# SSH(推奨)
git clone git@github.com:username/repository.git
フォークとプルリクエスト
# 1. GitHubでフォーク
# 2. フォークしたリポジトリをクローン
git clone git@github.com:yourusername/original-repo.git
# 3. 上流リポジトリを追加
git remote add upstream git@github.com:originalowner/original-repo.git
# 4. 新しいブランチで作業
git checkout -b feature-branch
# 5. 変更をコミット・プッシュ
git push origin feature-branch
# 6. GitHubでプルリクエストを作成
ブランチ保護とワークフロー
ブランチ保護ルール
GitHubで設定できる保護機能:
- 直接プッシュの禁止
- プルリクエストレビューの必須化
- ステータスチェックの必須化
- 強制プッシュの禁止
GitHub Flow
# 1. メインブランチから新機能ブランチを作成
git checkout main
git pull origin main
git checkout -b new-feature
# 2. 機能開発とコミット
git add .
git commit -m "feat: 新機能を追加"
# 3. リモートにプッシュ
git push origin new-feature
# 4. プルリクエスト作成
# 5. レビュー・承認
# 6. マージ
# 7. ローカルのブランチ削除
git checkout main
git pull origin main
git branch -d new-feature
Issues と Project管理
Issuesの活用
# Issue テンプレート例
## 概要
機能の概要を記載
## 詳細
- [ ] タスク1
- [ ] タスク2
- [ ] タスク3
## 受け入れ条件
- 条件1
- 条件2
## 関連
- Related to #123
- Closes #456
コミットメッセージでIssueを参照
git commit -m "fix: ログイン機能を修正 (fixes #123)"
git commit -m "feat: ユーザー管理機能を追加 (refs #456)"
# キーワード
# closes, fixes, resolves: Issueをクローズ
# refs, references, see: Issueを参照
GitHub Actions(CI/CD)
基本的なワークフロー設定
# .github/workflows/main.yml
name: CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '18'
- name: Install dependencies
run: npm ci
- name: Run tests
run: npm test
リリース管理
タグとリリース
# タグの作成
git tag -a v1.0.0 -m "Version 1.0.0"
git push origin v1.0.0
# GitHubでリリースページを作成
# Releases > Create a new release
セマンティックバージョニング
v1.0.0: メジャーバージョン(破壊的変更)v1.1.0: マイナーバージョン(新機能追加)v1.1.1: パッチバージョン(バグ修正)
セキュリティ機能
Dependabot
依存関係の脆弱性を自動検出・修正
Secret管理
# 環境変数をGitHub Secretsで管理
# Settings > Secrets and variables > Actions
# ワークフローでの使用例
env:
API_KEY: ${{ secrets.API_KEY }}
セキュリティアドバイザリ
プライベートな脆弱性報告とCVE発行
GitHub CLI
インストールと認証
# インストール(Windows)
winget install GitHub.cli
# 認証
gh auth login
よく使うコマンド
# リポジトリ作成
gh repo create my-project --public
# プルリクエスト作成
gh pr create --title "新機能追加" --body "詳細説明"
# Issue作成
gh issue create --title "バグ報告" --body "バグの詳細"
# プルリクエストのチェックアウト
gh pr checkout 123
便利な機能
GitHub Pages
# Settings > Pages で有効化
# 静的サイトを無料でホスティング
Code Spaces
ブラウザ上でVS Codeを使用してコーディング
GitHub Mobile
スマートフォンアプリでリポジトリ管理
ベストプラクティス
README.md の作成
# プロジェクト名
## 概要
プロジェクトの簡潔な説明
## インストール
```bash
npm install
使用方法
基本的な使い方の説明
貢献
コントリビューション ガイドライン
ライセンス
MIT License
### .gitignore の設定
```gitignore
# Node.js
node_modules/
npm-debug.log*
# Python
__pycache__/
*.pyc
# IDE
.vscode/
.idea/
# OS
.DS_Store
Thumbs.db
トラブルシューティング
認証エラー
# SSH接続テスト
ssh -T git@github.com
# HTTPS認証(Personal Access Token使用)
git remote set-url origin https://username:token@github.com/username/repo.git
プルリクエストのコンフリクト
# 最新のmainブランチをマージ
git checkout feature-branch
git merge main
# コンフリクト解決後
git add .
git commit
git push origin feature-branch
関連項目
- [[基本コマンド]] - Git操作の基礎
- [[SSH]] - セキュアな認証設定
- [[初期設定]] - GitHub連携のための設定
- [[ワークフロー]] - Git Flowとその他のワークフロー
参考リンク
作成日: 2025-06-19
関連ダイアリー: [[2025-06-19]]