2015-07-01 63 views
2

我有一個git倉庫,在一開始工作正常(或在Windows上可以預期),但1周後(或左右)回購速度變慢,當我嘗試運行git fetch(以及任何使用fetch的命令)。終端凍結了幾分鐘,然後取回開始,取回本身不是特別慢,但等待時間使它很痛苦。在開始之前在窗口上等待Git獲取

我曾嘗試:

  • 我的病毒程序的車削
  • git config --global core.preloadindex true
  • git config --global core.fscache true
  • git config --global gc.auto 256
  • 再次關閉所有其他應用程序
  • 檢查出庫(適用於幾天,然後我回來)。
  • git gc --aggressive --prune=now

任何人有什麼更多的,我可以試試,我曾嘗試谷歌,但還沒有找到一個解決方案,我的神祕任何想法。

修改(2015-07-02):將git gc --aggressive --prune=now添加到測試列表中。

我已經運行:

GIT_TRACE=true git pull 
trace: exec: 'git-pull' 
trace: run_command: 'git-pull' 
trace: built-in: git 'rev-parse' '--git-dir' 
trace: built-in: git 'rev-parse' '--is-bare-repository' 
trace: built-in: git 'rev-parse' '--show-toplevel' 
trace: built-in: git 'ls-files' '-u' 
trace: built-in: git 'symbolic-ref' '-q' 'HEAD' 
trace: built-in: git 'config' 'branch.develop.rebase' 
trace: built-in: git 'config' 'pull.rebase' 
trace: built-in: git 'rev-parse' '-q' '--verify' 'HEAD' 
trace: built-in: git 'fetch' '--update-head-ok' 
trace: run_command: 'ssh' '-p' 'port' '[email protected]' 'git-upload-pack '\''/repo'\'' 
' 
trace: run_command: 'rev-list' '--objects' '--stdin' '--not' '--all' '--quiet' 

#### WAITING for 2 minutes #### 

remote: Counting objects: 59063, done 
remote: Finding sources: 100% (124/124) 
... 

我已標記,其中等待時間。

+0

你試過'git gc'嗎? – madhead

+0

試試這個:'git gc --aggressive --prune = now'。它會清理並打包所有鬆散的文件。 !!!!警告 - 它可能會刪除未提交的內容 – CodeWizard

+0

'git gc --aggressive --prune = now'不起作用。 – Aircleaner

回答

1

如果延遲在git pull執行(在客戶端上)和來自服務器的遠程消息之間說remote: counting objects,那麼它在服務器端是您需要解決的碎片。

運行git gc --aggessive將遠程存儲庫打包到您要從中提取的git服務器上的一個或幾個包文件。這些將比選擇的對象更有效地加載,並且反過來可能會影響獲取過程的工作速度。

您運行遠程服務器的機器也可能具有某種反病毒掃描程序,它會觸發Git服務器加載的每個文件;你有更多的文件(和更多的碎片)問題會更大。

編輯:更新答案以指示git gc需要運行的位置,因爲碎片存儲庫是從其中拉取的,而不是拉到的。

+0

'git gc --aggressive --prune = now'不起作用。 – Aircleaner

+0

如果問題出現在服務器上,我如何進行全新結帳後,回購協議如何正常工作? 我沒有管理權限在服務器上運行命令,我知道服務器不運行防病毒程序。 – Aircleaner

相關問題