저장소의 일부로 git 구성 저장


147

여기에 설명 된 것처럼 체크 아웃 중에 파일을 맹 글링하기 위해 필터를 사용하고 있습니다 . 이제 문제는 필터 정의가 로컬 구성 파일에만 저장된다는 것입니다.

$ cat .git/config
....
[filter "dater"]
        smudge = /home/.../expand_date
        clean = perl -pe \"s/\\\\\\$Date[^\\\\\\$]*\\\\\\$/\\\\\\$Date\\\\\\$/\"

동료가이 Date확장의 이점을 누리려면 필터 정의를 복사해야합니다. 그리고 그것을 바꾸면 그들에게 알려야합니다.

이 필터 정의 부분을 .git/config리포지토리에 저장하고 git에서 사용할 수 있습니까?


이 링크 는 팀 전체 구성을 자동으로 공유하는 데 유용 할 수 있습니다.
mljrg

답변:


163

지원되는 .gitconfig파일 범위는 3 가지 --system, --global, --local입니다. 사용자 정의 구성 파일을 작성하여 지원되는 파일 중 하나에 포함시킬 수도 있습니다.

귀하의 요구에 맞는 맞춤 -올바른 선택입니다. 필터를 작성하는 대신 저장소 루트 .git/config.gitconfig파일로 저장해야 합니다.

your-repo/
│
├── .git/
│   ├── config
│
├── .gitconfig
│

.gitconfig필터를 사용하여를 작성하고 변경 사항을 커미트하십시오. 그러면 동료는 항상 업데이트를 유지하지만 수동으로 포함해야합니다. 보안 취약점을 생성하기 때문에 git 단독으로 사용자 지정 구성 파일을 자동으로 포함시킬 수 없습니다 .

단일 저장소에이 구성을 적용하려면 각 사용자가 다음 명령을 실행해야합니다 your-repo/.

git config --local include.path ../.gitconfig

사용자 정의에 개인 정보를 저장하지 않도록주의 .gitconfig처럼 user.*, 글로벌 사람들을 계속 .gitconfig.


40
나는 REPO의 포함 할 필요가 있음을 가능한 각 사용자에게 통지 피하려고 .gitconfig자신의를 ~/.gitconfig. 아무도 그것을 기억하지 못할 것입니다. 항상이 REPO의 읽기에 자식을 만들 수있는 방법이 있습니까 .gitconfig.
Zaar Hai

9
@ZaarHai : 아니오라고 생각합니다. 위험하기 때문입니다. (예를 들어, 홈 디렉토리의 내용을 내보내는 것과 같이 "흥미로운"것으로 명령의 별칭을 지정하는 저장소를 복제한다고 상상해보십시오. 당신은 같은 것을 가지고있는 경우에 configure스크립트 나 사용자가 실행해야 유사한, 당신은 포함이 세트가 (나에 사용자에게 메시지를 표시) 할 수있다.
Hasturkun

4
@HenryBlyth에 --file옵션 이있는 것 같습니다. git config그런 다음 리포지토리 를 가리 키도록 설정할 수 있습니다 .gitconfig. 아직 테스트하지는 않았지만 귀하의 질문에 대답하는 것 같습니다. 문서에서 읽을 수 있습니다. git-scm.com/docs/git-config#FILES
theUnknown777

12
Git이 조직 외부에 배포되어 코드를 작성한다고 가정하지 않은 경우 보안 위협에주의해야합니다. 때때로 시스템 유용성과 자동화가 보안보다 우선 순위가 높습니다.
Geordie

2
팀에서 일상적으로 사용하는 작업 (작업 러너를 사용한다고 가정)에 명령을 숨길 수 있습니다.
Mieszko

19

.gitconfig기본적으로 git 저장소에서 파일을 사용할 수는 없지만 git 구성의 버전이 지정되도록 링크 할 수 있습니다.

다음과 같이 링크 할 수 있습니다.

[include]
  path = ../.gitconfig

나는 간단한 만든 스크립트 gitconfig.sh (복사보다 훨씬 빠르게) 당신을 위해 그것을 할 + 간단한 .gitconfig당신이 원하는 경우,이 REPO에 좀 걸릴 수 있도록 파일을 https://github.com/HoBi/dotfiles을 .


편집 : 파일을 삭제했지만 여기에서 찾을 수 있습니다 https://github.com/tenhobi/dotfiles/blob/7e4376c006c508370b82bc7bd37173fab51dbd01/git/.gitconfig.sh


@XmlmXmlmX 수정되었습니다. :-)
tenhobi

@HoBi 이제 GitHub에서 gitconfig.sh를 삭제 한 것 같습니다. 더 이상 원하지 않는 이유는 무엇입니까?
초보자 C

1
@NoviceC 나중에 원한다면 파일이있다. github.com/HoBi/dotfiles/blob/… 나는 당신이 git 프로젝트에 .gitconfig 또는 gitconfig.sh를 저장해서는 안된다는 것을 믿었습니다. 이것은 개인 설정이며 ~/폴더 의 전역 설정에 저장해야 합니다. 그리고 모든 사람이 다른 요구를 가질 수 있으므로 왜 git repo의 구성으로 모든 사람을 귀찮게합니까? :-)
tenhobi

@tenhobi 모든 사람들이 프로젝트에서 공유 할 수있는 구성이 있습니다. 나는 프로젝트 코딩 흐름, 별칭 그렇게 할 것입니다
Z. Khullah에게
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.