Gitで巨大なリポジトリの操作する
Gitで巨大なリポジトリを操作するときのチートシート
最低限だけCloneする
--depth 1で先頭のコミットの情報だけ取得する
shallow clone となるのでメインブランチ以外のリモートの追跡が設定されない
code:sh
git clone <repository> --depth 1
指定したリモートブランチだけ追跡対象にする
追跡対象にするリモートブランチを指定する方法
通常の git clone をしたときは * が指定されすべてのリモートブランチが追跡されるが shallow clone となっている場合は明示する必要がある
code:sh
git remote set-branches --add origin <remote-branch>
最低限だけFetchする
指定したブランチの最新の状態だけを取得する
code:sh
git fetch origin <remote-branch> --depth 1
リポジトリのすべての情報を取得する
shallow cloneになっているリポジトリを unshallow な状態にする fetch
code:sh
git fetch --unshallow
指定したリモートブランチの追跡を解除する
code:sh
git branch -dr origin/<remote-branch>