私は小規模なプロジェクトの開発中に Windows と Ubuntu の両方で Git を使用しており、頻繁に切り替えています。問題は、Git Bash が常に遅くなることです。
遅いというのは、実行にcd
8 ~ 25 秒、git
コマンドの実行に 5 ~ 20 秒、ls
場合によっては 30 秒かかることを意味します。言うまでもなく、これは楽しくなく、非生産的です。Git は Windows では遅いことは知っていますが、これはひどいです。
私にとって一時的に効果があった唯一の解決策は、ネットワーク接続を無効にすることでした(この答え) をクリックして、Git Bash を起動し、再接続します。その後、数日間は高速に実行し続けることもありますが、最終的には必ずパフォーマンスが低下します。数週間にわたって、msysgit ディスカッション グループ、Stack Overflow、msysgit 問題リストなどを断続的に調べましたが、有効な解決策を見つけることができませんでした。
これまで試したこと:
- Git とプロジェクト フォルダをウイルス スキャナーの除外リストに追加する
- ウイルス スキャナーを完全に無効にする (Kaspersky IS 2011)
- Outlook が実行されていないことを確認する (Outlook 2007)
- 他のすべてのアプリケーションをシャットダウンする
- Git Bashを管理者として実行する
- ネットワーク接続を無効にし、Git Bash を起動し、接続を無効のままにする
- ネットワーク接続を無効にし、Git Bash を起動し、接続を再度有効にする (たまにしか機能しない)
- ランニング
git gc
- 上記の組み合わせ
何人かの人が Bash 補完を無効にすることに成功したという記事を読みましたが、理想的にはこれを有効のままにしておきたいと思います。msysgit のバージョンは 1.7.3.1-preview20101002 で、OS は Windows 7 x64 です。同じものを Linux で実行すると、予想どおり、非常に高速です。私は Linux のみを使用しますが、Windows でも実行する必要があります (特定のアプリケーション、テストなど)。
同様の問題に遭遇した人はいますか? もしそうなら、根本的な問題は何でしたか? また、解決策は何でしたか? (ある場合)
これは Git リポジトリだけに限りませんが、参考までに言うと、私が Git を使用してきたリポジトリはかなり小さく、最大でも 4 ~ 50 ファイルです。
ベストアンサー1
次の 3 つのコマンドを実行していくつかの構成オプションを設定すると、Windows 上の Git を大幅に高速化できます。
git config --global core.preloadindex true
git config --global core.fscache true
git config --global gc.auto 256
ノート:
core.preloadindex
レイテンシを隠すためにファイルシステム操作を並列に行う (更新: Git 2.1 ではデフォルトで有効)core.fscache
UAC の問題を修正し、Git を管理者として実行する必要がなくなりました (更新: Git for Windows 2.8 ではデフォルトで有効になっています)gc.auto
.git/内のファイル数を最小限に抑えます