'svn'에 해당되는 글 1건

  1. 2015.10.11 git 란

git 란

개발자료 2015. 10. 11. 18:50 |

Git 에 대해서


git 는 형상관리중 하나로 흔히 알고 있고 svn 과 비슷하지만, svn  과 다른점이 있다.

지금 부터 svn 과 비교하여 설명해 보겠다. 


svn 은 

작업공간 ----저장소 

git 는 

작업공간 --스테이지영역--로컬저장소--원격저장소


svn 은 commit 하면 저장소에 소스를 저장하여 지원한다.

git 는 commit 하면 로컬저장소에 저장이된다. 원격 저장소라는 곳에 연결되어 소스를 공유한다.

commit 하기 전에 스테이지영역(인덱스)  추가해야 된다!


만약 빌드를 svn 에 로그인페이지, css 파일을 동시에 빌드했다고 가정할때

로그인페이지 빌드를 미루게되어 revert 해야되면  css파일까지 빌드전으로 복구해애되는 단점이 있다,


git 은 빌드해야되는 파일만 스테이지 영역에 추가하고( git add) 로컬저장소에 commit  하면 된다,

부분적으로 commit할 필요 없는 경우에는  git commit -a 으로 모두 동시에 커밋하면 된다.

commt 마치면 다른사람에게 소스공유 하면된다, 이땐 git push  명령어 사용한다.


내 작업을 올리는데 오류가 발생하여 다른 사람들이 작업한 내용을 먼저 받아야 할때는 

git pull 명령어 사용한다, (원격저장소로부터 내려받기 fetch + 내려받은 데이터를 병합 merge)


branch!! 에 알아보자

svn 은 전체 디렉토리 구조를 내려받아야하고 직접 디렉토리를 이동해야된다. 병합도 위치와 리비전을 명시하고 다소 복잡하다.

git 은 전체 디렉토리로 내려받을 필요없고 브랜치전환시 작업파일들이 실시간으로 변경된다.


브랜치 만들기

git branch<name>

git checkout<name> 


브랜치 지우기

git branch -d <name>


브랜치 병합

git checkout master 

git merge branch


브랜치 목록

git branch

git branch --no-merged

git branch --merged (merge가 되었는지 안되었는를 구분)



rebase?

rebase 는 merge와 동일하게 하나의 브랜치를 다른 브랜치로 병합하는 기능이다. 

단 rebase는 작업 히스토리를 다른 브랜치에 차례대로 적용시킨다.


svn  은 최종 작업을 merge 하는데

     b1          b2          b3         b4

a   o ---------------------------o


b   o----------o-----------------o


rebase 는 

     b1          b2          b3         b4

a   o ---------v--------v--------o


b   o----------o--------v--------o


공동작업에서 깔끔한 히스토리를 계속 유지해주고 싶다면 rebase를 적극적으로 사용하는 것이 좋다.


 그럼 svn 과 차이점은 ?

* 로컬저장소가 존재한다.

* 커밋 이전에 스페이지영역에 추가하는 과정이 있다.

* git 은 각각의 버전을 스냅샷으로 저장한다


git의 특징들!!

* 작업중 브랜치를 변경해야 하는데 커밋하기 애매할때, 간단히 저장해 둘 수 있음.

* 커밋을 순서를 변경하거나 커밋 메시지 심지어는 커밋한 파일도 변경할 수 있음

* 로그를 자기 입맛대로 포맷팅 할수 있음

* 이전 커밋에 추가 할수 있음










'개발자료' 카테고리의 다른 글

CentOS6.0 아파치 설치  (0) 2016.04.08
Posted by 양승아
: