2015-01-06 2 views
0

질문을 통해 검색했지만 아직 내 질문에 대답하지 않았습니다.힘내 기둥 수신 후크가 실행되고 있지 않습니다.

대부분은 권한을 설정하여 파일을 실행할 수 있음을 제안합니다. 완료 - 777로 설정하십시오.

전송 프로토콜은 http가 아니고 ssh 여야합니다. Git 확장에서 찾아보기 저장소를 확인했으면 좋겠다. [email protected]로 시작하므로 ssh 프로토콜이어야한다.

단순히는 다음과 같습니다 포스트 - 수신 :

#!/bin/sh -x 

echo 'test'; 

git log -1 HEAD --pretty=format:"%x09%ad%x09"; 

touch ~/repos/develop/dashboard/test.txt; 

을 그래서 자식 풀을 실행할 때, 그 실행해야합니다.

post-receive의 이름을 post-checkout으로 변경하려고했는데 git checkout을 호출 할 때 실행되었습니다.

하지만 git pull - post-receive는 무시됩니다.

일부 noexec 파티션도 언급했습니다. 그러나 사후 점검이 효과가 있다면 사후 점검도 실행해야하기 때문에이 또한 효과가 있어야합니다.

확인할 사항은 무엇입니까?

업데이트 :

나는이 후크를 선택하는 이유 내가 말할 것이며, 어쩌면 당신은 다른 방법을 제안 할 수 있습니다.

데이터베이스에 현재 날짜를 저장하는 링크를 git pull로 호출하고 싶습니다. 따라서 사용자가 웹 사이트를 열면 웹 사이트가 마지막으로 업데이트 된시기를 확인할 수 있으므로 각 사이트 업데이트에서 수동으로 시간을 설정하지 않아도됩니다.

는 업데이트 :

이 스크립트 전에 실행하고 서버에 밀어 후 : 좋아, 내가 흥미 라인을 참조하십시오.

코드를 작성하는 컴퓨터에서 서버로 푸시합니다. 우분투 서버가 어떻게 푸시했는지 알 수 있습니까? 내가 프로그램하고 푸시 한 내 컴퓨터에 후 수신 파일을 넣어야합니까? 시도 할 수는 있지만 어떻게 든 도움이된다는 것은 불가능 해 보입니다.

업데이트 퍼팅 시도

내가 밀어 사용하는 컴퓨터에서 포스트 받고 내가 예상대로 - 더 TEST.TXT은 우분투 서버에 생성되지 않으며, 내 컴퓨터에있는되었다.

업데이트 내가 사용하는 것입니다 무엇을 달성하는 방법

후크 게시물을 병합. 클라이언트 측 범주입니다. 내 서버는 상대적으로 비트 버킷에 대한 클라이언트입니다. 그래서 서버를 가져 가면 병합이 완료되고 스크립트가 실행됩니다.

답변

4

전후에 실행되는이 스크립트 (수신 전, 수신 후 및 업데이트)는 클라이언트 측이 아니라 서버로 푸시됩니다.

그래서 client side hooks을 확인해야합니다.

tldr; git pull 후에 특정 hook이 존재하지 않습니다.

+0

내 프로젝트의 서버 .git/hooks 폴더에 넣습니다. –

+0

git pull 후에 아무런 훅이 없다면, 어떻게 post-receive가 실행됩니까? 그래서 나는 잘못된 명령으로 실행하기 위해 열심히 노력하고 있었습니까? Btw 나는 당신의 연결을 읽었다 그러나 아직도 문제를 해결할 수 없다 –

+0

'post-receive에서 받으십시오'는 서버가 푸시 (서버 푸시, 서버 수신)를 받았음을 의미합니다. 그 때문에 수신 후크는 서버 측에 있습니다. – rastasheep

관련 문제