깃(Git)에 대한 간단한 정리
by John Choi
깃(Git)
사전 지식
형상 관리(Softwaree Configuration Management)
- 정의 : 소프트웨어의 개발 과정에서 소프트웨어의 변경 사항을 관리하기 위해 개발된 일련의 활동.
- 소프트웨어 개발 전 단계에 적용되는 활동으로 개발 뿐만 아니라, 유지보수 단계에서 수행되면서 소프트웨어 개발의 전체 비용을 감소시키고, 개발 과정에 있어 많은 리스크 요인이 최소화 되도록 보증하는 것을 목적으로 함.
깃(Git)이란?
구분 | 도구 | 비고 |
---|---|---|
folder 공유 | RCS, SCCS | |
Client/Server | Subversion(SVN), CVS, Perforce, ClearCase, TFS | 중앙 저장소 |
분산 저장소 | Git, Mercurial, SVK, Darcs | 분산 저장소 제공, Offline 개발 작업 다수일 경우 유리 |
- 분산형 저장소(Distributed Version Control System)의 일종.
- 분산형 저장소는 소스코드의 하나의 중앙 서버에만 저장되는 것이 아니라, 다수의 서버나 다수의 개발자 local PC에 저장될 수가 있으며, 각각이 소스코드 저장소가 된다.
- 클라이언트가 마지막 Snapshot을 직접 다운 받지 않고 저장소 전부를 복제하고, 서버가 문제가 생기면 클라이언트의 카피본으로 서버를 복원할 수 있다.
특징
- 팀 단위나 기능 단위로 저장소를 분리해서 개발하거나 릴리즈 버전 단위로 저장소를 분리해서 개발할 수 있는 등 소스코드 버전 관리에 많은 유연성을 가지고 있다.
- 중앙 저장소의 개념이 없기 때문에 특정 VCS만 문제가 없다면 개발을 계속할 수 있다.
주요 용어
- Commit(커밋) : 그 시점의 저장 장소에 대한 체크포인트를 설정할 수 있음.
- Branch(브랜치) : 하나의 프로젝트에 대한 혼선을 방지하기 위해, 여러 개발자들이 가지를 쳐서 자신이 변경하고 싶은 자신만의 버전을 만들 수 있음. 브랜치가 끝난 후 master에 다시 merge를 한다.
- Merge(머지) : 각각의 개발자가 Branch 작업을 통해 각각의 작업이 끝난 이후, 이것을 합치기 위한 작업. 이와 비슷하게 commit내용을 모아 붙이는 Rebase 작업도 잇다.
- Repository(저장소) : repo라고 부르기도 함, 프로젝트가 위치하고 있는 디렉토리나 저장 공간을 의미
- Push(푸시) : 로컬 저장소에서 commit 한 내용을 원격 저장소로 공유하는 명령어
- Pull(풀) : push와 반대로 원격 저장소의 내용을 로컬 저장소로 가져오고 싶을 때 사용
git 사용해보기 (MAC OS)
/*
실행 환경 : Mac Terminal 창
default directory : git 원격 디렉토리를 Local로 불러온 최 상위 계층
TO-DO : 반영 요소를 origin에 간단히 push 해보기.
*/
/*현재 디렉토리 내 하위 요소들을 원격 저장하기 위해 add*/
git add *
/*git add 후 commit 을 해준다. -m option을 통해 대충 커밋 제목을 입력*/
git commit -m "first commit"
/*커밋 한 요소들을 이제 원격으로 날린다(push)*/
git push origin master
Subscribe via RSS