84

私は git が大好きで、自宅ではほぼ常に OS X で使用しています。仕事では、Windows で svn を使用していますが、ツールが完全に成熟したらすぐに git に移行したいと考えています ( TortoiseGitだけでなく、 VisualSVNによって提供される非常に優れた Visual Studio 統合に似たものも)。しかし、私は脱線します...

最近、Windows 7 マシンにmsysgitをインストールしましたが、含まれているバージョンの bash を使用すると、非常に遅くなります。git 操作だけではありません。clear約 5かかります。ああああ!

誰かが同様の問題を経験しましたか?


編集: msysgitUACでうまく動作していないようで、XP で開発したり、UAC を無効にして Vista または 7 を実行したりすることによる小さな設計上の見落としである可能性があります。を使用してGit Bashを起動Run as administratorすると、OS Xで見られる超高速になります(または、ネットワーク接続でGit Bashを起動した後の7で-@Gauthierの回答を参照)。

編集 2 : AH HA! 私の答えを見てください。

4

19 に答える 19

37

Vistaまたは7での速度低下の解決策は、Git Bashを使用して実行しているようですRun as administrator(またはGit BashショートカットのUACを無効にする...またはUACを完全に無効にする)。違いは昼と夜であり、7でgitを使用することは再び素晴らしいです。

これは既知の問題に関連しているようで、私が推測したように、msysgitの開発環境としてのXPが部分的に責任があります。

于 2010-06-03T15:42:02.977 に答える
14

私にとっての問題は、シェルプロンプトでの__git_ps1の使用でした-msysgitのディスクアクセスが遅いためだと思います。

解決策は、/ etc/profileのPS1=...行から$(__ git_ps1)を削除することでした。

このソリューションが適用されるかどうかのクイックテスト:gitシェルでexport PS1 ='$'と入力し、操作の速度を確認します。

于 2011-02-17T11:17:07.957 に答える
12

ここにあるほぼすべてのヒント (私の他の回答のヒントを含む) を新しいマシンで試しましたが、うまくいきませんでした。

次に、ウィルススキャンソフトウェア (プリインストールされていた) を調べました。「git svn rebase」に必要な時間が 30 秒から 5 秒に短縮されました (!)。

これが、Windows で遅い Git の問題を抱えている他の人に役立つことを願っています。これを理解するのに何時間も費やしました。

于 2012-02-07T08:04:39.803 に答える
9

残念ながら、「管理者として実行」は機能しませんでしたが、Kevin Lが見つけたように、ネットワークアダプターを切断し、git bashを起動してから、再接続すると正常に機能しました。そこで、これをバッチスクリプトでラップし、管理者として実行するようにフラグを付けて、スタートメニューにショートカットを配置しました。

netsh interface set interface "Local Area Connection" DISABLED
cd "%USERPROFILE%\Documents\Visual Studio 2010\Projects"
start cmd /c ""C:\Program Files\Git\bin\sh.exe" --login -i"
netsh interface set interface "Local Area Connection" ENABLED

ネットワークが一時的に切断されたことを覚えている限り、ご馳走になります。

(Win 7 Professional SP1、Gitバージョン1.7.8-preview20111206)

于 2012-01-06T11:48:15.950 に答える
5

私の同僚は、Outlook が実行されているときは常にこの動作をしていました。見通しを殺して、もう一度テストしてみてください。

次のテストを試すこともできます。

  • どのネットワークにも接続せずに、
  • ウイルス対策を実行せずに、
  • 他のプログラムを実行することなく。
于 2010-05-18T11:30:11.200 に答える
3

特定のユーザー アカウントで実行している場合、別の git.exe インスタンスが の呼び出しでブロックされるWaitForSingleObject()ため、一度に 1 つの git.exe 操作しか効果的に実行できないことがわかりました。ユーザー アカウントを変更すると、この問題を回避できました。

詳細はこちら: https://stackoverflow.com/a/13054022

于 2012-10-25T10:02:50.740 に答える
3

私は MacAffee を持っていて、.git ディレクトリとすべてのサブディレクトリをリアルタイム スキャンから除外するように指示することで、パフォーマンスの問題に対処しました。

于 2013-03-20T05:33:12.707 に答える
1

Windows 7 UACをいじる代わりに、プログラムファイルフォルダーの外にmysysgitをインストールすることもできます。たとえば、「C:\ Program Files(x86)\ Git」の代わりに、「C:\git」にインストールしてみてください

「管理者として実行」とUACコントロールをいじってみましたが、あきらめて新規インストールをやり直しました。以前は最大約15KiB/sでしたが、現在は60kiB/sを超えています。

于 2013-03-20T04:22:56.003 に答える
1

私はしばらくこれをトラブルシューティングしてきましたが、問題の原因を特定するのに苦労しました. 最終的に、劇的な影響を与える 2 つのことがわかりました。

  • Windows Search サービスをオフにします。これは、パフォーマンスに劇的な影響を与えました。
  • Git 拡張機能を閉じます。Git 拡張機能の参照ウィンドウをバックグラウンドで開いていると、Cygwin の git コマンドの実行時間が最大で約 10 倍にランダムに増加しました。
于 2015-01-29T19:14:08.337 に答える
1

この問題にあるように、UAC 仮想化をオフにして実行すると (UAC を完全に無効にする必要はありません)、大きな違いが生じます。

