[解決済み] なぜ私の git リポジトリはこんなに大きいのですか?
2022-04-26 14:15:53
質問
145M = .git/objects/pack/
各コミットとその前のコミットの差分のサイズを、各ブランチの先端から逆算するスクリプトを書きました。これは圧縮せず、ブランチ間の同一ファイルやブランチ間の共通履歴を考慮しない場合の値で、129MBでした。
Gitはこれらのことをすべて考慮に入れているので、もっとずっと小さなリポジトリになると思います。では、なぜ.gitはそんなに大きいのでしょうか?
してきました。
git fsck --full
git gc --prune=today --aggressive
git repack
ファイル数/コミット数についてお答えすると、私はそれぞれ40ファイルについて19のブランチを持っています。 287のコミットは、以下を使用して見つかりました。
git log --oneline --all|wc -l
これに関する情報を保存するのに、10メガバイトもかかってはいけないのです。
どのように解決するのか?
最近、間違ったリモートリポジトリをローカルリポジトリに引き込みました(
git remote add ...
と
git remote update
). 不要なリモート参照、ブランチ、タグを削除しても、私のリポジトリには1.4GB(!)もの無駄な領域が残っていました。 を使ってクローンすることでしか、これを取り除くことができませんでした。
git clone file:///path/to/repository
. なお、この
file://
はローカルリポジトリをクローンする際に大きな違いをもたらします。ディレクトリ構造全体ではなく、参照されているオブジェクトのみがコピーされます。
編集:新しいレポのすべてのブランチを再作成するためのIanのワンライナーです。
d1=#original repo
d2=#new repo (must already exist)
cd $d1
for b in $(git branch | cut -c 3-)
do
git checkout $b
x=$(git rev-parse HEAD)
cd $d2
git checkout -b $b $x
cd $d1
done
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] Git リポジトリでのマージの衝突を解決するには?
-
[解決済み] リモート Git リポジトリの URI (URL) を変更するには?
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Git, fatal: リモートエンドが予期せずハングアップしました。
-
[解決済み] masterブランチと'origin/master'が分岐している、'undiverge'ブランチの方法は?
-
[解決済み】Gitのエラー。リモートリポジトリへの接続時に「Host Key Verification Failed」。
-
[解決済み】以下の追跡されていないワーキングツリーファイルは、マージによって上書きされますが、私は気にしません。
-
[解決済み】Githubエンタープライズ - リモート。Git の操作でパスワード認証が利用できない
-
gitアップロードの共通エラー処理
-
[解決済み] Git pull - マージする前に移動または削除してください。
-
[解決済み] git status に fatal: bad object HEAD と表示される。
-
[解決済み] git ls-remote と git ls-remote origin の違い。
-
[解決済み】gitリポジトリのサイズを小さくする