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이다.
이 중요한 걸 학교에서는 많이 안 가르쳐 주는 것 같다.
GIT 과 같은 형상관리 시스템을 사용하면 위와 같은 과정을 굉장히 세련(?)되고 스마트하게 처리할 수 가 있다. 지금은 나름 git에 능숙한 user로 학창시절을 생각하면 이불킥을 떠올리게끔 한다.
위의 내 흑역사를 통해 git으로 어떤일을 할 수 있는지 알아보자.
1. 프로젝트 인원 각자가 작업을 하여 업데이트 한다.
>> git에는 변경된 것들을 일일히 추적하고 있는데 변경점 단위를 나타내주는 commit을 생성할 수있다. commit에는 자유롭게 메세지를 남길수 있다. 메세지에는 무엇을 변경했는지, 왜 변경했는지 등을 표현하는게 적절하다. 또한 생성된 commit은 협업을 위해 git server에 업데이트하여 다른 사람이 받아갈 수 있게끔 한다. (add, commit, push)
2. 친구와 메신저를 통해 업데이트 된 소스를 주고 받았다
>> github나 bitbucket 또는 다른 opensource 의 git 관리 시스템을 이용해서 git 서버에 있는 업데이트 된 소스를 다운 받을 수 있다. (clone, pull, fetch)
3. 새로운 폴더에 날짜 이름을 붙여 매번 저장했다
>> 특정 변경 이력을 기준으로 책갈피 처럼 TAG를 붙일 수 있다. 또는 Branch라는 개념을 통해 추가적인 복사본 없이 왔다갔다 할 수 있다. commit이라는 것을 통해서 (tag, branch, checkout)
4. 다시 배포하였다.
>> 서버에 다시 업데이트 해놓으면 프로젝트 인원 누구나 최신소스까지 업데이트 받을 수 있다.
commit 이라는 단위를 통해 자그마한 모든 변경점을 추적하고 관리할 수 있다.
언제, 어디에서 문제가 생겼는지 또는 누가 수정한 내용이었는지도 파악할 수 있다.
Branch 전략을 이용해서 다양한 목적으로 협업을 할 수 있다.
다른 형상관리 시스템은?
GIT과 견주어 많이 사용하는 형상관리 시스템은 SVN 이 있다.
하지만 GIT이 빠르게 발전하면서 Git의 사용 추세가 늘어나고 있다.
다만 GIT이 SVN 보다는 어렵다(?)라는 말이 있다.
Google Trends 에서 git 과 svn 을 비교한 결과는 아래와 같다~
탄생 역사
Speed
Simple design
Strong support for non-linear development (thousands of parallel branches)
Fully distributed
Able to handle large projects like the Linux kernel efficiently
(speed and data size)
https://www.linux.com/news/bitkeeper-and-linux-end-roadhttps://en.wikipedia.org/wiki/BitKeeperhttp://www.zdnet.co.kr/news/news_view.asp?artice_id=00000039135721&type=det&re= (zdnet에서 2005년도에 쓴 기사가 있다.)
- 여러 오픈 강좌들
오픈된 강좌들이 있다
https://www.udacity.com (유다시티)
https://opentutorials.org/course/2708 (생활코딩)
https://git-scm.com (Window.Mac용 Git 공식사이트, Pro Git 문서를 번역하여 무료로 배포하고 있다.)