git의 후크에 대한 심볼릭 링크
나는 나만의 커스텀 post-merge hook을 작성했고, 이제는 나의 메인 프로젝트 폴더에 "hooks"디렉토리를 추가했습니다. .git / hooks로 변경하여 누군가 파일을 변경할 때마다 한 폴더에서 다른 폴더로 파일을 복사 할 필요가 없으므로 시도했습니다.
ln -s -f hooks/post-merge .git/hooks/post-merge
그러나 작동하지 않는 것 같습니다. 이유가 무엇입니까? "ln hooks / post-merge .git / hooks / post-merge"는 잘 작동하지만 하드 링크를 만드는 것은 copyin과 동일합니다 ....
잘못된 경로를 사용했습니다. 다음과 같아야합니다.
ln -s -f ../../hooks/post-merge .git/hooks/post-merge
심볼릭 링크를 사용할 수 있지만 다음을 사용하여 git 설정에서 프로젝트의 후크 폴더를 변경할 수도 있습니다.
git config core.hooksPath hooks/
기본적으로 로컬이므로 다른 프로젝트의 git 후크를 망치지 않습니다. 이 저장소의 모든 후크에서 작동하므로 후크가 두 개 이상인 경우 특히 유용합니다.
.git/hooks/
팀과 공유하고 싶지 않은 사용자 지정 후크가 이미있는 경우 hooks /에 추가하고 .gitignore
공유되지 않도록 추가 할 수 있습니다 .
연결하기 전에 디렉토리 변경
cd /path/to/project-repo/.git/hooks
ln -s -f ../../hooks/post-merge ./post-merge
왜 그냥 cp ./hooks/* .git / hooks /
이것은 Mac OS에서 나를 위해 일했습니다.
경로 계산은 심볼릭 링크를 기준으로 수행됩니다. 예를 들어 이해합시다.
ln -s path/to/file symlink/file
여기서 파일 경로는 실제로 심볼릭 링크 경로의 상대 경로 여야합니다.
시스템은 실제로 파일 경로를 계산합니다 symlink/path/path/to/file
. 위의 명령은
ln -s ../path/to/file symlink/path
폴더 구조 로 다시 작성해야합니다 .
/ code
------ 심볼릭 링크 / 파일
------ 경로 / 대상 / 파일
Michael Cihar의 의견을 활용하여 이러한 심볼릭 링크를 생성하기 위해 작성한 bash 스크립트의 예가 여기에 있습니다. 이 스크립트는 프로젝트 루트에있는 git_hooks / dir에 있습니다. 내 .git / 폴더도 동일한 디렉토리 수준에 있습니다.
#!/usr/bin/env bash
pwd=$(pwd);
# Script is designed to be ran from git_hooks/ dir
if [[ "$pwd" == *"git_hooks"* ]]; then
files=$(ls | grep -v -e '.*\.');
while read -r file; do
ln -s ../../git_hooks/$file ../.git/hooks/
echo "Linked $file -> ../.git/hooks/$file"
done <<< "$files";
else
echo "";
echo "ERROR: ";
echo "You must be within the git_hooks/ dir to run this command";
exit 1;
fi
내 스크립트는 실제 git_hooks / 디렉토리 내에서 실행되어야합니다. 원하는 경우 다르게 작동하도록 수정할 수 있습니다.
이 스크립트는 git_hooks / 디렉토리 내에서 파일 확장자가 접미사가없는 모든 파일을 심볼릭 링크합니다. 이 디렉토리에 README.txt와이 스크립트 (symlink.sh라는 이름)가 있습니다. 모든 실제 git 후크는 'pre-commit', 'pre-push'등으로 명명되어 심볼릭 링크됩니다.
참고 URL : https://stackoverflow.com/questions/4592838/symbolic-link-to-a-hook-in-git
'Programing' 카테고리의 다른 글
PHP에서 upload_max_filesize 변경 (0) | 2020.10.12 |
---|---|
Python을 사용하여 SSH를 사용하는 가장 간단한 방법은 무엇입니까? (0) | 2020.10.12 |
MVC3의 HTML.ActionLink에 클래스를 추가 할 수 있습니까? (0) | 2020.10.12 |
MS-DOS 변수를 정의 해제하는 방법은 무엇입니까? (0) | 2020.10.12 |
tar.gz 파일 압축 해제 (0) | 2020.10.12 |