この投稿では、それをオフにする方法について説明しています (投稿の下部を参照してください。レジストリ設定は 1 つだけです)。

私が接続している 1 つの (大規模な) SVN リポジトリで、上記の変更を行うだけで、「git svn rebase」に必要な時間が 15 秒から 5 秒に短縮され、3 倍の改善が見られました。

于 2011-11-15T08:24:34.793 に答える
1

UAC をオフにしてもパフォーマンスが向上しない場合は、luafv ドライバーをオフにしてみてください。このページのほとんどすべてといくつかの同様の質問を試した後、これはうまくいきました。Git は、使用できないほど遅いものから、かなりまともなものになりました。

「regedit」を開き、レジストリキーを見つけます

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/services/luafv

の値をStart2 から 4 に変更します。

luafv ここで無効にする方法の詳細を見つけました。私は個人的に何が何なのか、何をしているのかわからないことに注意してくださいluafv。そのページには、オフにした場合に発生する可能性のある悪いことについてさまざまな警告が表示されますが、これはおそらく真剣に受け止める必要があります.

編集:以下のコメントは、私がこれを間違った方法で取得したことを指摘しました(リンクには正しい方法があります)。現在修正されています。私がレジストリをゴミ箱に捨てた人々に申し訳ありません:)

于 2013-02-14T07:59:23.723 に答える
0

ここでの問題は、bashの完了が有効になっている場合に発生する可能性があります。これは、WindowsではLinuxよりもかなり低速です。

PS1変数を「$」のような単純なものに設定してみて、これによって処理が高速化されるかどうかを確認してください。もしそうなら、最近のgit-versionsでbash-completionにいくつかの最適化が行われていることに注意してください。おそらく、アップグレードする必要があります。

于 2010-05-25T16:53:36.820 に答える
0

これは私のために働いた。ワンサイズですべてのソリューションに対応できるとは思わないでください。

bashとwindowsの$HOME環境変数を確認してください。ユーザーアカウントを指している場合は、ユーザーのWindowsプロファイル/権限を確認してください。それに応じて、ユーザーアカウントまたは$HOMEのいずれかを変更します。

于 2011-06-02T06:18:45.013 に答える
0

指摘されているように、最善の解決策は管理者として実行することです。ただし、少なくともgit ステータスを高速にする別のオプションは、 trustctime = falseです。その前にgit statusには約 30 秒かかり、その後は出力に表示されるのと同じ量です - X 秒かかりました...

于 2016-03-04T08:45:28.677 に答える
0

msysgit をアンインストールし、Windows を再起動し、最新バージョンの msysgit をインストールしてみてください。それは私のためにトリックをしているように見えました。ここでこの提案を見つけました:

https://stackoverflow.com/a/4506192/1413941

編集

PS 遅い Git の問題が発生する前に既に UAC を無効にしていたので、Git を高速化するために UAC を無効にする必要があるかどうかはわかりません。

于 2013-02-25T12:49:01.000 に答える
0

次の git 構成を変更することで、重要なパフォーマンスの向上が得られる場合もあります。

git config --global status.submoduleSummary false

Windows 7 x64 で単純なgit statusコマンドを実行すると、コンピューターの実行に 30 秒以上かかりました。このオプションが定義された後、コマンドは即時です。

次のページで説明されているように Git 独自のトレースを有効にすると、問題の原因を特定するのに役立ちました。これは、インストールによって異なる可能性があります 。スロー

于 2016-12-01T16:40:21.797 に答える
0

Windows 7 x64 で制限付きユーザー アカウントとして git for Windows (msysgit) を実行しているときに、かなり長い間同じ問題に遭遇しました。私がここや他の場所で読んだことから、共通のテーマは管理者権限や UAC の欠如のようです。私のシステムではUACがオフになっているため、プログラムファイルディレクトリに何かを書き込んだり削除したりしようとしているという説明が最も理にかなっています。

いずれにせよ、zipinstaller を使用して git 1.8 のポータブル バージョンをインストールすることで問題を解決しました。zipinstaller が機能するためには、.7z 配布ファイルを解凍し、zip として再パックする必要があることに注意してください。また、そのディレクトリを手動でシステム パスに追加する必要がありました。

パフォーマンスは今のところ問題ありません。制限付きユーザーとしてのアクセス許可を持っていない Program Files (x86) ディレクトリにインストールされていますが、同じ問題は発生していないようです。私はこれを、ポータブル バージョンがファイルの書き込み/削除の場所でもう少し保守的であるという事実 (おそらくそうである)、または 1.7 から 1.8 へのアップグレードのいずれかに起因すると考えています。どれが原因かを突き止めるつもりはありませんが、現在ははるかにうまく機能していると言えます。

于 2012-12-19T04:23:42.113 に答える
-4

おそらく、Git リポジトリを分析するプロンプトの問題です。Git リポジトリの外部のどこかで「クリア」を実行することでテストできます。また、git-completion.bash にパッチを適用するか、core.filemode でトリックを実行することで、高速化できます。

Visual Studio との統合について: これはオープン ソースです。他の人があなたのために無料で働くことを期待するのは不公平です.

また、msysGit メーリング リストで質問しないのはかなりおかしいと思いますが、ここでは脱線します

于 2010-05-15T01:41:20.903 に答える