Gitの小ネタおれおれAdvent Calendar 2022 – 21 日目
長いプロジェクトだと Git の履歴が長く大きくなるため clone にも時間がかかります。
コミット件数や日時で制限ができます。
--depth 123
で件数制限
ビルド用なら --depth 1
でよさそう。
$ git clone --depth 1 [email protected]:ginpei/example.git
git log
すると直近 1 件のみが出てきます。それ以前のものは参照できません。
やっぱりもっと欲しい!
クローン時に取得しなかったものも git fetch
で取得できます。
$ git fetch --depth=100
--depth
が必要。ないと既に持っている分より前のものは見に行ってくれませんでした。
--shallow-since="last year"
で時間制限
件数ではなく時間で制限することもできます。
$ git clone --shallow-since="last year" [email protected]:ginpei/example.git
日付の書式は正体不明だけど “2022-12-24” とか “two months ago” とか “yesterday” とか割と色々受け付けてくれるそう。
やっぱりもっと欲しい!
--depth
と同じく git fetch
にオプションを付けてもっと取ってくることができます。
$ git fetch --shallow-since="5 years ago"
おしまい
ほとんどの場面では --depth=1
or なしの 2 択って感じでしょうか。