Git

[Git] Git 개요와 세팅

갓태희 2021. 5. 28. 16:22

실무자가 알려주는 Git - 입문 편(인프런)

개요

시작하기 앞서 저는 깃 공부를 git-scm과 인프런 강의를 통해 하고있습니다. 세세하게 공부하시거나, 제 글에 보충설명이 필요하시다면 댓글 혹은 git-scm사이트에서 자료를 더 찾아보시는것을 추천드립니다.

깃이란?

깃은 free이고 오픈소스이며 크고작은 프로젝트들 빠르고 효율적으로 관리할수 있도록 디자인된 분산 버전 관리 시스템(DVCS)이다.

깃은 오픈소스이므로 누구나 무료로 사용가능하며 중앙 집중방식(CVCS)처럼 한 컴퓨터에 모든 데이터를 두는것이 아닌 코드를 내려받는 모든 사람이 원본을 가지고 있기 때문에 분산 버전 관리 시스템(DVCS)라고 합니다.

중앙 집중방식(CVCS)

  • CVCS는 중앙에 모든 데이터들을 관리하는 서버컴퓨터가 있으며, 이 서버컴퓨터로부터 클라이언트는 모든 데이터를 받아 작업을 수행하고, 결과물또한 서버컴퓨터에 올리는 형식으로 버전관리가 이루어집니다. 이러한 CICS 서버컴퓨터가 고장나버리면 클라이언트는 협업을 할수 없게되는 치명적인 단점이 있습니다.

분산 버전관리 시스템(DVCS)

  • 위의 CVCS의 단점을 해결하기위해 DVCS이 등장했으며, 데이터를 서버컴퓨터에만 저장해놓는것이 아닌 데이터를 받는 모든 클라이언트들이 데이터의 원본을 갖고있게 됩니다. 따라서 서버컴퓨터에 문제가 생겨도 한명이라도 이 데이터를 내려받은 사람이 있다면 그 데이터를 가지고 작업을 이어나갈수 있게됩니다.

깃을 사용해야 하는 이유

  • 저는 중학생때 프리메이플 팩을 개발할때 어떤 소스코드를 백업해놓고 싶을때 새로운 메모장을 만들고 코드를 붙여넣기 해놓거나 네이트온과 같은 메신저에서 친구와의 대화에 코드를 임시로 붙여넣는 방식을 이용했습니다. 저도 모르게 버전관리를 하고 있었던 것인데, 이러한 방법은 DVCS를 모르는 사람에게는 지극히 당연한 방법이지만 깃은 어떠한 명령어 한개로 효율적으로 버전관리를 할수 있습니다.
  • 제가 중학생때 했던 버전관리 방식으로는 임시로 저장해둔 파일들이 어디에 있는지 까먹게 되거나, 메신저에서 다른 대화로 인해 올려놓은 코드가 어디있는지 한참 찾아 해매는 경우가 발생합니다.
  • 또한 임시파일들의 이름을 지을때 곤혹을 치르게 됩니다. test, test1, test_final, etc.. 이런식으로 파일이 많아진다면 결국 나중에 내가 찾는 코드가 구분이 되지 않기 때문에 혼란을 겪게됩니다.
  • 따라서 앞서 소개한 이유때문에 우리는 분산 버전관리 시스템을 사용해 우리들의 소중한 파일들의 버전관리를 진행해야겠습니다.

들어가기전

앞으로 나오는 명령어들은 한줄한줄 복붙하셔도 되지만 되도록 직접 타이핑 해보시는걸 권장해 드립니다.

기본 세팅

계정 연결

git config --global user.name "taehee"
git config --global user.email "wonderfulhuman@naver.com"

깃을 시작하시기 전에 앞으로 진행하실 작업(프로젝트)에서 사용하실 이름이메일을 설정해주셔야 합니다. 그럼 위의 명령어의 의미를 하나하나 알아보겠습니다.

  • git: git의 모든 명령어는 git ~으로 시작합니다.
  • config: config는 configure의 약어로 깃의 다양한 설정을 하기위한 명령어입니다.
  • --global: 앞으로 작업하는 모든 프로젝트에서 taehee라는 이름과 wonderfulhuman@naver.com이라는 이메일을 사용하겠다는것을 뜻합니다. --global옵션을 주지 않는다면 지금 작업하는 프로젝트 내에서만 저 이름과 이메일을 사용하겠다는 뜻이 됩니다.
  • user.name: user.name 뒤에오는 큰따옴표로 감싸져 있는 이름을 사용하겠다는 뜻입니다.
  • user.email: user.name과 방식은 같지만 이메일은 깃허브 가입시 가입인증메일을 받은 깃헙 계정의 이메일을 써주셔야합니다.

alias

alias는 별명이라는 뜻인데, 프로젝트를 진행하시다보면 많은 깃 명령어를 타이핑 하시게 되는데 alias를 사용해 자주쓰는 명령어들은 줄여서 사용하신다면 시간절약과 손의 수고로움(?)을 덜수 있습니다.

git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

git config —global까지는 위에서 설명했으므로 생략하고 그 뒤의 명령어들을 설명하겠습니다.

  • alias.co checkout: git에는 checkout이라는 명령어가 있는데 이 명령어는 git checkout ~와 같이 사용하는데 이 명령어를 앞으로는 git co와 같이 줄여서 사용하겠다는 명령어 입니다. 이렇게 위의 5개의 명령어가 모두 같은뜻으로 작성된 명령어 이며 checkout이 무엇인지, branch가 무엇인지 alias.lg뒤에 알수없는 문자들은 추후에 학습할 내용이므로 무엇인지 아직 구체적으로 아실 필요는 없을것 같습니다

alias 설정 확인해보기

git config —list

위의 명령어를 통해 저희가 설정한 alias와 다른 기본적으로 되어있는 설정들을 확인하실수 있습니다. 여러분의 입맛에 맞게 다른 설정도 필요하시다면 하셔도 좋습니다.