[Git] Configuration Summary

1 minute read

Configuration Summary

git-version-2.29.2

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}



Reference

Leave a comment