🍇

Google ColabとGitHubを連携!機械学習プロジェクトの効率的なバージョン管理

に公開

はじめに

機械学習プロジェクトを進める際、「コードの変更履歴を残したい」と思ったことはありませんか?

Google Colabは便利ですが、そのままではGitとの連携が難しく、せっかくの作業がローカルに残ってしまいます。

この記事では、Google ColabとGitHubを連携し、日々の機械学習作業を効率的にバージョン管理する方法を紹介します。

✨ この記事で得られること

  • Google ColabとGitHubの簡単な連携方法
  • 機械学習プロジェクトに最適化されたディレクトリ構成
  • ワンクリックでコミット・プッシュできる環境

🎯 想定読者

  • Google Colabで機械学習を学習している方
  • Gitの基本は知っているが、Colabとの連携で困っている方
  • 日々の学習進捗をGitHubで管理したい方

事前準備

1. GitHub Personal Access Tokenの取得

まず、GitHubでPersonal Access Tokenを取得します。

  1. GitHub.com にログイン
  2. 右上のプロフィール画像 → Settings
  3. 左メニューの Developer settings
  4. Personal access tokensTokens (classic)
  5. Generate new tokenGenerate new token (classic)

Token設定

Note: "Colab ML Project Access"
Expiration: 30 days
Scopes: 
  ✅ repo (リポジトリへのフルアクセス)
  ✅ workflow (GitHub Actions)

2. GitHubリポジトリの作成

  1. GitHubで新しいリポジトリを作成
  2. Repository name: ml-project(任意)
  3. Add a README file にチェック
  4. .gitignore: Python を選択

実装手順

Step 1: 初期セットアップ用ノートブック

まず、プロジェクトの基盤を作るための git_setup.ipynb を作成します。

# ========================================
# 🚀 Google Colab × GitHub 初期セットアップ
# ========================================

import os
import getpass
from google.colab import drive

print("=== Google Colab × GitHub セットアップ ===")

# 1. Google Drive マウント
print("1. Google Drive マウント中...")
drive.mount('/content/drive')

# 2. プロジェクトディレクトリ作成
project_name = "ml-project"  # ← プロジェクト名を変更
project_path = f"/content/drive/MyDrive/{project_name}"

os.makedirs(project_path, exist_ok=True)
os.chdir(project_path)
print(f"📁 プロジェクトディレクトリ: {project_path}")

# 3. プロジェクト構造作成
directories = [
    "notebooks",     # Jupyter ノートブック
    "src",          # Pythonスクリプト
    "data",         # データファイル
    "models",       # 学習済みモデル
    "reports",      # 分析レポート
]

for dir_name in directories:
    os.makedirs(dir_name, exist_ok=True)
    print(f"📁 作成: {dir_name}/")

# 4. Git設定
print("\n=== Git設定 ===")
!git config --global user.name "Your Name"      # ← あなたの名前
!git config --global user.email "your@email.com"  # ← あなたのメール

# 5. GitHub認証設定
print("\n=== GitHub認証設定 ===")
print("GitHub Personal Access Token を入力してください")
token = getpass.getpass('GitHub Token: ')

# 6. Gitリポジトリ初期化
if not os.path.exists('.git'):
    !git init
    !git remote add origin https://github.com/your-username/your-repo.git  # ← あなたのリポジトリURL

# 認証付きURLでリモート設定
username = "your-username"  # ← GitHubユーザー名
repo_name = "your-repo"     # ← リポジトリ名
auth_url = f"https://{token}@github.com/{username}/{repo_name}.git"
!git remote set-url origin {auth_url}

# セキュリティのためToken変数を削除
del token

# 7. README.md作成
readme_content = f"""# {project_name}

## 概要
機械学習プロジェクトの説明

## ディレクトリ構成

├── notebooks/   # 分析ノートブック
├── src/        # Pythonスクリプト
├── data/       # データファイル
├── models/     # 学習済みモデル
└── reports/    # 分析レポート


## 実行環境
- Google Colab
- Python 3.x
"""

with open("README.md", "w", encoding="utf-8") as f:
    f.write(readme_content)

# 8. .gitignore作成
gitignore_content = """# Python
__pycache__/
*.py[cod]
*.so

# Jupyter Notebook
.ipynb_checkpoints

# Data files
*.csv
*.xlsx

# Models
*.pkl
*.h5

# Environment
.env
"""

with open(".gitignore", "w", encoding="utf-8") as f:
    f.write(gitignore_content)

# 9. 初回コミット
print("\n=== 初回コミット ===")
!git add .
!git commit -m "Initial commit: プロジェクト初期設定"
!git push -u origin main

print("\n✅ セットアップ完了!")

Step 2: 日常コミット用ノートブック

次に、日々の作業をコミットするための commit.ipynb を作成します。

# ========================================
# 💾 日常コミット用(これだけ実行すればOK)
# ========================================

# === 設定(ここだけ変更) ===
MESSAGE = "今日の作業内容をここに書く"  # ← ここだけ変更してください

# === 実行(変更不要) ===
import os
from google.colab import drive

# Google Drive マウント
drive.mount('/content/drive')

# プロジェクトフォルダに移動
os.chdir('/content/drive/MyDrive/ml-project')  # ← プロジェクト名に合わせて変更

# Git設定(毎回実行で安全)
!git config --global user.name "Your Name"
!git config --global user.email "your@email.com"

# コミット実行
print(f"💾 コミット中: {MESSAGE}")
!git add .
!git commit -m "{MESSAGE}"
!git push origin main
print("✅ 完了!")

使用方法

日常のワークフロー

  1. 分析ノートブックで機械学習作業
  2. 作業完了後、commit.ipynbを開く
  3. MESSAGE = "今日の作業内容" を変更
  4. セルを実行

これで作業内容がGitHubに記録されます!

トラブルシューティング

よくある問題と解決法

1. "Authentication failed"エラー

原因: Personal Access Tokenの問題
解決法:

  • Tokenの有効期限確認
  • 権限(repo)が付与されているか確認
  • 新しいTokenで再設定

2. "fatal: not a git repository"エラー

原因: 正しいディレクトリにいない
解決法:

# 現在位置確認
!pwd

# 正しいディレクトリに移動
os.chdir('/content/drive/MyDrive/ml-project')

3. "working tree clean"メッセージ

原因: 変更がない(正常)
解決法: 何かファイルを変更してからコミット

4. マージ競合エラー

原因: ローカルとリモートの履歴が異なる
解決法:

!git pull origin main --allow-unrelated-histories

まとめ

この方法を使うことで:

  • ワンクリックコミットで効率的
  • 過去のコードも簡単に確認可能
  • 機械学習プロジェクトに最適化

機械学習の学習を続けながら、自然にGitの習慣も身につけることができます。
ぜひ試してみて、機械学習プロジェクトの管理を効率化してください!

参考リンク


この記事が役に立ったら、⭐をお願いします!
質問や改善点があれば、コメントでお知らせください。

Discussion