2009-10-13 7 views
100

私はリモートリポジトリ用にローカルgitプロジェクトを設定しています。リモート・リポジトリーが非標準ポート(4019)で提供されています。非標準ポートのリモートリポジトリを使用する

しかし、動作しません。ある何

[core] 
    repositoryformatversion = 0 
    filemode = true 
    bare = false 
    logallrefupdates = true 
[remote "origin"] 
    url = ssh://[email protected]:4019/var/cache/git/project.git 
    fetch = +refs/heads/*:refs/remotes/origin/* 
[branch "master"] 
    remote = origin 
    merge = refs/heads/master 

(ポートおよびホストは、実際のポートとホストのプレースホルダです。)

ssh: connect to host git.host.de:4019 port 22: Connection refused 
fatal: The remote end hung up unexpectedly 
error: failed to push to 'ssh://[email protected]:4019/var/cache/git/project.git' 

私の地元のgitの設定がas followsです:代わりに、私は、次のエラーメッセージが表示されます私のgitの設定で間違っている?

+8

y明示的に 'ssh://'をURLの前に置かないと、それは別のフォーマットだと思います。したがって、 'example.com:444/etc /'はportを経由してexample.comの/ 444/etc /であるのに対し、ssh://example.com:444/etc/'はexample.comの/ etc/22. – Kzqai

+4

@Kzqaiの発言は重要です。すなわち、 'git remote set-url origin [email protected]:443/yourname/yourrepo /'それが動作しない場合です。しかし、もしあなたが 'git remote set-url origin ssh://[email protected]:443/yourname/yourrepo /'これが動作するならば – oak

+0

Google-fuの場合 - 私が持っていたときに私はphabricatorでこの問題を抱えていたそれは2222の非デフォルトポートに設定されます。今、ソート! – user3791372

答えて

90

あなた.ssh/configにこのような何かを置く場合:

Host githost 
HostName git.host.de 
Port 4019 
User root 

を、あなたは基本的な構文を使用することができるはずです:指定するとき

git push githost:/var/cache/git/project.git master 
+3

SSH設定は回避策かもしれませんが、man git-pushはssh:// [user @] host.xz [:port]/path/to/repoというssh url形式を使用しているため、興味があります。 git/ – gnud

+1

ssh:// fake @ localhost:333 /偽のアドレスにプッシュしようとしたため、(期待どおり) "ポート333:接続が拒否されたため、設定git/sshバージョンの問題である可能性があります。 " –

+28

これをまだ必要としている人には注意が必要です。あなたのホームディレクトリを基準にしたパスの場合、 'git clone ssh:// username @ hostname:333 /〜/ repo'です。そうでない場合は' git clone ssh:// username @ hostname:333/path/to/repo'です。 Windowsマシン上の絶対パス –

6

SSHは:構文を使用していませんポート。

 
Host git.host.de 
    Port 4019 

そして、ポート番号なしでちょうどgit.host.deを指定します。これを行う最も簡単な方法は、あなたの~/.ssh/configファイルを編集して追加することです。

9

これはあなたの問題ではなく、それを直接固定を回避し、私は~/.ssh/configファイルを追加し、この

Host git_host 
HostName git.host.de 
User root 
Port 4019 

のようなものを持つお勧めします、あなたは

url = git_host:/var/cache/git/project.git 

を持つことができ、あなたがすることもできますssh git_hostscp git_host ...とすべてがうまくいくでしょう。

103

http://git-scm.com/docs/git-cloneに指定されているSSHベースのGitのアクセス方法は、完全なURLまたはSCPのような構文のいずれかを使用して<repo_path>/.git/configで指定することができます。

URLのスタイル:

url = ssh://[[email protected]]host.xz[:port]/path/to/repo.git/ 

SCPスタイル:

url = [[email protected]]host.xz:path/to/repo.git/ 

SCPスタイルでは、ポートの直接変更は許可されておらず、代わりにssh_configホスト定義に依存しています

ssh my_git_host 

<repo_path>/.git/configであなたのSCP-スタイルURIを変更:

Host my_git_host 
HostName git.some.host.org 
Port 24589 
User not_a_root_user 

次にあなたがシェルでテストすることができます。あなたの~/.ssh/configなどにおけるイオン

url = my_git_host:path/to/repo.git/ 
+0

Soooooo ...本当に必要なのはssh://おそらく、URLの前に。 – Kzqai

+0

sshのURLを指定できないことや、scp(デフォルト)がポート番号を許可していないことに気付かなかった。知っておいてよかった。 – Powerlord

+0

scpは実際にポート番号を許可します(オプションキーは大文字のPでなければなりません):scp -P 2020ファイル/ to/copy user @ host:path/to/copy/file/to – Drew

19

はこれを試してみてください

git clone ssh://[email protected]:11111/home/git/repo.git 
+1

こんにちはリッキー、 git cloneの構文を使用します。ssh:// user @ machine:port/path-to-repo – rtrujillor

関連する問題