본문 바로가기
개발자 도구/Git

[Git] git의 개념과 작업 흐름(workflow)에 대하여

by Dev.Andy 2023. 4. 1.

개발자의 협업 도구에 필수적인 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)이다.

(git-scm.com) Git

 

여기서 주목할 것은 바로 분산된 버전 제어 시스템(distributed version control system)이다.

 

git의 작업 흐름 이미지, master를 중심으로 나의 작업과 다른 사람의 작업을 분리하여 진행할 수 있다.
master(main) 브랜치를 중심으로 나와 타인의 작업을 분리할 수 있다

What Is Git & Why Should You Use It? | Noble Desktop Blog

 

📌 특징 1: 분산된(distributed)

여기서 분산되었다는 것은 한 프로젝트에 나누어진 기능을 각각 나누어 서로 개발할 수 있다는 점이다.

 

만약에 여러 명이 하나의 팀 과제를 하는데 각자 맡은 기능을 하나의 PPT에서 작업하는 상황을 떠올려 보자.

지금이야 구글 슬라이드와 같이 웹으로 구현된 파일로 동시에 작업이 가능하지만, 수 년 전에는 각자의 컴퓨터에서 파일로 작업을 하면서 서로 이메일이나 저장 장치(USB 등)로 서로의 파일을 주고받았을 것이다. 서로가 중간에 각자의 파일을 수정하면 나중에 파일이 뒤엉키면서 이를 수정해야 하는 문제가 많이 발생할 것이다.

 

반면에 Git은 각자의 branch에서 기능을 개발하고 add를 통해 구현한 파일/디렉토리를 올려 commit으로 현재 상태를 기록한다. 나아가 master(혹은 main)에 push나 pull을 하면서 각자의 버전을 올리거나 내려받을 수 있다.

 

Git의 구체적인 작업 흐름 이미지, 명령어도 같이 잘 설명 되어 있다.
명령어로 원하는 작업 상황으로 변경할 수 있다

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 명령어를 이용하여 위와 같은 기능을 하나하나 수행해 보자.

 

댓글