IT/정보공유

#6. git? svn? github? 버전관리의 기본!

Holic 2021. 4. 25. 22:43
반응형


버전 관리를 해야 하는 이유

 

내 컴퓨터의 흔한 풍경들중..

 

대학교 리포트를 작성할 때나 회사에서 보고서를 작성할 때, PPT를 만들 때, 디자인을 할 때를 보면 하나의 결과물을 도출하기 위해 수많은 파일 백업본을 생성한 경험이 다들 있을 겁니다. 여러 명이 하나의 프로젝트를 하는 IT업계에서도 마찬가지입니다.

버전 관리를 한다면, 하나의 파일로 각 변경점마다 확인이 가능하고, 그 변경 시점으로 복원도 가능합니다. 모든 파일의 변화 즉, 언제 누가 어디를 어떻게 변경했는지를 기록할 수 있습니다. 여기서 내가 아닌 누군가와 공동작업을 하기 위해서는 깃허브(github)가 필요합니다. 여기서는 기본 개념만 다루도록 하겠습니다.

 


깃(git)

 

git 로고

아마 IT업계 종사자분들은 한번쯤은 들어보셨을 겁니다. 보통은 한 프로젝트를 서로 공유하면서, 여러 인원들이 각 파트를 나누어서 동시에 진행하고, 나중에 변경점을 합치기 위해 사용합니다. 하나의 저장소는 여러 버전으로 구성되어 있고, 버전은 여러 파일들과 여러 변경점들로 구성되어 있습니다. 나 혼자만 사용하는 것이라면, add와 commit으로 이루어져 있습니다. git의 기본 개념들만 살펴보겠습니다. git과 svn의 명령어는 크게 차이가 없으니 각 회사별, 각 프로젝트 별로 알맞은 버전 관리 툴을 사용하면 됩니다.

 

add

가상의 영역, staging(스테이징)에 변경점을 기록하는 것입니다. 선택한 파일을 이번 버전에 포함시키겠다 즉, 저장소에 추가하겠다는 의미입니다. 

 

commit(커밋)

변경사항들을 확정하는 작업입니다. add된 파일들의 변경점들을 버전 관리로 확정하겠다는 의미로 생각하시면 됩니다.

(커밋은 svn에서의 커밋과 다른 역할을 가지고 있습니다. svn에서는 commit을 하면 아래의 push기능까지 수행됩니다.)

 

push(푸시)

commit(커밋)된 변경점들을 원격저장소(ex. github)에 저장합니다. 원격 저장소에 저장을 하게 되면, 다른 사람이 확인 가능하고, 변경점들을 볼 수 있습니다.

 

pull(풀)

원격저장소에 다른 사람이 저장한 변경점들을 가져오는 겁니다.

 

pull request

원격 저장소의 소유자에게 "내가 저장한 변경점들을 적용해주세요"라고 요청하는 겁니다.

 

merge(머지)

두 개 이상의 변경점들을 하나의 변경점으로 합치는 작업입니다. 프로젝트의 최신화 작업이라고 생각하셔도 됩니다.

 

branch(브랜치)

브랜치는 '뻗어져 나온 나뭇가지'를 뜻하며, 프로젝트 내에서 더 작은 프로젝트의 개념입니다. 기능별로 버전 관리를 하고 싶다거나, 함수 별, 문단별로 버전 관리를 할 때 사용합니다.

 

checkout

저장소의 파일들을 받아 오는 명령어입니다. 파일뿐만 아니라 변경점의 히스토리들도 가져옵니다.

 

 


GITHUB (깃허브)

 

깃허브는 클라우드에 있는 깃 제공자입니다. 내 컴퓨터에 있는 깃 히스토리들을 깃허브 웹사이트에 푸쉬하는 용도로 사용합니다. 각기 다른 사용자들이 변경점들을 올리고, 교환할 수 있습니다. 비슷한 기능을 제공하는 깃 제공자로는 gitlab(깃랩), Bitbucket(비트버킷)이 있습니다. 하지만 네이밍 덕분에 깃허브가 가장 유명합니다.

깃허브에는 유명한 대기업(amazon, google, facebook 등)의 소스들이 오픈되어 있으며, 그 외에도 여러 오픈 소스들이 있습니다. 유명한 기업의 코드를 훔쳐보는 기분이란..

 

 

github의 메인 페이지

 

회사계정이라 가렸습니다. 여러 프로젝트를 관리하고 있는 모습입니다.

 

github는 저장소로 활용하는 것 외에도 이슈를 생성하고, 프로젝트 단위로 관리하는 것도 가능합니다. 아래의 이미지들은 이슈들을 생성하고, 각 이슈마다 댓글로 의견을 나누고, label을 붙여서 관리하는 모습을 보여주고 있습니다. 또 이런 이슈들만 모아서 github의 프로젝트 기능을 이용하여, To-Do 리스트, 진행중인 이슈들, 해결된 이슈들을 관리할 수 있습니다.

 

github의 issues 페이지
이슈에 대한 의견을 나누는 페이지

 


마치며

 

github는 무료입니다!

버전관리를 통해 쾌적한 업무환경을 구성하여, 일을 하는데에만 집중할 수 있었으면 합니다.

반응형