[개발이야기] git 배우기

"와들 세미나"

Posted by 예띠 on October 28, 2019

와들 세미나

매주 금요일, 와들 개발자들은 와들 세미나에서 자신의 지식을 팀원에게 공유합니다. 소중한 세미나의 기록을 멀리, 넓게 퍼뜨리고자 한다.

git 배우기

학교를 다닐 때는 교수님께서 내주신 과제를 홀로 수행하곤 했다. 내가 짠 코드를 볼 사람이 나말고는 없으니 코드를 컴퓨터에 잘 저장하는 것이 코드 관리의 전부였다. 하지만, 와들에서 프로젝트를 맡게 되니 여러 사람이 코드를 공유하는 상황이 생겼다. 코드의 버전 관리가 매우 중요해진 시기에 git을 주제로 센님이 강연을 준비하셨다. 이번 글로 센님의 강연을 정리해보기로 했다.

git은 분산 버전 관리 시스템 (Distributed Version Control (Systems) (DVCS))의 일종으로, 로컬 저장소와 원격 저장소를 제공한다. 로컬 저장소는 내 PC에서 파일이 저장되는 곳이고 원격 저장소는 파일을 여러 사람이 함께 공유하기 위한 전용 서버이다. 로컬 저장소에 있는 작업물들을 원격 저장소 서버에 업로드하면 자신의 작업물들을 다른 사람에게 보여줄 수 있고, 반대로 원격 저장소에서 다른 사람이 작업한 파일을 가져올 수도 있다. git 저장소의 파일들은 변경 이력 별로 나뉘어 저장되기 때문에 파일들의 버전 별로 비교하거나 이전 버전의 파일을 받을 수 있다.

git을 사용할 때는 알아야할 용어들이 몇 가지 있다. 센님께서 commit, push, clone, pull, branch, checkout, merge를 소개해주셨다.


Commit

commit은 작업물들을 추가, 변경할 때 저장소에 기록할 수 있는 명령어이다. 파일을commit하면 이전 상태부터 현재 상태까지 변경 이력을 기록할 수 있다.

Push

push는 원격 저장소로 변경된 파일을 업로드하는 명령어이다. 로컬 저장소에 있는 변경 이력을 원격 저장소로 보내어 둘을 같은 상태로 만든다.

Clone

clone은 원격 저장소를 통째로 복사해 내 로컬 저장소에서 이용할 수 있게 하는 명령어이다.

Pull

pull은 push와 반대로 로컬 저장소의 내용을 원격 저장소의 최신 이력으로 업데이트하는 명령어이다.

Branch

branch는 로컬 저장소에서 마음대로 소스 코드를 변경할 수 있도록 독립적인 작업 환경을 만들어주는 개념이다. 처음에는 master라는 branch가 있는데, 여기서 새로운 branch를 만들면 master에서 떨어져 나와 새로운 작업 환경이 생긴다. 여기서 코드를 수정하여 commit을 하면 master에 적용되는 것이 아니라 현재 branch에만 적용된다.

Checkout

checkout은 branch를 만드는 명령어이다.

Merge

현재 branch를 master와 병합하는 명령어이다.


git을 배우며 프로젝트를 체계적으로 관리하는 방법을 알 수 있었다. 좋은 강연을 해주신 센님께 감사하며 글을 마친다.