3P by neo 5일전 | favorite | 댓글 1개

내 Git 정체성을 설정하는 방법

  • 소개: 이 글은 Git 설정을 통해 작업 환경에 맞는 정체성을 관리하는 방법을 설명함. 필자는 includeIf를 사용하여 특정 조건에 따라 파일을 포함하는 방법을 발견했음.

  • Git 설정:

    • includeIf를 사용하여 특정 디렉토리에 따라 다른 Git 설정 파일을 포함할 수 있음.
    • 예를 들어, ~/code 아래의 Git 디렉토리에는 ~/.config/git/personal을, ~/work 아래에는 ~/.config/git/work을 포함하도록 설정할 수 있음.
    • 각 파일에는 사용자 이름, 이메일, 서명 키 등의 정보가 포함됨.
  • 리모트 URL 기반 설정:

    • hasconfig:remote.*.url을 사용하여 특정 리모트 URL이 존재할 때 Git 설정을 조건부로 구성할 수 있음.
    • 예를 들어, github.com:orgname/**와 같은 리모트가 있는 디렉토리에서는 ~/.config/git/config-gh-org을 사용하도록 설정할 수 있음.
  • SSH 키 설정:

    • SSH 키를 설정하여 리모트에 pullpush를 할 수 있도록 해야 함.
    • ~/.ssh/config 파일에서 HostIdentityFile을 설정하여 각 리모트에 맞는 SSH 키를 사용할 수 있음.
    • 같은 Hostname에 대해 다른 IdentityFile을 사용하려면 Host 값을 다르게 설정해야 함.
  • Git config에서 SSH 설정 사용:

    • 특정 리포지토리에 대해 다른 SSH 설정을 사용하려면 Git config에서 insteadOf를 사용하여 URL을 대체할 수 있음.
    • 예를 들어, github.com:orgname 대신 gh-work:orgname을 사용하여 올바른 SSH 설정을 적용할 수 있음.
  • 고려사항:

    • 이 접근 방식에 문제가 있을 수 있으며, 더 나은 방법이 있는지에 대한 피드백을 받고 싶음.

참고 자료

  • 여러 Git 정체성을 관리하는 방법에 대한 다양한 블로그 글을 참고함.
Hacker News 의견
  • gh-work라는 이름을 사용하여 SSH 및 Git 신원을 구분하는 방법을 설명함. gh-work로 클론한 모든 Git 저장소는 gh-work.inc의 설정을 따르게 되어 SSH 구성과 동일한 서명 키를 사용함

  • 한 스타트업에서 일할 때, 매일 신원을 동화 같은 이름으로 바꾸는 동료가 있었음. 이는 버전 관리 포렌식에 도움이 되지 않았지만, 신원 구성에 무엇이든 넣을 수 있다는 점을 상기시키려는 의도였을 수 있음

  • .gitconfig에 신원에 대한 별칭을 추가하여, 저장소를 초기화하거나 클론한 후 git config-company 또는 git config-personal 명령어를 실행하는 방법을 제안함

  • ~/.ssh/config를 수정할 필요 없이, ~/.gitconfig에 SSH 명령어를 설정하여 서브모듈을 쉽게 관리할 수 있는 방법을 설명함

  • includeIfhasconfig:remote를 사용하여 디렉토리별로 Git 설정을 관리하는 방법을 소개함. 이는 저장소를 클론할 때도 유용함

  • 컨설턴트에게는 업무용으로 별도의 기기나 최소한 별도의 OS 사용자를 사용할 것을 강력히 권장함. 개인 기기를 업무에 사용하는 것은 위험할 수 있음

  • NixOS와 home-manager를 사용하여 Git 설정을 관리하는 방법을 설명함. hasconfig:remote 조건을 사용하여 특정 이메일을 설정함

  • SSH 복잡성을 ~/.ssh에 유지하고, 고객이나 프로젝트별로 별도의 설정을 포함하는 방법을 설명함. GitHub와 같은 호스트 이름이 없는 경우에는 별칭을 할당함

  • gitdir을 사용하여 업무와 개인 작업을 분리하는 방법을 설명함. hasconfig:remote는 게임 체인저임

  • 업무와 개인 저장소를 ~/dev~/src로 분리하여 관리하는 방법을 설명함. 각 경로에 따라 다른 Git 설정 파일을 포함함

  • 개인 및 업무용 .gitconfig 파일을 설정하여 이메일과 서명 키를 다르게 설정하는 방법을 설명함. GPG 서명을 활성화하여 커밋에 서명함