소개
이 랩에서는 구성된 Git 사용자 이메일 주소를 확인하는 방법을 배우게 됩니다. Git 이 이 정보를 저장하고 검색하는 방법을 살펴보고, 전역 (global) 및 로컬 (local) 구성 간의 차이점을 이해할 것입니다.
현재 이메일 설정을 표시하고, 전역 구성을 명시적으로 확인하며, 이메일이 설정되지 않은 경우 Git 의 동작을 확인하는 명령을 실행합니다. 이 실습 경험을 통해 Git 이 커밋 (commit) 을 어떻게 속성 (attribute) 하는지, 그리고 서로 다른 저장소 (repository) 에서 자신의 신원을 관리하는 방법을 이해하는 데 도움이 될 것입니다.
git config user.email 실행
이 단계에서는 Git 이 이메일 주소를 저장하는 방법을 살펴보겠습니다. Git 은 커밋 기록에서 사용자를 식별하기 위해 이메일 주소를 사용합니다. 이는 누가 어떤 변경을 했는지 추적하는 데 중요하며, 특히 다른 사람들과 협업할 때 중요합니다.
이전 설정 섹션에서 전역 (global) 이메일 주소를 구성했습니다. Git 이 이 정보를 어떻게 검색하는지 살펴보겠습니다.
터미널을 열고 다음 명령을 실행합니다.
git config user.email
전역적으로 구성된 이메일 주소가 표시되어야 합니다.
jane.doe@example.com
이 명령은 Git 에게 user.email 구성 설정의 값을 표시하도록 지시합니다. --global 또는 --local을 지정하지 않고 git config를 실행하면 Git 은 특정 순서로 구성을 확인합니다. 먼저 로컬 (repository 별), 다음으로 전역 (사용자별), 마지막으로 시스템 전체입니다. 지금까지 전역 구성만 설정했으므로 전역 값이 표시됩니다.
이메일과 같은 구성 설정을 Git 이 저장하고 검색하는 방법을 이해하는 것은 Git 환경을 사용자 정의하고 커밋이 올바르게 사용자에게 귀속되도록 하는 데 중요합니다.
전역 vs 로컬 이메일 설정 확인
이 단계에서는 user.email 설정을 중심으로 전역 및 로컬 Git 구성 간의 차이점을 살펴보겠습니다.
Git 을 사용하면 다양한 수준에서 설정을 구성할 수 있습니다.
- 시스템 수준 (System level): 시스템의 모든 사용자에게 적용됩니다.
- 전역 수준 (Global level): 시스템의 특정 사용자에게 적용됩니다 (이것이 우리가 설정에서 구성한 것입니다).
- 로컬 수준 (Local level): 현재 Git 저장소에만 적용됩니다.
로컬 구성은 전역 구성을 재정의하고, 전역 구성은 시스템 구성을 재정의합니다.
먼저 --global 플래그를 사용하여 전역 이메일 구성을 명시적으로 확인해 보겠습니다.
git config --global user.email
이전과 동일한 이메일 주소가 표시되어야 합니다.
jane.doe@example.com
이제 이전 랩에서 생성한 my-time-machine 저장소에 대해 로컬 이메일 주소를 설정해 보겠습니다. ~/project/my-time-machine 디렉토리 안에 있는지 확인하십시오.
cd ~/project/my-time-machine
git config user.email "local.user@example.com"
이 명령은 현재 저장소 (my-time-machine) 에 대해서만 user.email을 설정합니다. 이번에는 --global 플래그를 사용하지 않았다는 점에 유의하십시오.
이제 my-time-machine 디렉토리 안에 있는 상태에서 플래그 없이 user.email을 다시 확인해 보겠습니다.
git config user.email
무엇이 보이나요?
local.user@example.com
로컬 이메일 주소가 표시됩니다! 이는 이 특정 저장소 내에서 로컬 구성이 전역 구성보다 우선한다는 것을 보여줍니다.
my-time-machine 디렉토리 밖으로 이동하여 다시 git config user.email을 실행하면 해당 저장소 외부에는 로컬 구성이 없으므로 전역 이메일 주소가 표시됩니다.
로컬 구성을 설정하는 이러한 기능은 매우 유용합니다. 예를 들어, 개인 프로젝트에는 개인 이메일 (전역 구성) 을 사용하고, 직무 관련 프로젝트에는 직장 이메일 (해당 작업 프로젝트 저장소 내의 로컬 구성) 을 사용할 수 있습니다.
이메일 설정 해제 후 테스트
이 단계에서는 Git 이 로컬 수준에서 user.email을 구성하지 않았지만 전역 수준에서는 구성한 경우 어떻게 되는지 살펴보겠습니다. 이는 구성 우선 순위의 개념을 강화합니다.
먼저, my-time-machine 디렉토리에 있는지 확인하겠습니다.
cd ~/project/my-time-machine
이제 --unset 플래그를 사용하여 로컬 user.email 구성을 해제합니다.
git config --unset user.email
이 명령은 로컬 저장소 구성에서 user.email 설정을 제거합니다. 전역 구성에는 영향을 미치지 않습니다.
로컬 구성을 검색하여 로컬 구성이 사라졌는지 확인해 보겠습니다.
git config --local user.email
로컬 수준에서 구성 키를 찾을 수 없다는 오류 메시지가 표시되어야 합니다.
error: key 'user.email' not found
이제 my-time-machine 디렉토리 안에 있는 상태에서 플래그 없이 user.email을 다시 확인해 보겠습니다.
git config user.email
무엇이 표시될 것으로 예상하십니까? 로컬 구성이 설정되지 않았으므로 Git 은 전역 구성으로 되돌아가야 합니다.
jane.doe@example.com
예상대로, 이제 다시 전역 이메일 주소가 표시됩니다! 이는 로컬 구성이 없는 경우 Git 이 전역 구성을 사용함을 확인합니다.
이 단계는 Git 구성의 계층 구조를 보여줍니다. Git 은 먼저 로컬 수준에서 설정을 찾습니다. 거기에서 찾을 수 없으면 전역 수준을 확인한 다음 시스템 수준을 확인합니다. 이를 통해 다양한 프로젝트의 요구 사항에 따라 유연한 구성을 수행할 수 있습니다.
요약
이 랩에서는 git config user.email 명령을 사용하여 구성된 Git 사용자 이메일 주소를 확인하는 방법을 배웠습니다. Git 이 이 정보를 검색하는 방법, 즉 로컬, 전역, 시스템 구성 순으로 우선 순위를 지정하는 방법을 살펴보았습니다. 또한 --global 플래그를 사용하여 전역 이메일 구성을 명시적으로 확인하고, 전역 및 로컬 구성 수준과 해당 우선 순위 간의 차이점을 이해했습니다.



