2

パスワードを使用して、PuTTy で git-shell にログインします。git-shell (Debian Linux サーバー上の制限付きログイン シェル) に何を入力しても、「認識されないコマンド」のような応答が返されます。

git> git help -a
unrecognized command 'git'
4

1 に答える 1

4

git-shell設計上、非常に制限されています。詳細については、man ページを参照してください。

デフォルトでは、プッシュ/プル アクションを可能にするために、いくつかのコマンドしか実行できません。これは、git サーバーが「安全な」SSH アクセスを提供する方法であり、git リポジトリとのやり取りのみに限定されます。また、デフォルトでは、インタラクティブ ログイン アクセスはありません。

git-shell を使用して単純にプッシュ/プル/フェッチ操作を行う場合、特別なことをする必要はありません。それはすでにそれらのことを行うことができます。何か変わったことをしたい場合にのみ、カスタム コマンドを定義する必要があります。

コメントで、ディレクトリがあると言っていますが、~/git-shell-commands/空です。ディレクトリが存在すると対話モードが有効になるため、git>プロンプトが表示されます。ただし、コマンド ディレクトリが空であるということは、実行できる有効なコマンドがないことを意味します。このシナリオで実行できるのはexit、シェルを終了することだけです。

を使用するgit-shellには、 でいくつかのコマンドを作成する必要があります~/git-shell-commands。正確に何を作成するかはあなた次第です。例として、 を作成しlist、そのスクリプトにサーバー上の利用可能なリポジトリのリストを返すようにすることができます。

コメントに示されているように、「標準コマンド」を使用したい場合は、git-shell探しているツールではないというのが答えだと思います。通常のログインシェルを探しているようです。

カスタム コマンドの例は次のようになります。list上記で提案したコマンドの実装を次に示します。

#!/bin/bash

# Assuming all repositories are named `*.git`
for repo in $(ls -d *.git); do

    # Just in case one exists, ignore ".git"
    if [[ "$repo" != ".git" ]];
        # Trim off the extension
        echo $(basename $repo .git)
    fi

done

このブログ投稿にいくつかの例があります。

于 2017-01-09T17:42:01.183 に答える