2012-11-20 54 views
8

我在這裏看到很多問題,涵蓋git和代理主題,但他們都沒有解決我的問題。 我從Bitbucket克隆git倉庫。一切從我的家庭網絡工作正常,但掛在我們正在使用代理與NTLM身份驗證的工作。查看git clone命令的輸出:解決增量後,與NTLM代理git克隆掛起

$ git clone https://[email protected]/my_user/my_project.git --verbose 
Cloning into 'my_project'... 
Password for 'https://[email protected]': 
POST git-upload-pack (174 bytes) 
remote: Counting objects: 548, done. 
remote: Compressing objects: 100% (367/367), done. 
remote: Total 548 (delta 216), reused 0 (delta 0) 
Receiving objects: 100% (548/548), 5.28 MiB | 533 KiB/s, done. 
Resolving deltas: 100% (216/216), done. 

git clone命令總是掛在「Resolving deltas」上。

我的設置:

  • 的Windows 7 64位與msysgit 1.8.0
  • 代理配置:

    $git config --global http.proxy http://MY_DOMAIN\\\my_user:[email protected]:8080 
    

看來這個問題是不知何故與git對象大小有關,因爲當我哈哈時,git clone曾經開始工作幾個文件只在我的倉庫中。

+0

http://stackoverflow.com/questions/1783659/does-git-clone-work-through-ntlm-proxies –

+0

@Android_Rocks我檢查了這個帖子,似乎我的git版本1.8.0支持NTLM身份驗證。 – tommyk

回答

3

我碰到了同樣的問題,Git 1.7.11。我所有從GitHub克隆的嘗試都會導致沒有文件的掛起進程。我在類似的問題上嘗試了verify-pack技巧和許多其他建議,但沒有成功。

我想這也許已經在最新版本的Git中得到了改進或修復,所以我升級到了1.8.3。賓果,現在它的作品,我可以克隆!

+0

有同樣的問題,同樣的解決辦法:升級到git 1.8.3 – rluba

0

不是一個答案,只是提供症狀來縮小這個問題的原因。 我有完全相同的問題。它只是坐在那裏「解決三角洲」。

v1.7.10 Win2008 R2 Enterprise 已爲HTTP和HTTP配置代理服務器。

我會得到一個collegue登錄到服務器(的.gitconfig是他漫遊配置文件的一部分),看看它是否是在配置或安裝。

+0

作爲解決方法,我使用cntlm工具,但問題的根本原因仍然未知... – tommyk

3

對不起,我的英語很糟糕。希望你能理解。

我在這裏遇到了同樣的問題。我無法找到並解決問題,但我終於可以結帳。當git clone掛在「Resolve deltas」上時,殺掉git進程。所以,你有文件夾my_project和文件.git\objects\pack\pack-<sha1>.pack。現在,我們需要找到的版本號。鍵入以下命令:

git verify-pack -v .git\objects\pack\pack-<sha1>.pack | grep "commit" | more 

和輸出是這樣的:

98c9f779992fc9a52372e0a1a76647e5d9ca5e01 commit 340 227 12 
b6435d98f7b62ce69c59ce582beddf547f26d8a2 commit 305 208 239 
a2a39a0c707b2919c87b194dca9a0dea307ce069 commit 239 159 447 
... 
4803e013b30dc9d31e4a8dba7e1a2d65e6f61422 commit 243 167 6768 
-- More --  

98c9f779992fc9a52372e0a1a76647e5d9ca5e01上方是HEAD修訂版本,這樣你就可以檢出這一點:

git checkout -b master 98c9f779992fc9a52372e0a1a76647e5d9ca5e01 

完成。

2

我有同樣的問題,雖然我不能查明原因我有什麼,我估計比使用驗證包和結帳最後提交由cakyus解釋一個稍微好一點的解決方法。

與檢查出的最後一次提交作爲主分支,你不能保證提交的問題屬於特別是分支,所以我所做的就是:

  • 中斷git的過程,掛在解決與增量Ctrl+C
  • 取分支信息與git fetch
  • 結帳主分支(或任何其它分支)與git checkout master

這使得git設置了我的分支主控器來跟蹤遠程分支主控並正確解壓文件,同時保留分支信息。

+0

我希望我有更多的投票來給出這個答案。 –

0

我從評論在這個博客上http://stas-blogspot.blogspot.ca/2012/12/git-hangs-after-resolving-deltas.html,工程解決方案:

由於包文件已經下載正確的,所有你需要做的是中斷用Ctrl + C的過程中,做一個git取從遠程存儲庫獲取分支信息,並使用git checkout master再次檢出master(或任何其他)分支。

因此解決辦法就是殺死掛起的進程,然後:

git fetch 
git checkout