バージョン管理とコラボレーションのためのGitの使い方
Gitは、コードの変更履歴を管理するためのバージョン管理システムです。Pythonや機械学習プロジェクトでは、コードの修正履歴を残したり、過去の状態に戻したり、複数人で共同作業を行ったりするために利用されます。
Gitを使うことで、どのファイルをいつ、どのように変更したかを記録できます。また、GitHubなどのリモートリポジトリと組み合わせることで、チームでのコラボレーションも効率的に行えます。
Gitの使い方を図で理解する

Gitとは
Gitは、プロジェクト内のファイルの変更履歴を記録し、必要に応じて過去の状態に戻せるツールです。
- コードの変更履歴を管理できる
- 過去のバージョンに戻せる
- 複数人で同じプロジェクトを編集できる
- ブランチを使って作業を分けられる
Gitのインストール
Gitをインストールしていない場合は、Git公式サイトからインストールします。
インストール後、次のコマンドでGitが使えるか確認します。
git --version
Gitの基本操作
Gitでは、変更したファイルをステージングし、その後コミットとして履歴に記録します。
リポジトリを作成する
git init
このコマンドを実行すると、現在のフォルダがGitで管理されるようになります。
変更状況を確認する
git status
git statusを使うと、どのファイルが変更されたか、どのファイルがステージングされているかを確認できます。
ファイルをステージングする
git add ファイル名
すべての変更をステージングする場合は、次のように入力します。
git add .
コミットする
git commit -m "変更内容の説明"
コミットメッセージには、何を変更したのかを簡潔に書きます。
Gitの基本的な流れ
- ファイルを編集する
git statusで変更を確認するgit addで変更をステージングするgit commitで変更履歴として保存する- 必要に応じてリモートリポジトリへ送信する
リモートリポジトリとの連携
GitHubやGitLabなどのリモートリポジトリを使うと、ローカル環境の変更をオンライン上に保存し、他のメンバーと共有できます。
リモートリポジトリを登録する
git remote add origin リポジトリURL
リモートに送信する
git push origin main
このコマンドで、ローカルの変更内容をリモートリポジトリに反映できます。
リモートの変更を取得する
git pull origin main
他のメンバーが行った変更を自分の環境に取り込む場合に使用します。
ブランチを使った開発
ブランチは、作業を分けるための仕組みです。新機能の追加や修正作業をメインのコードから分離して進められます。
新しいブランチを作成する
git checkout -b 新しいブランチ名
メインブランチに戻る
git checkout main
ブランチを統合する
git merge ブランチ名
ブランチを使うことで、作業中の変更がメインのコードに直接影響することを防げます。
GitHubを使ったコラボレーション
GitHubでは、プルリクエストを使ってチーム開発を進めることができます。
プルリクエストは、自分のブランチで行った変更をメインブランチに取り込んでもらうための依頼です。レビューやコメントを通じて、コードの品質を確認しながら開発できます。
プルリクエストの基本的な流れ
- 新しいブランチを作成する
- 作業を行い、変更をコミットする
- ブランチをGitHubにプッシュする
- GitHub上でプルリクエストを作成する
- レビューを受ける
- 承認後、メインブランチにマージする
競合が発生した場合
複数人が同じファイルの同じ箇所を変更した場合、競合が発生することがあります。
競合が発生した場合は、どの変更を残すかを手動で確認し、修正したうえで再度コミットします。
git status
git add .
git commit -m "競合を解消"
Gitでよく使うコマンド
| コマンド | 内容 |
|---|---|
git init |
リポジトリを作成する |
git status |
変更状況を確認する |
git add |
変更をステージングする |
git commit |
変更を履歴として保存する |
git push |
リモートリポジトリへ送信する |
git pull |
リモートリポジトリの変更を取得する |
git checkout -b |
新しいブランチを作成して切り替える |
git merge |
ブランチを統合する |
機械学習プロジェクトでGitを使う際の注意点
- 大容量のデータセットをそのままGitで管理しない
- モデルファイルや学習済み重みは必要に応じてGit LFSなどを使う
.gitignoreで不要なファイルを管理対象から除外する- 実験結果やパラメータは分かりやすく記録する
- コミットメッセージは後から見ても分かる内容にする
.gitignoreの活用
.gitignoreを使うと、Gitで管理しないファイルを指定できます。
__pycache__/
.env
.ipynb_checkpoints/
*.log
data/
models/
一時ファイル、環境変数ファイル、大容量データなどは、必要に応じてGit管理から除外します。
Gitを使うメリット
- 変更履歴を残せる
- 過去の状態に戻せる
- 複数人で作業しやすい
- 作業内容をブランチで分けられる
- GitHubと連携してレビューや共有ができる