[Git] Configuration Summary
Configuration Summary
Git Config Scope
Git config 의 기본 scope 는 --local
(Default)로 적용되어 있다.
--local
보다 큰 범위로 지정하고 싶은 경우 옵션값을 지정해서 변경한다.
local (Default)
-
--local
-
해당 repository에 적용
-
Config File Path:
.git/config
global (Frequently Used)
-
--global
-
현재 사용자(User)에게 적용
-
Config File Path:
~/.gitconfig
or~/.config/git/config
system
-
--system
-
모든 사용자(User)와 모든 repository에 적용
-
Config File Path:
/etc/gitconfig
Git Config File Format
[<Section1_Name>]
<Variable> = <Value>
<Variable2> = <Value2>
[<Section2_Name>]
<Variable> = <Value>
<Variable2> = <Value2>
Git Config 설정 예시
- Editor 로 config 파일 open (직접 수정)
$ git config ${ScopeOption} -e
-e
:--edit
- User Name 설정
$ git config ${ScopeOption} user.name ${UserName}
- User Email 설정
$ git config ${ScopeOption} user.email ${UserEmail}
- 기본 Editor 설정 (ex. vi, vim, emacs, nvim, code…)
$ git config ${ScopeOption} core.editor ${EditorName}
$ git config ${ScopeOption} core.editor "${EditorName} --wait --new-window"
--wait
: 설정한 Editor가 열려있는 동안 터미널 Freeze--new-window
: 매번 새로운 window로 open
- Linux, Mac 권장 설정 (core.autocrlf)
$ git config ${ScopeOption} core.autocrlf input
- Window 권장 설정 (core.autocrlf)
$ git config ${ScopeOption} core.autocrlf true
core.autocrlf 란?
CRLF:
\r\n
\r
: Carriage Return (CR)\n
: Line Feed (LF)
core.autocrlf true
: Commit 할 때 CRLF를 LF로 변환, Checkout 할 때 LF를 CRLF로 변환core.autocrlf input
: Commit 할 때 CRLF를 LF로 변환core.autocrlf false
: 기능 OFF (\r
저장)
OS 줄바꿈 차이
- Window:
\r\n
(CRLF) - Linux, Mac:
\n
(LF)
Options
--local
, --global
, --system
과 같은 config scope 를 지정하는 것을 권장
--edit
,-e
: config 파일 수정
$ git config --edit
--list
,-l
: config 파일의 설정값 출력
$ git config --list
--get
: config 파일의 지정된 설정값 반환
$ git config --get ${Section}.${Variable}
아래와 같이 --get
을 따로 지정하지 않아도 값을 반환받을 수 있다.
$ git config ${Section}.${Variable}
하지만 --get
옵션을 지정해주지 않을 경우 정규식을 이용한 필터링 사용불가
--add
: config 파일에 설정값 추가 (기존 값이 존재해도 새로 한 줄 추가한다.)
$ git config --add ${Section}.${Variable} ${Value}
아래와 같이 옵션을 주지않을 경우 기존 값이 새로 지정한 값으로 변경된다.
$ git config ${Section}.${Variable} ${Value}
--unset
: config 파일의 설정값 제거
$ git config --unset ${Section}.${Variable}
--remove-section
: config 파일의 Section 제거
$ git config --remove-section ${SectionName}
--rename-section
: config 파일의 section 이름 변경
$ git config --rename-section ${SectionName} ${NewSectionName}
Leave a comment