2013-03-12 4 views
1

git 원격 저장소에 하나의 문제점이 있습니다. git-shell 액세스를위한 git 사용자를 생성했습니다.다른 경로에 병합하는 자식 - 셸

누군가가 쉘에 가입하면 홈 경로는 /home/git/이며 괜찮습니다. 문제는 : 내 저장소 경로가 /var/www/이고 git 사용자가 bash 쉘을 사용하지 않고이 디렉토리 내에서 병합 할 수 있도록하고 싶습니다. (그래서 나는 cd을 사용할 수 없습니다. 서버 내부를 탐색).

Git-shell은 merge 명령을 실행할 수 있습니까? 그리고 마지막으로 경로를 지정할 가능성이 있습니까?

git-shell에 대한 병합을 설명하지 못했습니다.

웹에서 실행 가능한 .sh 스크립트를 만들려고합니다. 그러나 git 쉘에 의해 직접 함수를 제공하면 이미 보안 문제를 해결할 수 있습니다.

미리 감사드립니다. Mauro.

+0

여기에서 달성하려는 것은 무엇입니까? 웹 서버에서 repo를 노출하려면 더 나은 방법이 있습니다. 예 : 아파치 웹 서버를 설정하고 git으로 구성하십시오. 여기에 설명 된 것과 같습니다. http://kasunh.wordpress.com/2011/01/15/git-over-https/ – Steinar

+0

이것은 좋은 생각입니다. 감사합니다. 그러나 공개 키 뒤에 어떤 것이 든 안전하다고 느껴지므로이 문제를 셸 측에서 해결하려고합니다. – Ideabile

+0

ssh를 통해 repo에만 액세스하려는 경우 왜/var/www의 repo에 "병합"하려고합니까? – Steinar

답변

0

나는이 문제를 해결하기 위해 노력하고 있으며 일시적인 문제는 저를 위해 일하고 있습니다. 그러나 나는 당신이 내가하는 것과 같은 방식으로 스크립트를 노출하고 다른 대안을 고안하려고하지 말라고 제안하지 않습니다.

기본 내 자식 저장소 내에서이 bash 스크립트를 만듭니다. 나는이 도움을 희망

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

: 같은 호출에 대한 SH 스크립트, 그리고 보이는 곳

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

는 그 후 나는 간단한 PHP 함수를 만듭니다.

관련 문제