1. Git 이란?
Git은 프로그램 등의 소스 코드 관리를 위한 분산 버전 관리 시스템이다. 빠른 수행 속도에 중점을 두고 있는 것이 특징이다. 최초에는 리누스 토르발스가 리눅스 커널 개발에 이용하려고 개발하였으며, 현재는 다른 곳에서도 널리 사용되고 있다. 깃의 작업 폴더는 모두, 전체 기록과 각 기록을 추적할 수 있는 정보를 포함하고 있으며, 완전한 형태의 저장소이다. (로컬에 커밋이 된다.) 네트워크에 접근하거나 중앙 서버에 의존하지 않는다.
2. Git 용어
Repository : 저장소를 의미하며, 저장소는 히스토리, 태그, 소스의 가지치기 혹은 branch에 따라 버전을 저장한다.
저장소를 통해 작업자가 변경한 모든 히스토리를 확인 할 수 있습니다.
Working Tree : 저장소를 어느 한 시점을 바라보는 작업자의 현재 시점입니다.
Staging Area : 저장소에 커밋하기 전에 커밋을 준비하는 위치입니다.
Commit : 현재 변경된 작업 상태를 점검을 마치면 확정하고 저장소에 저장하는 작업입니다.
Head : 현재 작업중인 Branch를 가리키는 것입니다.
Branch : 가지 또는 분기점을 의미하며, 작업을 할때에 현재 상태를 복사하여 Branch에서 작업을 한 후에 완전하다 싶을때 Merge를 하여 작업을 합니다.
Merge : 다른 Branch의 내용을 현재 Branch로 가져와 합치는 작업을 의미합니다.
Branch와 Merge를 활용한 예제로는
1. 작업중인 웹사이트가 있다.
2. 새로운 이슈를 처리할 새 Branch를 하나를 생성한다.
3. 새로만든 Branch에서 작업중이다.
이때 빠르게 처리해야할 Hotfix가 생긴다. 그러면 다음과 같이 처리할 수 있다.
1. 새로운 이슈를 처리하기 이전의 Master Branch로 이동합니다.
2. Hotfix Branch를 새로 하나 생성합니다.
3. 처리한 Hotfix가 점검까지 끝나고나면 Master Branch로 Merge를 합니다.
4. 다시 작업하던 Branch로 넘어가서 원래 하던 작업을 진행합니다.