기능

설정 범위

--local  # 로컬 리포지토리
--global # 사용자
--system # 시스템(컴퓨터)

config 파일 저장 경로

[1] Windows

리포지토리 루트/.git/config # Local
C:/Users/%username%/.gitconfig # Global
C:/Program Files/Git/etc/gitconfig # System

[2] Linux

리포지토리 루트/.git/config # Local
~/.gitconfig # Global
/etc/gitconfig # System

설정 확인/변경/제거

# 확인
git config [--local|global|system] --get {설정명}

# 변경(등록)
git config [--local|global|system] {설정명} {설정값}

# 제거
git config [--local|global|system] --unset {설정명} 

전체 또는 이름 패턴으로 목록 확인

# 전체 목록
git config --list
git config -l

# 정규식 매칭
git config --get-regexp "pull" # "pull"을 포함
git config --get-regexp "^pull" # "pull"로 시작
git config --get-regexp "pull$" # "pull"로 끝남
git config --get-regexp "^pull$" # "pull"과 정확히 일치

# 부정 패턴 매칭(외부 쉘 명령어 함께 사용 필요)
git config --list | grep -v "^alias"      # bash
**git config --list | findstr /V "^alias\\." # Windows CMD
git config --list |** Where-Object { $_ -notmatch '^alias\\.' } # Windows Powershell

필수 설정

git config --global user.name "이름"
git config --global user.email "[email protected]"

Windows 권장 설정

git config --global core.editor "C:/windows/system32/notepad.exe"
# git config --global core.editor "code --wait"  # vscode
# git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"  # Notepad++

git config --global status.showuntrackedfiles all
git config --global pull.rebase false         # false: 협업 시 유용함: 리베이스 대신 머지 커밋 생성
git config --global color.ui auto             # 터미널에서 여러 색상이 지원될 경우, 자동 사용
git config --global push.default simple       # simple: 현재 브랜치에서 같은 리모트 브랜치에만 푸시
git config --global core.autocrlf true        # true: Windows 환경에 맞게 개행문자 변경
git config --global core.fileMode false       # false: 파일 권한 변경 무시
git config --global core.whitespace cr-at-eol # cr-at-eol" Git diff시 ^M 문자 발생 방지
git config --global credential.helper manager # manager: Windows 전용 인증 관리 도구
git config --global core.quotepath false      # false: 아스키코드에 속하지 않은 문자를 UTF-8로 표시(git status 했을 때 한글 제대로 표시)

# git config --global core.safecrlf false     # LF/CRLF 관련 경고가 뜨지 않게 함 (종류: true/warn/false)
# git config --global core.ignoreCase false   # 파일 대소문자 구분 필요한 경우 설정(기본값 true)
# git config --global core.longpaths true     # 경로 길이 제한 해제 필요 시 설정 
# git config --global http.sslVerify true     # SECURITY WARNING: TLS certificate verification has been disabled 경고가 계속 뜨는 경우 설정