🍇
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を取得します。
- GitHub.com にログイン
- 右上のプロフィール画像 → Settings
- 左メニューの Developer settings
- Personal access tokens → Tokens (classic)
- Generate new token → Generate new token (classic)
Token設定
Note: "Colab ML Project Access"
Expiration: 30 days
Scopes:
✅ repo (リポジトリへのフルアクセス)
✅ workflow (GitHub Actions)
2. GitHubリポジトリの作成
- GitHubで新しいリポジトリを作成
- Repository name:
ml-project
(任意) - Add a README file にチェック
- .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("✅ 完了!")
使用方法
日常のワークフロー
- 分析ノートブックで機械学習作業
- 作業完了後、commit.ipynbを開く
-
MESSAGE = "今日の作業内容"
を変更 - セルを実行
これで作業内容が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