これは何か
「足跡Git術」は、私が命名した作業の透明性を高めながらコミットの心理的ハードルを下げるGit運用手法です。
まるで散歩道に足跡を残すように、作業中の状態をこまめにコミットし、後から必要に応じて履歴を整理します。
基本的な考え方
- すぐ残す
- 作業したらとにかく早く足跡(コミット)を残す
- 後で整える
- 必要なら後で踏み直す(履歴整理する)
- 透明性重視
- チームに作業状況を常に見える化する
基本ルール
1. 作業したらすぐコミット&プッシュ
- 作業中の状態をチームに可視化するため
- 万が一ローカル環境が壊れても、リモートにバックアップがある
2. コミットが乱雑なら--amendやrebaseで踏み直す
- コミットログが「テスト」「修正」ばかりにならないよう整理
- プッシュ済みでも、同ブランチに他人がいなければ
--force-with-leaseで安全に上書きできる
実際の流れ(お散歩コース編)
1. 変更したらすぐ足跡を残す
※あくまでシステムが動く単位でコミットすることが大前提
walking_course.txt
- 川沿い → パン屋
+ 川沿い → 公園 → パン屋
git add walking_course.txt
git commit -m "Add: お散歩コースに公園を追加"
git push origin feature/add-walking-course
2. 後から踏み直す(コミット整理)
walking_course.txt
- 川沿い → 公園 → パン屋
+ 川沿い → 大きな公園 → パン屋
git commit --amend -m "Add: お散歩コースに大きな公園を追加"
git push origin feature/add-walking-course --force-with-lease
メリット
- 作業の透明性
- 作業がチームに常に見える
- コンフリクトの可能性に早めに気づける
- 安全性
- 万が一の環境トラブルでも復旧しやすい
- 心理的ハードル軽減
- コミット履歴は後で綺麗に整形できるので、完璧でなくても気軽にコミットできる
- 綺麗なコミット履歴
- 最終的に整理された見やすいログになる
コミットログの改善例
足跡Git術を使わない場合
Add: お散歩コースに公園を追加
Update: お散歩コース内の公園を大きな公園に変更
足跡Git術で整理後(綺麗な履歴)
Add: お散歩コースに大きな公園を追加
このように、作業中は気軽にコミットしながらも、最終的には意味のある単位でコミットを整理できるため、レビューしやすく、後から振り返りやすい履歴になります。
注意点
- 作業環境の前提
- 1つの作業ブランチを同時に複数人が触らないような環境で実施すること
- 必要なコミット履歴の判断
- その途中の状態にも意味があるのであればあえてコミットを複数に分けたほうが良い場合もある
- 安全なforce push
- ローカルだけでコミット整理してからpushする場合も、
--force-with-leaseを使うと事故を防げる-
--forceは、リモートの履歴を無条件で上書きするため、他人の変更を消してしまう危険がある -
--force-with-leaseは、リモートがローカルの想定と一致している場合のみ上書きするため安全性が高い - 万が一他人がプッシュていた場合の変更の上書きを防ぎ、事故を防止できる
- イメージ
- 自分が最後に見た状態と同じなら上書きするが、違っていたらやめる
-
- ローカルだけでコミット整理してからpushする場合も、
- CIリソースへの配慮
- CIや自動テストの設定がある場合、ドラフトPRでもジョブが動く設定だと、こまめなプッシュで実行時間が倍増し、GitHub ActionsやCIサービスの時間制限・プラン制限に引っかかる可能性があるので注意
まとめ
最近この「足跡Git術」を実際にやってみており、作業の透明性が上がり、1日の作業の区切りもつけやすくなってとても良かった。
特に「ちょっと手を加えたけどまだPRにするには早い」タイミングでも、安心してリモートに状態を残せるのが良かった。
足跡Git術の心得
- すぐ残す
- とにかくこまめにコミット&プッシュ
- 後で整える
- 必要に応じて履歴をきれいに踏み直す
- 安全第一
- 他人が同じブランチにいないときだけ
force push
- 他人が同じブランチにいないときだけ
- CIの負荷に注意
- プッシュが多いときはジョブ実行設定も見直す
これを習慣にすると、チームでの自分の作業の透明性・安心感が上がり、個人としても仕事を区切りやすくなる。