[解決済み] Gitのファイル制限(数とサイズ)について教えてください。
質問事項
Gitのファイル数とファイルサイズの制限についてご存知の方はいらっしゃいますか?
解決方法を教えてください。
このメッセージは ライナス本人 その他の制限について
<ブロッククオート[...] CVSは、結局のところ、1つのファイルに対しての指向性が強いのです。 というモデルです。
これは、100万個のファイルを持っていても、チェックするだけで良いという点では良いのですが そのうちの数個を取り出すだけで、決して 見る 他の 999,995のファイルです。
ギット 基本的に、レポ全体より少ない部分を実際に見ることはありません。たとえ 少し制限する(例えば、一部だけチェックアウトするとか、履歴を遡らせるとか)。 git は結局のところ、常に全体を気にしているのです。 そして、その知識を持ち運ぶ。
そのため、すべてを1つのものとして見るように強制すると、gitのスケールは非常に悪くなります。 巨大 リポジトリです。この部分は本当に直せないと思います。 おそらく改善できるはずです。
それから、quot;big file"の問題もありますね。本当にどうしたらいいのかわからないんです。 巨大なファイルをどうするか。私たちはそれが苦手なんです、わかっています。
もっと見るには、私の
その他の回答
Git の限界は、各リポジトリが " を表す必要があることです。
首尾一貫したファイル群
"、それ自体がすべてのシステム"です("リポジトリの一部"のタグを付けることはできません)。
システムが自律的な(しかし相互に依存する)部品で構成されている場合、その部品に対応するために
サブモジュール
.
に示されるように Talljoeの回答 という制限を設けることができます。 システム しかし、もしあなたがGitの本質(SHA-1キーに代表されるデータの一貫性)を理解しているなら、真のquot;limit"は 使用法 を保存しようとしないことです。 すべて を Git リポジトリで使用する場合は、常にすべてを取得したりタグ付けしたりする用意があることが前提です。大規模なプロジェクトでは、それは意味をなさないでしょう。
gitの制限についてのより詳細な情報は、"を参照してください。
大きなファイルでのGIT
となります。
(これは
git-lfs
: git リポジトリの外に大きなファイルを保存するためのソリューションです。GitHub、2015年4月)
gitレポを制限する3つの課題。
- <強い 巨大ファイル (その パックファイル用xdelta はメモリ内だけなので、大きなファイルには不向きです)
- 膨大なファイル数 つまり、1つのblobに1つのファイル、そして一度に1つのパックファイルを生成するためにgit gcの速度が遅くなるということです。
- 巨大なパックファイル パックファイルインデックスで、(巨大な)パックファイルからデータを取得するのは非効率的です。
より最近のスレッド(2015年2月)では、以下のように説明されています。 Gitレポの制限事項 :
<ブロッククオート中央のサーバーから同時に数個のクローンを作成すると、他のユーザーの同時処理も遅くなるのでしょうか?
クローン作成時にはサーバーにロックがかからないので、理論的にはクローン作成が他の操作に影響を与えることはありません。しかし、クローニングは多くのメモリを消費します(到達可能性ビットマップ機能をオンにしない限り、多くのCPUを消費します)。
<ブロッククオート
ウィル
git pull
は遅いですか?
サーバーサイドを除けば ツリーの大きさが主な要因です。 しかし、あなたの25kファイルなら問題ないでしょう(Linuxは48kファイルです)。
<ブロッククオート
'
git push
'?
これは、レポの履歴の深さやツリーの幅に影響されないので、すぐにできるはずです...。
参照元の数は
git-push
と
git-pull
.
このあたりは、私よりもステファンのほうがよく知っていると思います。
'
git commit
'? (で遅いと記載されている)。
参考3
.)
'
git status
'? (見かけないけど参考3でまたスロー)
(また
git-add
)
繰り返しになりますが、ツリーの大きさです。あなたのレポのサイズでは、心配する必要はないと思います。
いくつかの操作は日常的なものではないかもしれませんが、GitLab/Stash/GitHubなどのWebフロントエンドから頻繁に呼び出される場合、ボトルネックになる可能性があります。(例: '
git branch --contains
は、大量のブランチにひどく悪影響を受けるようです)。
git-blame
は、ファイルの変更が多い場合に遅くなる可能性があります。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] 新しいローカルブランチをリモートの Git リポジトリにプッシュし、それを追跡するにはどうすればよいのでしょうか?
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み] Git で最新のコミットを新しいブランチに移動する
-
[解決済み】ローカルの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 サブモジュール head 'reference is not a tree' エラー
-
[解決済み】GitHubのメッセージの意味: メールのプライバシー制限のためプッシュが拒否されました。
-
[解決済み】GitHub: クローンには成功したが、チェックアウトに失敗した
-
[解決済み】Git Extensions。Win32 エラー 487: cygwinのヒープ用に領域を確保できなかった、Win32エラー0
-
[解決済み】Git Push Error: リポジトリデータベースにオブジェクトを追加する権限が不足しています。
-
[解決済み] 無効なVCSルートマッピング - 私のプロジェクトで3つのエラーが発生しました。
-
[解決済み] 警告: リモート HEAD は存在しない参照元を参照しているため、チェックアウトできません。
-
[解決済み] git update-index --assume-unchanged <file> を元に戻す。
-
[解決済み] gitフォルダのサイズを小さくする方法はありますか?
-
[解決済み】Gitサブモジュールのアップデート