Git을 설치한 직후 첫 커밋을 시도하면 “Please tell me who you are"라는 오류를 만나게 된다. Git이 모든 커밋에 작성자 이름과 이메일을 기록하도록 요구하기 때문인데, 이 설정을 어디에(시스템 전체·사용자 전체·저장소 하나) 해두느냐에 따라 나중에 여러 프로젝트를 오갈 때 결과가 달라진다. 이 장은 설치 방법과 git config의 우선순위를 다룬다.
개요
Git 설치 방법은 운영체제마다 다르며, 상황에 따라 권장되는 방식도 갈린다.
| 운영체제 | 설치 방법 |
|---|---|
| Windows | WinGet, 공식 설치 프로그램(Git for Windows), Chocolatey |
| macOS | Xcode Command Line Tools, Homebrew |
| Linux(Debian/Ubuntu 계열) | APT 패키지 관리자(apt) |
| Linux(RHEL/Fedora 계열) | DNF/YUM 패키지 관리자 |
Windows에서는 WinGet이 가장 간단하다.
| |
macOS는 Homebrew를 쓰거나, 터미널에서 git 명령을 처음 실행하면 Xcode Command Line Tools 설치를 안내하는 대화상자가 뜬다.
| |
Debian·Ubuntu 계열 Linux는 APT로 설치한다.
| |
설치가 끝나면 버전을 확인해 정상적으로 PATH에 등록됐는지 검증한다.
| |
기본 개념
Git 설정은 git config 명령으로 관리하며, 설정값은 적용 범위에 따라 3단계로 나뉘고 좁은 범위가 넓은 범위를 덮어쓴다.
| 단계 | 옵션 | 저장 위치 | 적용 범위 |
|---|---|---|---|
| system | --system | Git 설치 디렉터리의 gitconfig | 해당 컴퓨터의 모든 사용자 |
| global | --global | 사용자 홈 디렉터리의 ~/.gitconfig | 해당 사용자의 모든 저장소 |
| local | (옵션 없음, 기본값) | 저장소 안의 .git/config | 해당 저장소 하나만 |
이 우선순위 때문에 회사용 이메일과 개인용 이메일을 프로젝트별로 다르게 쓰고 싶다면, 전역 설정에는 기본값(개인 이메일)을 두고 특정 저장소 안에서만 --local로 다시 설정하면 된다. 지금 어떤 값이 어느 단계에서 왔는지 확인하려면 --show-origin 옵션을 함께 쓴다.
| |
종류/세부
자주 설정하는 항목
이름·이메일 외에도 실무에서 자주 바꾸는 설정이 몇 가지 있다.
| |
core.autocrlf는 Windows·macOS·Linux 팀원이 섞인 저장소에서 줄바꿈 문자(CRLF vs LF)로 인한 불필요한 diff를 줄이는 데 쓴다. Windows에서는 true(체크아웃 시 CRLF로 변환, 커밋 시 LF로 저장), macOS·Linux에서는 input(커밋 시에만 LF로 정규화)이 일반적으로 권장되는 값이다.
alias로 자주 쓰는 명령 줄이기
git config의 alias.* 네임스페이스를 쓰면 자주 쓰는 긴 명령을 짧은 이름으로 줄일 수 있다.
| |
이렇게 설정하면 git st가 git status와 동일하게 동작한다. alias는 .gitconfig 파일에 저장되므로, 여러 컴퓨터에서 같은 alias 세트를 쓰고 싶다면 .gitconfig 파일 자체를 dotfiles 저장소로 관리하는 방법도 흔히 쓰인다.
주의사항·함정
--global 없이 설정하면 저장소 하나에만 적용된다: 옵션 없이 git config user.name "..."을 실행하면 현재 디렉터리가 Git 저장소일 때 .git/config(local)에 저장된다. 새 컴퓨터에서 다른 프로젝트를 클론했는데 이름·이메일이 비어 있다면, 이전에 --global 없이 설정했을 가능성이 크다.
회사·개인 이메일 혼용 실수: --global로 회사 이메일을 설정해두고 개인 오픈소스 프로젝트에 커밋하면, 공개 저장소의 커밋 이력에 회사 이메일이 그대로 노출된다. 이미 커밋된 이력의 이메일을 바꾸려면 단순 설정 변경으로는 부족하고 히스토리 재작성이 필요하므로(27장의 인터랙티브 리베이스), 애초에 프로젝트 성격에 맞는 이메일을 --local로 먼저 확인하는 습관이 필요하다.
core.autocrlf 설정 없이 팀에 합류하면 불필요한 diff가 쌓인다: 이미 LF로 통일된 저장소에 core.autocrlf 설정이 없는 Windows 환경에서 파일을 저장하면, 편집기 설정에 따라 줄바꿈이 CRLF로 바뀌어 실제 코드 변경이 없는데도 파일 전체가 변경된 것처럼 diff에 나타날 수 있다. 저장소에 .gitattributes(40장)로 줄바꿈 규칙이 명시되어 있다면 그 규칙을 우선 따른다.
![Featured image of post [Git] 02. Git 설치와 최초 설정 — git config](/post/git/git-install-config-user-setup/wordcloud_hu_9861ed9319b9f99c.webp)
![[Git] 00. 과정 개요와 커리큘럼](/post/git/getting-started-git/wordcloud_hu_35c98b09a46a4d09.webp)
![[Git] 01. Git 소개 — 분산 버전 관리 시스템과 탄생 배경](/post/git/git-introduction-distributed-version-control-system/wordcloud_hu_d9cd96bc4174ea5e.webp)
![[Git] 02. Git 설치와 최초 설정 — git config](/post/git/git-install-config-user-setup/wordcloud_hu_dce78d823c777963.webp)
![[Git] 03. git init과 .git 디렉터리 구조](/post/git/git-init-dot-git-directory-structure/wordcloud_hu_690d69390b8cf70f.webp)
![[Git] 04. 작업 트리·스테이징 영역·저장소 3단계 모델](/post/git/git-three-stage-model-working-tree-staging-repository/wordcloud_hu_59d756dc08aaa5c.webp)
![[Git] 40. .gitattributes](/post/git/gitattributes-file-path-specific-behavior/wordcloud_hu_39f375d7013d67b9.webp)
![[Git] .gitignore 즉시 반영 안 될 때 - 캐시 삭제 및 재적용 가이드](/post/2025-09-01-gitignore-cache-clear-fix/wordcloud_hu_aa4f880270e2c7de.webp)