GitHub

GitHubについてはじめに学んだこと

git githubgit

✅ frontmatterを追加しました!

GitHub

GitHubとの連携とプラットフォーム特有の機能について

GitHubとは

GitHubは世界最大のGitリポジトリホスティングサービスで、コードの管理、コラボレーション、プロジェクト管理を統合的に提供するプラットフォームです。

アカウント設定

初期アカウント設定

  1. GitHubアカウントの作成
  2. プロフィール設定
  3. SSH鍵の登録(推奨)
  4. 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]]