を受けて
を行った際にも100M超えの問題が起こっていたことを思い出し、巨大なファイルを消すことだけ考える。
前提条件
- 大きなファイルは現在分割する等の対応がされており、現状では必要としていない
- 問題のファイルを含む過去の履歴は消えても問題がない旨を確認済み
目的
リポジトリの中にあった巨大なファイルを履歴を含めて削除する
結論:新しい履歴として再出発
履歴の消去に合意が取れているので削除路線で進めました。削除したい履歴はリリース前のものだったので容易に合意取れた点は幸運だった
実施手順
例によって、多くの環境、多くのスタッフがいる状態なのですべての作業を止められる時間は多くは取れない。
1. 再出発の起点を作る
git checkout --orphan 再出発の起点
ポイントは起点をどこにするか。直近のリリースを起点にするのが無難。デフォルトのブランチもこのタイミングで変えています。
2. 再出発点の周知
新しく作ったブランチを全体に周知し、checkoutしなおしてもらう。マージされていないブランチについては、各自手作業で移してもらった。
3. デプロイ手順の修正
本番/ステージングのデプロイジョブを変更。移管と異なりブランチを変えるだけなので簡単。また開発用の環境はブランチを指定できるように作られていたので作業無し。楽ちん
4. 経過観察
1週間ほど様子見します。古いブランチから生えた作業ブランチを新ブランチへ移す作業のサポートなどもこの期間に。
5. 古い履歴を持つブランチを一掃
ココまで来ていれば後は消すだけ。
感想
手間はかかったが大過なく切り替えできたので手順としては悪くないのかとは思う。