당기기 위한 깃 후크가 있습니까?
실행할 때마다 프로젝트에 대해 몇 가지 작업(*.mo 메시지 파일 가져오기 준비)을 수행해야 합니다.git pull이 용도로 사용할 수 있는 적당한 깃 후크가 있습니까?
맨 페이지는 후크의 전체 목록입니다.만약 그것이 거기에 없다면, 그것은 존재하지 않습니다.
즉, 병합 후 후크가 있으며 모든 풀에는 병합이 포함되지만 모든 병합이 풀은 아닙니다.병합 후 실행되며 결과에 영향을 미치지 않습니다.충돌이 발생한 경우에는 실행되지 않습니다. 실제로 문제가 발생하면 사후 커밋 후크로 이를 선택하거나 수동으로 호출해야 합니다.
post-merge사용 방법에 대한 자세한 내용은 https://git-scm.com/docs/githooks#_post_merge 을 참조하십시오.
이 접근법은 저에게 효과가 있습니다.
먼저, 이름이 지정된 파일을 추가합니다.post-merge로./path/to/your_project/.git/hooks/
cd /path/to/your_project/.git/hooks/
touch post-merge
그런 다음 소유권을 <your_project> 폴더와 동일하게 변경합니다.nginx그리고.php-fpm주자), 저의 경우, 저는 사용합니다.www:www
sudo chown www:www post-merge
그런 다음 파일 모드를 775로 변경합니다(그러면 실행 가능).
sudo chmod 775 post-merge
그런 다음 아래의 스니펫을 에 넣습니다.post-merge스니펫을 이해하려면 여기를 참조하십시오(실제로 저입니다).
#!/bin/sh
# default owner user
OWNER="www:www"
# changed file permission
PERMISSION="664"
# web repository directory
REPO_DIR="/www/wwwroot/your_project/"
# remote repository
REMOTE_REPO="origin"
# public branch of the remote repository
REMOTE_REPO_BRANCH="master"
cd $REPO_DIR || exit
unset GIT_DIR
files="$(git diff-tree -r --name-only --no-commit-id HEAD@{1} HEAD)"
for file in $files
do
sudo chown $OWNER $file
sudo chmod $PERMISSION $file
done
exec git-update-server-info
모든 작업이 완료되었습니다. 이제 _project 폴더로 돌아가십시오.
cd /path/to/your_project/
달려.git pull_project 폴더 아래에서 root 또는 sudo로 실행해야 한다는 것을 기억하십시오(나는 sudo를 기억합니다).
sudo git pull
이제 원격 저장소에서 가져온 새 파일을 확인하고 소유권이 다음으로 변경되었는지 확인합니다.www:www(예상대로라면, 새 풀 파일의 소유권이 다음으로 변경되어야 합니다.www:www).
이 접근 방식은 보다 훨씬 좋습니다.sudo chown -R www:www /www/wwwroot/your_project/새 파일의 소유권만 변경할 뿐 모든 것이 변경되는 것은 아니기 때문입니다!예를 들어, 새 파일 2개를 풀었다고 가정하면 전체 폴더의 소유권을 변경하면 시간과 서버 리소스(CPU 사용량, 메모리 사용량 등)가 더 많이 소요되므로 전혀 필요하지 않습니다.
post-merge가 참에 가장 가깝습니다.post-pull다른 답변이 지적하는 것처럼 후크, 그러나 추가하는 것을 고려합니다.post-checkout변경 사항을 확인하려면 후크를 클릭합니다.
이 후크는 워크 트리를 업데이트한 후 git-checkout 또는 git-switch를 실행할 때 호출됩니다.
따라서 작업 복사본이 변경될 때마다 "작업 중인 작업을 전환"하고 팀의 모든 사용자가 작업을 수행했기 때문에 후크가 실행됩니다.
행동이 다른 실질적인 예는 다음과 같습니다.post-merge병합이 없기 때문에 과거로 다시 이동(커밋 체크아웃)할 때 트리거되지 않습니다.
언급URL : https://stackoverflow.com/questions/4185400/is-there-any-git-hook-for-pull
'programing' 카테고리의 다른 글
| MongoDB 컬렉션 내에 포함된 특정 문서를 가져오는 방법은 무엇입니까? (0) | 2023.06.27 |
|---|---|
| EF6 및 SQL Server에서 UniqueKey Violation 예외를 어떻게 탐지할 수 있습니까? (0) | 2023.06.27 |
| 트리거 본문에서 동일한 테이블에 대한 다른 삭제를 포함하는 삭제 후 트리거를 작성하는 방법은 무엇입니까? (0) | 2023.06.27 |
| 반환 매개 변수를 사용하여 최대 절전 모드에서 오라클 함수를 호출하는 방법은 무엇입니까? (0) | 2023.06.27 |
| 새 스레드에서 간단한 코드를 실행하려면 어떻게 해야 합니까? (0) | 2023.06.27 |