[英]git clone with NTLM proxy hangs after resolving deltas
我在這里看到很多關於git和代理主題的問題,但沒有一個能解決我的問題。 我正在從Bitbucket克隆一個git存儲庫。 從我的家庭網絡一切正常,但掛起工作,我們使用代理與NTLM身份驗證。 請參閱git clone命令的輸出:
$ git clone https://my_user@bitbucket.org/my_user/my_project.git --verbose
Cloning into 'my_project'...
Password for 'https://my_user@bitbucket.org':
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”。
我的設置:
代理配置:
$git config --global http.proxy http://MY_DOMAIN\\\\\\my_user:my_password@http-proxy:8080
似乎這個問題與git對象大小有某種關系,因為當我只在我的存儲庫中存在少量文件時,git clone就開始工作了。
抱歉,我的英語很不好。 希望你能理解。
我在這里遇到了同樣的問題。 我無法找到並解決問題,但我終於能夠結賬了。 當git clone掛起“Resolving 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
完成。
我用Git 1.7.11打了同樣的問題。 我從GitHub克隆的所有嘗試都會導致掛起的進程沒有文件。 我在類似的問題中嘗試了verify-pack
技巧和許多其他建議,但沒有任何效果。
我想可能在最新版本的Git中已經改進或修復了,所以我升級到了1.8.3。 賓果,現在它的作品,我可以克隆!
我有同樣的問題,雖然我無法確定原因我有什么我認為是一個稍微好一點的解決方法比使用驗證包和結帳最后提交,如cakyus所解釋。
將最后一次提交檢出為主分支的問題在於,您無法保證提交特別屬於該分支,因此我所做的是:
Ctrl+C
中斷掛起解析增量的git進程 git fetch
獲取分支信息 git checkout master
簽出master分支(或任何其他分支) 這使得git設置我的分支主機來跟蹤遠程分支主機並正確解壓縮文件,同時保留分支信息。
不是答案,只是提出症狀來縮小這個問題的原因。 我有完全相同的問題。 它只是坐在那里“解決三角洲”。
v1.7.10已為HTTP和HTTP配置Win2008 R2企業代理。
我會得到一個同事登錄服務器(.gitconfig是他的漫游配置文件的一部分),看看它是配置還是安裝。
該博客上的評論對我有用的解決方案http://stas-blogspot.blogspot.ca/2012/12/git-hangs-after-resolving-deltas.html :
由於已正確下載包文件,您只需要使用Ctrl + C中斷該過程,執行git fetch以從遠程存儲庫獲取分支信息,並使用git checkout再次檢出主(或任何其他)分支主。
所以解決方案就是殺死掛起過程然后:
git fetch
git checkout
兩件事(2019年4月,七年后):
不要直接聲明NTML代理URL。 將HTTP_PROXY
和HTTPS_PROXY
環境變量設置為和HTTP代理(不是NTLM環境變量),例如,使用genotrance/px
。
通過運行px(重定向到您的NTLM代理),您可以引用經典的HTTP代理(通常是http:// localhost:3128 ,不需要您的登錄名/密碼!),這樣可以更好地工作。
如果“解決增量”仍需要時間,請務必使用Git 2.22(2019年第2季度)
在第二點:“ index-pack
”步驟中添加了一個進度指示器,這通常會使用戶在“ git clone
”期間等待完成。
見SZEDERGábor ( szeder
)的 提交79e3aa6 (2019年3月31日) 。
(由Junio C gitster
合並- gitster
-在提交da924b5 ,2019年4月25日)
index-pack
:檢查對象時顯示進度當'
git index-pack
'由'git clone
'運行時,它的check_objects()
函數通常不需要花費足夠長的時間才能成為一個問題,但我只是遇到大約需要一分鍾左右的情況:我無意中在克隆linux.git
同時給我的小筆記本電腦施加了一些內存壓力,然后在“Resolving deltas
”和“Checking connectivity
”進度條之間存在相當長的沉默。在
check_objects()
循環期間顯示進度條,讓用戶知道某些內容仍在繼續。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.