1. Git 이란
소스코드와 파일의 변경이력을 추적하고 관리할 수 있는 도구로 팀단위로 개발할 때 필수적으로 사용되는 도구이다.
또한 Git은 검은 화면의 터미널을 사용하기 때문에 기본적으로 리눅스 지식이 필요하다.
아래 Linux 명령어만 숙지해도 Git을 사용하는 데는 문제가 없을 것이라고 생각한다.
2. Git 관련 개념
2.1 레포지토리(Repository)
소스코드와 변경이력을 관리하는 저장소를 레포지토리(Repository)라고 한다.
레포지토리는 내 컴퓨터에 저장하는 로컬(local) 저장소와 클라우드(인터넷)에 저장하는 원격(remote) 저장소로 나뉜다.
로컬 저장소에는 .git이라는 폴더가 존재하는데, git의 모든 메타데이터와 변경이력을 저장하므로 일반적으로 수정하지 않는다.
원격저장소는 클라우드에 소스코드와 파일을 저장하는 방식으로 대표적인 사이트는 Github가 있다. Github를 통해 소스코드를 저장하고 공유하여 협업을 수행한다.
2.2 Commit 과 Commit History
커밋(commit)이란 스냅샷을 통해 특정 시점의 소스코드나 파일의 상태를 기록하는 작업이다. 이를 통해 이전에 작업했던 소스코드로 돌아올 수 있다. 참고로 각각의 커밋은 고유한 해시값을 가지고 있으며 이를 통해 식별을 한다.
커밋에서 중요한것은 커밋메시지를 잘 작성하는 것이다. 협업을 하거나 이전에 기록들을 확인할 때 커밋메시지가 간결하고 읽기 쉽 작성되어 있어야 보기 편하기 때문이다.
커밋 히스토리는 쉽게 커밋 기록을 의미하고 git log라는 명령어를 통해서 확인할 수 있다.
2.3 Branch
독립적인 작업을 위해 분기(Branch)하는 것을 의미한다. 기본적인 브랜치는 main 또는 master를 사용한다. 보통 브랜치는 새로운 기능을 개발하거나 버그를 수정할 때 자주 사용한다.
2.4 Merge
하나의 브랜치를 다른 브랜치화 합치는 작업을 병(Merge)라고 한다. 주로 기능 개발이 완료된 브랜치를 메인 브랜치와 합치는 데 사용할 때 사용된다.
2.5 Working Directory와 Staging Area
Working Direcory는 현재 작업중인 파일들이 위치하고 있는 디렉터리를 의미한다. Staging Area는 커밋할 파일을 임시 저장하는 곳으로 Working Directory에서 git add 명령어를 사용하면 Staging Area로 이동할 수 있다. 이후에 git commit 명령어를 사용하면 스냅샷이 저장소에 기록된다.
참고자료