11

gitoliteによって管理されるリポジトリのクローンを作成するには、通常、次の構文を使用します

git clone gitolite@server:repository

これは、SSHクライアントに、ユーザー名としてgitoliteを使用してサーバーのポート22に接続するように指示します。ポート番号で試してみると:

git clone gitolite@server:22:repository

Gitは、リポジトリ22:repositoryが利用できないと文句を言います。SSHサーバーが別のポートを使用する場合、どの構文を使用する必要がありますか?

4

2 に答える 2

18

「SCPスタイル」のGitURL構文(user@server:path)は、ポートの組み込みをサポートしていません。ssh://ポートを含めるには、 「GitURL」を使用する必要があります。例えば:

ssh://gitolite@server:2222/repository

注:と比較するとgitolite@server:repository、これはリモートエンドへのわずかに異なるリポジトリパスを示します(/repository相対パスではなく絶対パスrepository)。Gitoliteは両方のタイプのパスを受け入れますが、他のシステムは異なる場合があります。


Host別の方法は、のエントリを使用することです( ssh_config(5)のマンページ~/.ssh/configを参照してください)。このようなエントリを使用して、サーバー名/アドレス、リモートユーザー名、デフォルト以外のポート番号(およびその他のSSHオプション)を組み込んだ「SSHホストニックネーム」を作成できます。

Host gitolite
    User     gitolite
    HostName server
    Port     2222

次に、のような非常に単純なGitURLを使用できますgitolite:repository


複数の人のためにこれを文書化(および/または構成)する必要ssh://がある場合は、追加の構成が必要ないため、URLを使用します。

これがあなただけの場合(特に、同じサーバーから複数のリポジトリにアクセスすることになった場合)、入力を節約するためにSSHホストのニックネームを付けると便利な場合があります。

于 2011-09-08T05:21:49.957 に答える
2

ここで詳細に説明されています:https ://github.com/sitaramc/gitolite/blob/pu/doc/ssh-troubleshooting.mkd#_appendix_4_host_aliases

〜/ .ssh / configで「host」パラを使用すると、これらすべてをssh内にうまくカプセル化し、短くて覚えやすい名前を付けることができます。例:

host gitolite
    user git
    hostname a.long.server.name.or.annoying.IP.address
    port 22
    identityfile ~/.ssh/id_rsa

これで、1つの単語gitolite(ここで定義したホストエイリアス)を使用するだけで、sshはその下で定義されたすべての詳細を推測します-sshgitoliteとgitclone gitolite:reponameと言うだけでうまくいきます。

于 2011-10-06T20:14:23.757 に答える