카테고리 없음

Git 설정: 시스템, 글로벌, 로컬의 차이

forSilver 2025. 3. 12. 15:40
반응형

Git 설정: 시스템, 글로벌, 로컬의 차이

Git에서는 설정 파일을 세 가지 레벨(시스템, 글로벌, 로컬)로 관리합니다. 각 레벨은 설정이 적용되는 범위가 다릅니다.


1. 시스템 설정 (System)

  • 적용 범위: 컴퓨터에 있는 모든 사용자와 모든 저장소에 적용됨
  • 설정 파일 위치:
    • Windows: C:\Program Files\Git\etc\gitconfig
    • Linux/macOS: /etc/gitconfig
  • 확인 방법:
    git config --system --list
    
  • 변경 방법:
    git config --system user.name "공용 사용자명"
    git config --system user.email "공용 이메일"
    
  • 특징:
    • 시스템 전체에 영향을 미침.
    • 모든 사용자와 모든 저장소가 이 설정을 기본값으로 사용.
    • 일반적으로 관리자 권한이 필요하여 변경이 번거로움.

2. 글로벌 설정 (Global)

  • 적용 범위: 현재 사용자에게만 적용되며, 사용자가 관리하는 모든 저장소에 공통 적용됨
  • 설정 파일 위치:
    • Windows: C:\Users\사용자이름\.gitconfig
    • Linux/macOS: ~/.gitconfig
  • 확인 방법:
    git config --global --list
    
  • 변경 방법:
    git config --global user.name "개인 사용자명"
    git config --global user.email "개인 이메일"
    
  • 특징:
    • 특정 사용자 계정에만 적용.
    • 사용자가 작업하는 모든 Git 저장소에서 기본적으로 적용됨.
    • 시스템 설정보다 우선순위가 높음.

3. 로컬 설정 (Local)

  • 적용 범위: 특정 Git 저장소(프로젝트)에서만 적용됨
  • 설정 파일 위치:
    • 프로젝트 내 .git/config (각 프로젝트마다 개별 존재)
  • 확인 방법:
    git config --local --list
    
  • 변경 방법:
    git config --local user.name "프로젝트별 사용자명"
    git config --local user.email "프로젝트별 이메일"
    
  • 특징:
    • 특정 프로젝트에서만 설정이 적용됨.
    • 같은 사용자라도 프로젝트마다 다른 설정을 사용할 수 있음.
    • 로컬 설정이 글로벌/시스템 설정보다 우선됨.

로컬에서 확인한 config


설정 적용 우선순위

Git은 설정을 적용할 때 로컬 > 글로벌 > 시스템 순서로 우선 적용합니다.

설정 레벨 적용 범위 우선순위

로컬(Local) 특정 Git 프로젝트 1 (최우선)
글로벌(Global) 현재 사용자 계정의 모든 Git 프로젝트 2
시스템(System) 컴퓨터의 모든 사용자와 모든 프로젝트 3 (가장 낮음)

예를 들어:

  1. 특정 프로젝트에서 git config --local user.name "프로젝트 사용자"를 설정했다면, 이 프로젝트에서는 글로벌/시스템 설정보다 이 값이 적용됨.
  2. 로컬 설정이 없을 경우, 글로벌 설정이 사용됨.
  3. 글로벌 설정이 없으면, 시스템 설정이 기본값으로 사용됨.

실제 활용 예시

1) 모든 프로젝트에서 같은 사용자 이름과 이메일을 사용하려면?

git config --global user.name "홍길동"
git config --global user.email "hong@example.com"

→ 모든 프로젝트에서 기본적으로 이 설정을 사용함.

2) 특정 프로젝트에서만 다른 이름과 이메일을 사용하려면?

cd /path/to/project
git config --local user.name "프로젝트별 이름"
git config --local user.email "project@example.com"

→ 해당 프로젝트에서만 설정이 적용됨.

3) 시스템 전체에서 기본값을 설정하려면?

git config --system core.editor "vim"

→ 모든 사용자와 모든 Git 저장소에서 기본 편집기를 vim으로 설정함.


결론

  • 시스템 설정: 컴퓨터 전체에 적용 (거의 사용하지 않음).
  • 글로벌 설정: 특정 사용자에게 적용 (일반적으로 사용됨).
  • 로컬 설정: 특정 프로젝트에만 적용 (우선순위 가장 높음).

보통 글로벌 설정을 기본으로 사용하고, 특정 프로젝트에서만 로컬 설정을 추가하는 방식이 일반적입니다.