본문으로 바로가기


개요



Git 이란 버전 관리 시스템 ( VCS- Version control system ) 중 하나입니다.


예전에 많이 사용했던 VCS중 하나인 SVN(Subversion) 은 중앙집중식으로 대부분의 기능이 완성된 상태로 COMMIT을 하게 되지만 Git은 분산형 버전 관리를 지향하며 각 개발자 별로 자신만의 commit history 를 가지고 개발자의 Repository와 서버의 Repository를 독립적으로 운영하는 것이 가능 합니다.  


각 개발자 별 commit history가 존재하기 때문에 한 개발자의 수정내역이 서버와 다른 개발자에게 영향을 미치지 않으며,  통합 관리자가 원하는 시점에 유연하게 원하는 개발자의 commit history를 가져와 운영할 수 있는 유연성이 장점 입니다.


Git을 이용하면 다양한 방법으로 버전관리를 할 수 있기 때문에 여러 오픈소스 프로젝트 등에서도 많이 사용됩니다.

그럼 기본적으로 간단하게 깃 설치와 기본 세팅 방법에 대해 간단하게 알아보겠습니다.


GUI tool을 이용하지 않고 OS에 관계없이 사용할 수 있는 콘솔(Console) 창을 이용하도록 하겠습니다. 



Git 설치 


아래 사이트에서 OS 에 맞는 설치 파일을 다운로드 후 설치해 주세요

http://git-scm.com/


* MacOS (OS X)

맥북, MAC 등 MacOS 을 사용 하시는 분들은 기본적으로 Apple 용 조금 낮은 버전의 Git이 이미 설치 되어 있습니다.  저는 공식 버전의 최신 버전으로 사용 하고자 오버라이드하여 재설치 했습니다

패키지관리툴인 Homebrew 목록에도 존재 하기 때문에 사용하시면 좀더 편리하게 설치 하실 수 있습니다. 

$ brew install -s git


* Windows OS  

윈도우즈 OS를  사용 중이신 분들은 설치 후 Git bash 프로그램을 열어서 콘솔 명령어를 사용 할 수 있습니다.


설치가 끝났으면 Console 창으로 들어가서 version 명령어를 사용하여 정상 설치 여부를 확인 해 볼수 있습니다.

$ git --version
git version 2.23.0


Git 설정 (.gitconfig)


git config 명령어를 이용하여 여러가지 설정값을 수정 할 수 있으며 설정내역은 홈폴더의 .gitconfig 파일에 저장됩니다.
명령어가 아니라 해당 파일의 내용을 직접 수정하여 설정을 적용하는 것도 가능하니 참고해 두시면 좋을 것 같네요.  
( -e --edit 옵션으로 편집기 오픈 가능 )

config 관련 설정 옵션은 아래와 같습니다. 
git config --help 명령어를 사용하면 각 옵션에 대한 조금 더 상세한 설명을 볼 수 있습니다.
Config file location
    --global              use global config file
    --system              use system config file
    --local               use repository config file
    -f, --file            use given config file
    --blob                read config from given blob object
Action
    --get                 get value: name [value-regex]
    --get-all             get all values: key [value-regex]
    --get-regexp          get values for regexp: name-regex [value-regex]
    --get-urlmatch        get value specific for the URL: section[.var] URL
    --replace-all         replace all matching variables: name value [value_regex]
    --add                 add a new variable: name value
    --unset               remove a variable: name [value-regex]
    --unset-all           remove all matches: name [value-regex]
    --rename-section      rename section: old-name new-name
    --remove-section      remove a section: name
    -l, --list            list all
    -e, --edit            open an editor
    --get-color           find the color configured: slot [default]
    --get-colorbool       find the color setting: slot [stdout-is-tty]
Type
    -t, --type <>         value is given this type
    --bool                value is "true" or "false"
    --int                 value is decimal number
    --bool-or-int         value is --bool or --int
    --path                value is a path (file or directory name)
    --expiry-date         value is an expiry date
Other
    -z, --null            terminate values with NUL byte
    --name-only           show variable names only
    --includes            respect include directives on lookup
    --show-origin         show origin of config (file, standard input, blob, command line)
    --default             with --get, use default value when missing entry


사용자 정보 설정 (user.name / user.email)


여러가지 설정값들이 있지만 가장 먼저 해야할 건 사용자명(user.name)과 메일주소(user.email) 세팅입니다

해당 값은 추후 변경이력 (commit history) 등에 기록됩니다.


--global 옵션을 사용하면 해당 설정을 모든 프로젝트에 적용할 수 있습니다.

$ git config --global user.name "사용자명"
$ git config --global user.email "메일주소"

이후 --list 옵션을 통해 설정한 정보들이 정상적으로 적용 되었는지 확인해 보시기 바랍니다.

$ git config --list
core.symlinks=false
core.autocrlf=true
core.fscache=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
help.format=html
rebase.autosquash=true
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
credential.helper=manager
user.name=JihunPark
user.email=ongamenet87@gmail.com
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true

설정값 내 특정 name만 기재 하여 해당 값만 조회 하는 것도 가능합니다.

$ git config user.name
JihunPark

$ git config user.email
ongamenet87@gmail.com

기본적인 설치와 세팅이 완료되었습니다. 

다음 포스팅에서는 로컬 저장소 (local repository) 생성과 Commit 에 대해서 정리해보겠습니다.

Git 저장소 생성 및 커밋 ( init / add / commit )


Reference

https://backlog.com/git-tutorial/