git 설정 훅스 갈고리

2485 단어

github는 hooks를 설정할 수 있습니다. 보십시오: 설정webhooks & services에서, 설정Just the push event.에서, 서버에 요청을 한 다음에 해당하는 처리를 할 수 있습니다.
https://help.github.com/articles/creating-webhooks
 
문서 보기: man githooks
NAME githooks - Hooks used by Git
SYNOPSIS $GIT_DIR/hooks/*
DESCRIPTION Hooks are little scripts you can place in $GIT_DIR/hooks directory to trigger action at certain points. When git init is run, a handful of example hooks are copied into the hooks directory of the new repository, but by default they are all disabled. To enable a hook, rename it by removing its .sample suffix.
Note It is also a requirement for a given hook to be executable. However - in a freshly initialized repository - the .sample files are executable by default.
This document describes the currently defined hooks.
 

git hook 자동 배치 코드


만약 당신의 프로젝트도 이 서버에 달린다면 자동 배치 코드는 매우 간단합니다. 예를 들어 당신의 온라인 서비스 코드는/var/www/demo 폴더에 있습니다.
/var/www/demo도 쓰기 권한이 있어야 합니다.
먼저 코드 라이브러리를 초기화합니다.
$ git clone /opt/git/gitdemo /var/www/demo 

그리고 당신은 git pull를 통해 코드를 업데이트할 수 있습니다.
물론 이것은 수동입니다. 제가 원하는 것은 로컬에서 업데이트를 제출한 후에 서버가 자동으로gitpull 코드를 최신 코드로 전송할 수 있기 때문에 우리는 git hook를 빌려야 합니다.
/opt/git/gitdemo 폴더에 들어가면 발견할 수 있습니다.git/hook 폴더가 안에 있습니다. hook에 들어가면 샘플 스크립트가 많습니다. 여기에post-update만 사용하면 됩니다.
$ mv post-update.sample post-update $ vim post-update 

안에 사실 셸 스크립트가 있는 것을 볼 수 있습니다. 당신이 해야 할 일은gitpull을 쓰는 것입니다.사용자가 제출하면post-update 스크립트를 호출합니다.
예를 들어 내가 서버의 코드 라이브러리를 업데이트한 후에 대응하는 서비스 코드도 업데이트(pull 조작)를 요구하면bare 창고의hooks에post-receive에 다음과 같은 내용을 추가하면 된다
#!/bin/sh unset $(git rev-parse --local-env-vars) cd WEB_DIR git pull 

이 스크립트들은 분명히 많은 일을 할 수 있다. 네가 원한다면, 각 스크립트가 언제 호출되는지 알아야 한다. 구글. 
주: 서버에서git 사용자와 관련된 폴더와 파일,
$ chown -Rh git:git/your/git/dirs
 
별문:
최고의 도구git hook
post-update.sample에서 post-update로 이름 변경
그리고 간단한 코드를 몇 줄 넣으면 당신의 요구를 실현할 수 있습니다
예:
gitdir=/****
cd $gitdir
git checkout 대응 지점
git pull
end...

좋은 웹페이지 즐겨찾기