글로벌 git Hook

글로벌 git Hook

git repo를 생성하는 모든 방법을 연결할 수 있습니까? 그래서 repo가 ​​복제되고 초기화될 때 스크립트를 실행할 수 있습니다. (폴더 이동/복사 외에 다른 방법이 있나요?)

내 의도는 모든 저장소를 추적하는 것이므로 일부 작업을 실행하기 위해 모든 디렉터리를 살펴볼 필요가 없습니다(주로 git status변경 사항을 커밋하는 것을 잊어버릴 때가 있기 때문입니다 git gc --auto).

답변1

후크는 (현재) 리포지토리별로 독점적으로 구성되므로 리포지토리가 생성되기 전에는 활성 후크가 있을 수 없습니다.

모든 새 저장소에 대해 일부 저장소 특정 설정을 동일하게 초기화하려는 경우 다음을 사용할 수 있습니다.저장소 템플릿 메커니즘.

자신만의 템플릿을 사용하면 다음을 수행할 수 있습니다.

  • 활성화된 후크를 설치합니다(파일 제공 <template‑dir>/hooks/<hook‑name>).
  • <template‑dir>/config( 파일 제공을 통해) 구성 변수를 설정하고
  • <template‑dir>/info/exclude저장소별 제외 규칙 또는 속성을 구성합니다( 또는 파일 제공 <template‑dir/info/attributes>).

디렉토리 에 있는 모든 구성 파일은 .git템플릿에 배치되어 템플릿에서 초기화된 새 저장소에서 해당 파일의 초기 복사본 역할을 할 수 있습니다. 초기 개체와 참조를 제공할 수도 있다고 가정합니다.

사용자 정의 항목으로 구성된 템플릿 디렉토리가 있으면 해당 디렉토리를 찾을 수 있는 위치를 알려주어야 git init합니다 git clone. 이는 --template옵션(Git 0.99.4 이상)을 사용하여 명시적으로 수행하거나 GIT_TEMPLATE_DIR환경 변수(Git 1.5.0 이상)를 사용하여 암시적으로 수행하거나 init.templatedir“global”(사용자별) 또는 "시스템" Git 구성 파일(예: ~/.gitconfig또는 /etc/gitconfig(설치에 따라 다름), Git 1.7.1 이상)

답변2

git repo를 "추적"할 수 없습니다("현재 활성 git repo 목록을 중앙 참조에 요청하는 것처럼).
각 git repo는 서로 독립적입니다.

두 가지 솔루션을 고려할 수 있습니다.

  • Chris의 답변과 같은 git 템플릿 중 하나클라이언트 측 후크처음 사용할 때 일부 "중앙" 파일에 git repo를 등록할 수 있습니다. 그러면 해당 파일은 관련성 있는 파일 이나 원하는 파일을
    만들기 위해 외부 스크립트(git 외부)에 의해 읽혀집니다 .git statusgit gc

  • 모든 git 저장소가 동일한 공통 디렉토리 아래에 선언된 경우 전역 상위 git 저장소를 선언하고 모든 하위 저장소를 다음과 같이 추가할 수 있습니다.서브모듈.
    부터자식1.7.0, git status서브모듈에 커밋되지 않은 변경 사항이 포함된 경우를 알 수 있습니다.

관련 정보