
「分析やノートブックは作れるけど、壊れない運用の“型”がない…」
「final_v3_fix2_LAST.xlsx地獄から抜け出して、レビューと自動化まで一気通貫で回したい!」
この記事では、未経験〜初学者が週10時間×1〜2週で、Gitの基本 → GitHub Flow → PR/レビュー → Issue運用 → タグ/リリース → GitHub Actions(最小CI)までを、“現場でそのまま使える”テンプレとチェックリストで網羅します。Notebook運用の地雷回避(出力クリア/差分)や.gitignore雛形、PR/IssueテンプレもコピペOKで配布します。
この記事で身に付く力
- 壊れないGit運用の型(main保護+PR必須+小さなコミット)
- 再現できる分析プロジェクト構成(雛形&.gitignore)
- レビューとIssueの回し方(テンプレ配布)
- タグ/リリースと最小CI(GitHub Actions雛形)
はじめに:現場で起きる“Git不在”の悲劇
私(ふみと)が最初に分析案件を回したとき、ファイル名はfinal_v3_fix2_LAST.xlsxだらけ。Notebookは出力が巨大で差分が読めず、ZIP共有で履歴も消滅。本番ブランチに直コミットされて壊れた状態を配布…という惨事もありました。解決策はシンプルで、GitHub Flow(main保護+PR運用)をベースに、小さなコミット×レビューと自動チェックを回すことです。
セットアップ:最初に一度だけの設定
# ユーザー情報
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
# デフォルトブランチ名
git config --global init.defaultBranch main
# 改行コード(Windowsの混乱を減らす)
git config --global core.autocrlf input
# 差分を見やすく
git config --global color.ui auto
プロジェクト雛形と .gitignore(コピペOK)
project/
├─ data/
│ ├─ raw/ # 受領データ(非追跡にすることが多い)
│ └─ warehouse/ # SQLiteなど(非追跡)
├─ notebooks/
├─ src/
├─ reports/ # 図/Excel/PDF(必要に応じ非追跡)
├─ tests/
├─ .gitignore
├─ requirements.txt
└─ README.md
# Python
__pycache__/
*.pyc
.venv/
.env
# Data / Outputs
/data/*
!/data/README.md
/reports/*
!/reports/README.md
*.sqlite
# Jupyter
.ipynb_checkpoints/
# OS/editor
.DS_Store
Thumbs.db
原則:生データ/DB/大きな成果物は追跡しません(入手手順はREADMEに)。空フォルダはREADME.md
や.gitkeep
で保持します。
最初のコミットとメッセージ規約
cd project
git init
echo "# プロジェクト名" > README.md
git add .
git commit -m "feat: 初期雛形を追加 (構成/ignore/README)"
コミットメッセージの型(Conventional Commits簡易版)
feat:
機能追加、fix:
バグ修正、docs:
ドキュメント、refactor:
仕様不変の整理、chore:
付帯作業- 1行目は50文字程度で要約。必要なら空行→詳細/背景
GitHub接続とmain保護(PR必須化)
# GitHubで空のリポジトリ(project名)を作成後に接続
git remote add origin https://github.com/yourname/project.git
git branch -M main
git push -u origin main
Settings → Branchesでmain
を保護:直接push禁止/PR必須/レビュー1名以上/ステータスチェック必須。
GitHub Flow:小さく作って小さくレビュー
基本原則は5つ:①mainはいつでも配布可能、②作業はトピックブランチ、③少し進んだらドラフトPR、④レビュー→CI通過→マージ、⑤配布時にタグ。
git switch -c feat/monthly-report
# 変更→テスト→コミット
git add -p
git commit -m "feat: 月次集計のSQLとNotebookを追加"
git push -u origin feat/monthly-report # GitHubでPR作成
日常で強いコマンド(小技集)
git status
git diff
git add -p
git commit --amend # 未push時のみ
git stash && git switch main # 急用で退避
git log --oneline --graph --decorate --all
マージとリベースの使い分け
基本はマージ(PRでMerge commit or Squash)。リベースはローカル整理用途(自分のブランチをmainへ追随)。
git switch feat/monthly-report
git fetch origin
git rebase origin/main
# コンフリクト解消→テスト
git push --force-with-lease
注意:共有済みブランチへのrebase/force-pushは厳禁。
Notebookの“事故らない”運用(現場メモつき)
ポイントは3つ。①出力をクリアしてコミット(サイズ削減&差分可読)、②図はファイル保存(reports/
)でNotebookはパスだけ、③前処理は関数化してsrc/
へ(Notebookは実験/説明に専念)。差分可視化にはnbdime
やGitHubのNotebook Diffが便利です。
ふみとの現場メモ
10年で100件以上回した結論:「出力クリア」だけでレビュー効率が段違いでした。画像出力をNotebook外に逃がすと、バージョンの食い違い事故も激減します。
# .git/hooks/pre-commit(chmod +xで実行権限付与)
#!/usr/bin/env bash
find . -name "*.ipynb" -print0 | xargs -0 -I {} jupyter nbconvert --ClearOutputPreprocessor.enabled=True --inplace {}
[内部リンク:Jupyter Notebookの基本] / [内部リンク:可視化入門]
PR(Pull Request)とレビューの型(テンプレ配布)
PRは小さく/短く(目安:〜200行)。依頼前にセルフレビューで誤字・不要ファイルを除去。目的→差分→動作確認の3点セットを明記します。
## 目的
- 例:月次集計と図を追加し、Excel出力まで自動化
## 変更点(Before/After)
* SQL: WITH monthly を追加
* report.py: ExcelWriter で Summary タブ出力
## 動作確認
* `python src/report.py` で report.xlsx が生成される
## 影響範囲
* なし(新規追加のみ)
Issue運用(軽量スクラム)
Issue=タスクの単位。ラベル(bug
/feat
/docs
/…)、マイルストーン、Projects(ToDo → In progress → Review → Done
)で流します。
### 概要
### ゴール(受け入れ条件)
### 参考
タグとリリース(配布の節目を明確に)
git switch main && git pull
git tag -a v0.1.0 -m "初回リリース: 月次集計+Excel出力"
git push origin v0.1.0
セマンティックバージョニング(最短メモ)
- MAJOR:互換性破壊
- MINOR:後方互換の機能追加
- PATCH:後方互換の修正
最小のCI(GitHub Actions)で“壊れない”を担保
name: ci
on:
pull_request:
push:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with: { python-version: '3.11' }
- run: pip install -r requirements.txt || true
- run: python -m pip install pytest
- run: pytest -q || echo "tests not found; skipping"
最初は落ちない仕組みから。のちにflake8/black/ruff
やNotebook出力クリア検査を追加すればOK。
[内部リンク:単体テストpytest入門(予定)]
セキュリティと秘匿情報の扱い
.envやAPIキーはコミットしない(.gitignore
)。GitHub ActionsではSecretsに保存して参照。もし誤ってコミットしたら、履歴から除去(git filter-repo
等)&即時キー再発行が基本です。
読者タイプ別:最短導入プラン(3タイプ)
- 社会人(転職):GitHub Flow+PRテンプレ+CIを最短導入。READMEに再現手順を明記し、10分LTに“運用”を一枚追加。
>>【保存版】データ職のポートフォリオ完全ガイド|再現性・評価・LTまで - 副業(稼ぎたい):Excel納品PJにタグ/リリースを導入し、版管理と修正履歴を明瞭化。
>>【保存版】データレポート納品の型:要件定義→ETL→検証→可視化→Excel/PDF→引き継ぎまで、失注しないワークフロー完全版 - 主婦/夫(在宅):小さいPRを毎日。Notebook出力クリアと.gitignoreから着手。
>>【保存版】在宅×Python:子育てと両立する“1日1時間学習術”忙しくても伸びる最短メニューと運用の型
ミニプロジェクト課題(提出推奨)
「SQLite×月次レポート」リポジトリを作り、GitHub Flowで開発→PRレビュー→タグv0.1.0→Actionsでpytestまで通す。
- [ ]
.gitignore
でデータ/成果物を除外 - [ ]
main
は保護(PR必須/レビュー1名/ステータスチェック) - [ ] PRテンプレ/Issueテンプレを配置
- [ ] Notebookは出力クリアでコミット
- [ ] v0.1.0にタグ→GitHub Release作成
- [ ] Actionsの最小CIが通る
付録A:よく使うコマンド早見表
# ブランチ
git switch -c feat/foo # 作成+切替
git switch main # 切替
# 差分/取り消し
git diff # 差分
git restore --staged file # ステージ解除
git restore file # 変更取り消し
# 追跡をやめる(ファイルは残す)
git rm --cached path/to/file
付録B:READMEテンプレ(最小)
# プロジェクト名
目的:誰の、どの意思決定を支援するか(1文)
再現手順:
1) python -m venv .venv && source .venv/bin/activate
2) pip install -r requirements.txt
3) python src/report.py # Excel/図を出力
データ:data/raw/ 以下に配置(入手方法を記載)
付録C:トラブルシュートQ&A
Q. 誤って巨大ファイルをコミット → git rm --cached
で追跡解除→.gitignore
へ→新規クローン推奨。
Q. コンフリクトが怖い → 小さいPRとこまめなpull、git add -p
で意味の塊を丁寧に。
Q. Notebook差分が読めない → 出力クリア+図はファイル保存で可読性UP。
この記事から次に読むべきもの(内部リンク)
-
-
【保存版】Jupyter Notebookの基本:環境構築・使い方・再現性・“読みやすいノート”設計まで完全ガイド
Jupyter Notebookは学習・検証・共有に最強の道具ですが、設計を間違えると再現できない・読みにくい・遅いノートになってしまいます。本記事は、未経験〜初学者が週10時間×1〜2週で、環境構築 ...
-
-
【保存版】SQLite×Pythonで作る“ローカルDWH”——ETL・集計・レポート自動化の最短手順
ローカルでゼロ構築、ファイル1つで完結、サーバ不要。本記事はSQLite×Pythonで“毎日回る”ETL・集計・レポート自動化を最短で作るための完全ガイドです。データ設計→DB作成→ETL(取り込み ...
-
-
【保存版】データレポート納品の型:要件定義→ETL→検証→可視化→Excel/PDF→引き継ぎまで、失注しないワークフロー完全版
“いい分析”より“伝わる納品”。副業や実務で評価されるのは、意思決定に効く1枚と再現できるパッケージを期限通り出せること。 本記事は、未経験〜初学者が週10時間×2〜3週で、要件定義→データ受領→ET ...
-
-
【保存版】データ職のポートフォリオ完全ガイド|再現性・評価・LTまで
ポートフォリオって「作ったものの置き場」でしょ? いいえ。採用側が見たいのは「意思決定に効いた証拠」と「再現性」です。 本ガイドは、未経験〜初学者が週10時間×4〜6週で、テーマ選定→要件定義→データ ...
-
-
【コピペOK】pytestで“壊れないPython”を作る12ステップ
「昨日は動いてたのに、今日は壊れた…」 データ分析やETL、機械学習のコードで多発するこの悲劇。実は“テスト不在”が9割です。 本記事は、pytestで“壊れないPython”を作るための実務ガイド。 ...
伴走のご提案(任意)
Gitを押さえると、在宅×副業でも毎月回るレポートやML実験が安全に進みます。短期でブランチ運用→PR→CIまで整えるなら、質問対応とレビューのあるスクールが近道。
TechAcademy データサイエンスコース(受講料:174,600円~ ※更に割引あり)

株式会社キカガク AI人材長期育成コース(受講料:237,600円~)

最近のコメント