개발자의 협업 도구에 필수적인 Git은 무엇일까? 왜 사용하고 어떤 특징을 갖고 있을까? 그리고 git을 이용한 작업 흐름(workflow)은 어떻게 나누어 볼 수 있을까?
📌 정의
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)은 소규모 프로젝트부터 초대형 프로젝트까지 모든 것을 빠르고 효율적으로 다룰 수 있게 디자인 된 무료이며 오픈 소스인 분산된 버전 제어 시스템(distributed version control system)이다.
여기서 주목할 것은 바로 분산된 버전 제어 시스템(distributed version control system)이다.
What Is Git & Why Should You Use It? | Noble Desktop Blog
📌 특징 1: 분산된(distributed)
여기서 분산되었다는 것은 한 프로젝트에 나누어진 기능을 각각 나누어 서로 개발할 수 있다는 점이다.
만약에 여러 명이 하나의 팀 과제를 하는데 각자 맡은 기능을 하나의 PPT에서 작업하는 상황을 떠올려 보자.
지금이야 구글 슬라이드와 같이 웹으로 구현된 파일로 동시에 작업이 가능하지만, 수 년 전에는 각자의 컴퓨터에서 파일로 작업을 하면서 서로 이메일이나 저장 장치(USB 등)로 서로의 파일을 주고받았을 것이다. 서로가 중간에 각자의 파일을 수정하면 나중에 파일이 뒤엉키면서 이를 수정해야 하는 문제가 많이 발생할 것이다.
반면에 Git은 각자의 branch에서 기능을 개발하고 add를 통해 구현한 파일/디렉토리를 올려 commit으로 현재 상태를 기록한다. 나아가 master(혹은 main)에 push나 pull을 하면서 각자의 버전을 올리거나 내려받을 수 있다.
EP 40: Git workflow - by Alex Xu - ByteByteGo Newsletter
이렇게 해서 각자 기능을 구현하기도 하고 저장소에 업데이트도 하면서 하나의 프로젝트를 원할하게 진행할 수 있다.
📌 특징 2: 버전 제어(version control)
역할을 분산한 것에만 만족하지 않고 Git은 버전을 제어하는데 최적의 시스템이다. 버전을 여러 종류로 나누어 각자의 상황이나 조건에 맞게 능동적으로 대응할 수 있다.
Gitflow Workflow | Atlassian Git Tutorial
위의 브랜치의 종류에 대한 설명은 아래 표를 참고.
브랜치(branches) | 설명 |
Main | 프로젝트의 중심 브랜치 |
Hotfix | 해당 버전에 버그 등의 오류가 생길 경우 디버깅을 위한 브랜치 |
Release | 실제 애플리케이션을 배포하기 위한 브랜치 |
Develop | 배포 이전에 종합적인 개발 단계의 브랜치 |
Feature | 개발 단계에서 각각의 세부 기능 구현에 대한 브랜치 |
📌 맺음말
이렇게 Git의 전체적인 특징에 대해 알아 보았다.
이제 실제로 git 명령어를 이용하여 위와 같은 기능을 하나하나 수행해 보자.
'개발자 도구 > Git' 카테고리의 다른 글
[Git] git 명령어 시 한글 깨짐 문제 (1) | 2023.08.01 |
---|---|
[Git]main, origin, remote, HEAD 의미 (0) | 2023.07.31 |
Git) local repository의 상태 3가지 (feat. remote) (0) | 2023.07.24 |
[Git] git config로 alias 단축어 설정하기 (0) | 2023.04.05 |
[Git] git config로 사용자 정보 설정하기 - 등록/조회/삭제 (0) | 2023.04.01 |
댓글