I am trying to use ssh port forwarding to defeat corporate firewall:
ssh git@GIT_SERVER -L9418:GIT_SERVER:9418
and in another terminal I run
git clone git://localhost:repositories/project.git
But I get the following error:
开发者_StackOverflowInitialized empty Git repository in /Users/aboxer/tmp/glucosia/.git/
fatal: Unable to look up localhost (port repositories) (nodename nor servname provided, or not known)
Thanks!
I'm pretty sure your problem (or at least the one causing this particular error) is here:
git clone git://localhost:repositories/project.git
If you look at the list of url notations in man git push you'll see the relevant example:
git://host.xz[:port]/path/to/repo.git/
With the colon, you're using "repositories" as the port name, and git (understandably) has trouble connecting to port repositories on local host! What you're looking for is:
git://localhost/path/to/repositories/project.git
or perhaps
git://localhost/~user/repositories/project.git
Edit:
I probably should've said this from the start, but I can't actually think of a reason you'd need to use SSH tunneling with git. Its default transport protocol is ssh; the git protocol is really only present to allow public repositories to be fetched from without an account. If you can SSH into the machine where the repository is located, you can just fetch via ssh:
git clone ssh://[user@]host.xz/path/to/repo.git
git clone ssh://[user@]host.xz/~/path/to/repo.git
git clone ssh://[user@]host.xz/~user/path/to/repo.git
I wrote a complete response/guide here: http://vladzloteanu.wordpress.com/2010/12/18/git-through-ssh-port-forwarding-ssh-tunneling/.
The short version of Vlad Zloteanu's answer:
Set up the tunnel:
ssh ServerWithSSHAccessAddress -L 2000:GitServerAddress:22 -N , &
Clone the repo
git clone ssh://user@localhost:2000/my_repo.git
Here are the steps that worked for me. My system is behind company firewall and it is domain joined:
- First npm needs to be installed
- Fiddler needs to be in running mode as well. Fiddler needs to be running with ‘Automatically Authenticate’ option under ‘Rules’ enabled
- Install Git via command:
npm install git
- Update protocol from git to https:
git config --global url.https://github.com/.insteadOf git://github.com/
精彩评论