Git 구성 재사용

이 게시물은 macOS 사용자의 관점에서 작성되었습니다.

대행사에서 일하는 것은 특전이 있습니다. 다양하고 흥미로운 사람들, 헛소리는 줄이고 더 많은 일을 하고, 다른 고객을 위해 일하는 것 등. 하지만 특히 "다른 고객을 위한 작업"부분에는 문제가 있을 수 있습니다.

하나는 일부 고객의 경우 고객이 제공한 외부 이메일 주소를 사용해야 한다는 것입니다. 통신뿐만 아니라 로그인 및 Git 커밋과 같은 보다 기술적인 작업에도 사용됩니다.
Git의 다양한 구성을 쉽고 편안하게 관리할 수 있는 깔끔한 트릭을 보여드리고 싶습니다.

그 상황



Git은 전역에서 일부 메타 정보를 관리합니다.gitconfig. 여기 내 것이 있습니다.



전역 사용자 구성은 [user] 아래에 있으며 Git의 이름과 이메일을 설정합니다. 이를 재정의하는 로컬 구성이 없는 경우 내 모든 Git 프로젝트에 적용됩니다.

가상의 회사인 "acme labs"에서 고객이 제공한 외부 계정을 사용해야 한다고 상상해 봅시다. 조심하지 않으면 다음과 같은 커밋으로 끝납니다.


쉬운 수정



로컬 구성으로 재정의하지 않는 경우 모든 프로젝트에 적용되는 전역 Git 구성이 있다는 것을 알고 계실 것입니다.~/.gitconfig 아래에 있습니다. 이 파일을 편집하거나 git config 옵션이 있는 --global 명령을 사용하여 해당 값을 설정할 수 있습니다.
사용자 및 이메일의 경우 다음과 같습니다.
git config --global add user.name “Stefan Antal”git config --global add user.email “[email protected]
이러한 방식으로 --global 플래그를 제거하여 로컬 Git 구성 옵션을 설정할 수도 있습니다.
~/code/acme-labs 폴더가 있는 프로젝트 폴더로 전환하고 .git 플래그 없이 명령을 실행합니다.
--globalgit config add user.name “Stefan Antal (external)”
이렇게 하면 git config add user.email “[email protected]에 프로젝트별 사용자 및 이메일이 추가됩니다.
이 파일에 있는 모든 값은 이 프로젝트의 전역 값보다 우선합니다.

이것이 필요한 전부라면 완벽하게 괜찮습니다.
하지만 일부 값을 여러 번 재사용하려면 어떻게 해야 할까요?

정교한 수정



모든 종류의 위치에 있는 파일을 Git 구성에 포함할 수 있습니다. 나는 .git/config 와 같은 일반적인 장소에 내 다른 구성 파일을 수집하는 것을 좋아합니다.
~/git-configs/ 폴더 안에 acme-labs(이름은 중요하지 않음)라고 부르는 파일을 생성해 보겠습니다.
별도의 구성이 필요한 각 프로젝트에 대한 구성 파일을 만듭니다.
git-configs의 내용은 다음과 같습니다.



이제 우리는 acme-labs에서 작업할 때 이 구성을 사용하도록 Git에 알려야 합니다.
이를 달성하기 위해 글로벌 Git 구성 내에서 acme-labs 옵션을 사용합니다.

다음 콘텐츠를 추가하여 전역 Git 구성( includeif )을 수정합니다.

[includeIf "gitdir:~/code/acme-labs/"]
        path = ~/git-configs/acme-labs
~/.gitconfig는 로컬gitdir 폴더가 있는 폴더를 가리킵니다..git는 acme-labs용으로 새로 만든 Git 구성을 가리킵니다.

결과는 다음과 같아야 합니다.



Git은 path 내부에서 작업할 때 인식하고 ~/code/acme-labs에서 정의한 값을 사용합니다.

이러한 방식으로 전역 Git 구성 내에서 프로젝트당 새 항목~/git-configs/acme-labs을 추가하고 구성 파일 중 하나에 연결하기만 하면 됩니다.

이제 다음 커밋은 다음과 같습니다.



그러나 includeif 로 추가한 일반 로컬 Git 구성도 있는 경우 git config add 구성 대신 사용됩니다.

좋은 웹페이지 즐겨찾기