1

gitリモートリポジトリに1つの問題があります。git-shellアクセス用のgitユーザーを作成しました。

誰かがシェルに参加するとき、ホームパスは/ home / git /であり、これは問題ありません。問題は次のとおりです。私のリポジトリパスは/var/ www /であり、git userでbashシェルを使用せずにこのディレクトリ内でマージできるようにしたい(したがって、サーバー内をナビゲートするためにcdを使用する可能性を与えない))。

Git-shellにはマージコマンドを実行する機能がありますか?そして、これは最後にパスも指定する可能性がありますか?

git-shellのマージについて説明するものは何も見つかりません。

Webで実行可能な.shスクリプトを作成しようと考えていました。しかし、gitシェルによって直接関数を与えることで、すでにベースからいくつかのセキュリティ問題を解決できる可能性があります。

よろしくお願いします、マウロ。

4

1 に答える 1

0

私はこれの回避策を実行しようとしていますが、一時的なものが私のために働いています。ただし、私と同じ方法でスクリプトを公開し、他の代替案を考え出すことはお勧めしません。

基本的なgitリポジトリ内で、このbashスクリプトを作成します。

#!/bin/sh
GIT_MERGE_AUTOEDIT=no
export GIT_MERGE_AUTOEDIT
git merge [name_of_branch_one]
git merge [name_of_branch_two]

その後、shスクリプトを呼び出すための単純なphp関数を作成し、次のようになります。

$exec = exec("sh /Your_Git_Repository_dir/merge.sh");
if($exec){
    print_r($exec);
}

これがお役に立てば幸いです。

于 2013-10-02T13:27:39.240 に答える