2009-11-12 18 views
107

Bir http proxy'nin arkasında çalışıyorum. Android'in "repo" aracını kullanarak kaynak ağacını klonlamaya çalışıyorum.`git:` urls 'i url'ye dönüştürme: url

Bu araç, http:// URL'lerinin de çalışmasına rağmen git:// URL'lerinin kullanılması konusunda ısrar eder. Sonuç olarak, kaynağı indiremiyorum.

git'u her zaman http kullanmak için zorlamak mümkün mü?

Düzenleme: benim http_proxy doğru yapılandırılır.

git clone http://android.git.kernel.org/platform/manifest.git 

Ama bu (errno = Bağlantı zaman aşımına uğradı) değildir:: Örneğin, bu işleri

git clone git://android.git.kernel.org/platform/manifest.git 

Yani this answer beni gerçekten yardımcı olmuyor.

+0

bu [cevaba] Bkz (http://stackoverflow.com/questions/128035/how-do-i-pull-from-a-git-repository-through-an-http-proxy/397642#397642) . –

cevap

243

İşte GitHub'dan için varsayılan protokolünü yeniden bir örnek.

+16

yardımcı olur! :) – Turowicz

+8

Benim için çalışmaz :( –

+0

Bu çalışma ve çok basittir.Bu kabul edilen yanıt olmalıdır –

35

Bu repo aracı Git kullandığı biliyorum (ve http protokolünü kullanmak için 'repo' yapılandırabilirsiniz varsa), ancak url.<base>.insteadOf yapılandırma değişkeni kullanarak kandırmak için deneyebilirsiniz (git-config ve git-fetch Man sayfaları bakınız) yoktur.

Git protokolünü kullanarak sorun olup olmadığını güvenlik duvarı üzerinden geçmek için core.gitProxy kullanmayı denediniz mi?

+2

Teşekkürler, bu "insteadOf" değişkeni tam olarak ihtiyacım olan şey. . Aslında çözüm de dahil olmak üzere ... – noamtm

22

Aynı sorunu, bir veri havuzunda yinelemeli alt modüller alıyorum. Git bağlantı noktasında giden bağlantılara izin vermeyen çılgın bir güvenlik duvarının arkasındayım. Alt modüllerin bazı alt modülleri git://github.com/blah/blah.git olarak kodlanmıştır. Bu tekrarlayan alt modüllerimi öldürdü. geçici çözüm şudur:

git config --global url."https://<GITUSERNAME>@".insteadOf git:// 

Bu, tüm alt modül depo URL'lerinizdeki https://<GITUSERNAME>@ ile git:// değiştirir. <GITUSERNAME>'u kendi git kullanıcı adınızla değiştirmeniz gerekiyor. Ayrıca --global'un gerekli olduğunu unutmayın; Bu yapılandırmayı temel depo dizinine eklemek işe yaramıyor. ya da tam tersi, //:

git config --global url.https://github.com/.insteadOf git://github.com/ 
+0

Teşekkür "https: //" .insteadOf git: burada olduğu gibi // gösterilmiştir? https://github.com/angular/angular-phonecat/issues/141 Kullanıcı adı zorunlu mu demek? Güvenlik duvarı git protokolü ne zaman – GalacticJello

+3

Y sadece git config --global url kullanmak –

1

https ile SSH üzerine yazıyorsanız eğer ~/.gitconfig içinde doğrulayabilirsiniz: