-
Git 이란?
Git
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.Git은 소스코드 관리를 위해 고안된 분산 버전 관리 시스템이다. 리눅스 토발즈가 리눅스 커널 개발에 이용하기 위해 개발한 시스템으로, 현재 누구나 무료로 사용할 수 있는 Open Source로 관리되고 있다.
누구나 코딩을 하다 보면 새로운 기능을 업데이트하거나, 기존의 코드들을 유지 보수하면서 버그가 생기는 경우를 겪는다. 만약 심하지 않은 문제라면, 빠르게 해당 문제를 찾아 해결할 수 있을 것이다. 하지만 그 문제가 너무 복잡하게 꼬여 아예 문제가 일어나기 전으로 rollback을 해야 하는 상황이라면 문제가 심각하다. 만약 여러 사람이 협력하여 진행하는 프로젝트에서 이런 문제가 일어나, 누가 어디를 잘못 수정해서 문제가 일어났는지를 파악하지 못한다면 더욱 끔찍하다.
Git은 이러한 문제를 해결하기에 굉장히 강력한 도구이다. 한 프로젝트에 대해 각 개발자별로 history가 따로 관리되어 각자 자신의 코드를 수정 단계별로 관리할 수 있으며, 이러한 수정은 다른 개발자에게 영향을 미치지 않는다. 프로젝트를 통합적으로 관리하는 관리자가 때에 맞춰 각 개발자의 코드를 가져와 본 프로젝트에 병합시킬 수 있으며, 이때 뭔가 문제가 발생한다면, 문제가 생기기 전으로 되돌려 문제 되는 부분만 수정할 수 있다.
따라서 개발자라면 반드시 Git을 자유자재로 사용할 수 있어야 한다.
만약 팀을 이뤄 개발을 한다면 더욱더 Git의 중요성이 부각된다.
Git 설치
Git 설치는 생각보다 매우 간단하다. 아래의 링크에 들어가서 Git을 Downloads 받을 수 있다.
자신이 사용하는 운영체제가 Windows / macOS / Linux / Unix 중 어느 것인지에 따라 알맞게 골라 설치하면 된다.
설치가 끝났다면, terminal을 열어 "git --version"이라고 명령어를 입력한다. git이 정상적으로 설치가 완료되었다면, 설치된 git의 version이 표시될 것이다.
git --version
Windows의 경우 마우스 오른쪽 클릭을 통해 Git Bash를 사용할 수 있다. 해당 Bash를 이용해 Windows에서도 macOS나 Linux의 terminal에서처럼 git 명령어를 사용할 수 있다.
(Windows CMD, Windows PowerShell에서도 물론 가능하다.)
Git 기본구조
Git은 위의 그림과 같이 크게 4가지의 영역으로 구성된다.
Working Directory
Working Directory는 사용자가 실제 파일을 작성 중인 영역이다. 이곳에서 작성된 파일들을 git add 명령어를 이용해 Staging Area로 이동시킬 수 있다. 또한 Remote Repository에서 파일을 pull 하여 불러올 경우 해당 영역이 Working Directory가 된다.
Staging Area (Index)
Staging Area는 파일을 Local Repository에 commit 하기 전에 미리 대기하는 영역이라고 할 수 있다. git add 명령어에 의해 Working Directory의 파일이 이곳으로 이동되면, 후에 git commit 명령어를 이용해 Local Repository로 파일을 commit 할 수 있다. 또한 commit하지 않을 파일이 포함되었다면, Staging Area에서 다시 빼버릴 수도 있다.
Local Repository (HEAD)
Local Repository는 Staging Area에 존재하는 파일들이 commit 되었을 때 이동되는 영역이다. 따로 인터넷을 연결하지 않는 local영역에서 git파일이 최종적으로 이동하여 저장되는 곳으로, git push 명령어를 이용해 해당 영역에 보관된 파일들을 원격 저장소에 옮길 수 있다.