2011-04-23 6 views
0

내 서버와 복제본에 내 메인 레포가 있습니다.어떻게 쉘 스크립트를 통해 git 명령을 실행할 수 있습니까?

하나의 클론이 편집을 위해 로컬에 있습니다. 다른 복사본이 내 서버의 공용 폴더에 있으며 변경 내용을 가져 와서 라이브로 볼 수 있습니다.

현재 진행중인 루틴은 로컬 -> 내 서버의 공용 폴더에 로그인하여 git pull을 사용하여 업데이트 된 변경 내용을 확인하는 것입니다.

git hooks "post-receive"쉘 스크립트를 사용하여 공용 폴더로 변경하고 git pull origin master를 사용하고 싶습니다.이 작업을 올바르게 수행하는 방법을 알 수없는 것 같습니다.

cd /home/demo/public_html/example.com/public/ && `git status` 

그러나 나는 공용 폴더의 내용 (그래서 난 '을 얻을 것이다 cd /home/demo/public_html/example.com/public/ && ls

을 실행하면 내가 얻을 반환, 그러나 "하지 저장소"

입니다 :이 사용하여 시도 올바른 장소로 이동) 고급에 감사드립니다!

UPDATE :

언급해야 내가 함께 및없이 시도했다 틱

실제로 git status 주변의 역 인용 부호를 포함하고 있습니까
+0

.git 폴더는 어디에 위치해 있습니까? – kalyan

답변

3

먼저 테스트를 위해 git pull 또는 git 상태를 수행하기 전에 GIT_DIR env 변수를 설정 해제하십시오.

unset GIT_DIR 
+0

그게 다야, 지금은 그냥 원격 주위에 가야 해 : Permission denied (publickey). – jasonsemko

1

? 즉, cd ... && `git status` 또는 cd ... && git status을 작성하고 있습니까? 첫 번째 글을 쓰는 중이면 git status 명령을 평가 한 다음 그 결과를 다른 명령으로 해석하여 실행하려고합니다. 역 따옴표를 제거하면 그 결과를 명령으로 해석하려고 시도 할 때 오류가 아닌 git status의 결과 만 가져와야합니다. 역 따옴표는 예를 들어, 쉘 변수에서 명령의 출력을 캡처하는 데 사용됩니다

cd /home/demo/public_html/example.com/public/ && git status 

:

x=`ls` 

가에 ls의 출력을 넣어 것입니다

2

난 당신이 원하는 생각 변수 x.

+0

이 또는 이와 유사한 것이 나를위한 최선의 방법이었습니다. 쉘 스크립트에서 실행할 때 git가 다르게 동작하는 것을 발견했습니다. -C 옵션이 작동하지 않아서 git 명령의 접두사에 cd 명령을 사용하여 관련 디렉토리에 추가해야했습니다. – PKCLsoft

관련 문제