sitelink1 | http://blog.naver.com/leejunga-0409/220700020774 |
---|---|
sitelink2 | |
sitelink3 |
(SW)형상 관리 서버(CM or SCM)? Configuration Management 소스 버전 관리
sw개발 및 유지보수 과정에서 발생하는 소스코드, 문서, 인터페이스 등 결과물에 대한 형상(프로그램에 대하여 큰 형태의 구조적인 모습)을 만들고, 이 형상에 대한 것을 체계적으로 관리, 제어하기 위한 활동이다. 즉 프로젝트 진행 시 생성되는 소스 코드를 CVS, SVN, GIT 와 같은 버전 관리 시스템을 이용한 것
*GIT
저장소가 내 컴퓨터(로컬)에 있다. (SVN은 저장소가 서버에 있다)
다른 사람과 협업 시 Local의 저장소에서 작업 후 Commit하면 원격 저장소에 푸쉬된다.
git는 분산버전관리시스템이므로 저장소가 분산되는 구조를 가지고 있다.
*GIT 장점
-branch / merger
개발자 local에서 여러개의 branch 생성하여 개발을 할 수 있다.(생성, 삭제 가능 -> 독립성,테스트 가능)
( master -> develop-> topic )
push 전 까지 서버에 적용되지 않기에 local에서 마음껏 branch하여 테스트가 가능하다. 그러므로 에러 최소화와 원점 복귀 시간이 절약된다.
-속도 / 성능
네트워크 연결이 아닌 로컬에서 동적으로 움직이므로 속도가 빠르다.
-분산작업
svn의 경우 하나의 저장소로 동시 개발이 들어가므로 각자 코딩한 소스에 문제나 소스 통합하는데 번거롭다.
git는 통합/개발 전담으로하는 사람을 분담할 수 있다.
-데이터 보장
git는 모든 파일을 암호화한다. 파일은 항상 commit 시 체크썸(검사)을 거친다.
수정 시 commit id가 변경되어 사용자를 알 수 있다.
-준비 단계(Staging area)
내 작업공간(working directory)에서 명령 실행 후 add하게 되면 git에서 해당 파일을 관리한다. 즉 서버에 업로드 될 준비가 된 것이다.
git는 명령어들을 로컬에서 실행 후, 나중에 서버에 업로드하는데 svn은 바로 적용된디ㅏ.
git는 2번 명령을해야 실행된다.
(working directory -> git add -> staging area -> git commit -> repository)
사용 안할 시 git commit -a 사용(sorking directory -> staging area -> repository)
-무료, 유료