繁体   English   中英

哪些默认命令在 git-shell 中有效?

[英]Which default commands work in git-shell?

我使用密码使用 PuTTy 登录 git-shell。 无论我在 git-shell(Debian linux 服务器上的受限登录 shell)中输入什么,都会导致类似“无法识别的命令”这样的响应。

git> git help -a
unrecognized command 'git'

git-shell的设计非常有限。 有关更多详细信息,请参阅手册页

默认情况下,它只能运行一些命令,以允许推/拉操作。 这是 git 服务器提供“安全” SSH 访问的一种方式,该访问仅限于与 git 存储库交互。 此外,默认情况下,没有交互式登录访问。

请注意,只需使用 git-shell 执行push/pull/fetch操作,您不需要做任何特殊的事情。 它已经可以做这些事情了。 如果你想做一些不寻常的事情,你只需要定义自定义命令。

你在评论中说你有一个~/git-shell-commands/目录,但它是空的。 该目录的存在将启用交互模式,因此您将收到git>提示。 但是,命令目录为空意味着没有可以运行的有效命令。 在这种情况下,您唯一可以运行的是exit以离开 shell。

要使用git-shell ,您需要在~/git-shell-commands创建一些~/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

这篇博文中有几个例子。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM