SCM/Git + Github

Git과 SVN 특징 및 명령어 비교

헹창 2022. 5. 29.
반응형

출처 : https://dzzienki.tistory.com/46

 

 

SVN은 내 로컬PC에서 Commit 하면 바로 중앙저장소에 반영이 되는 반면,

Git은 내 로컬PC에서 Commit을 하면 로컬저장소에 반영이 되고, 로컬저장소에서 Push를 하면 원격저장소에 반영이 된다.

 

SVN 최대 장점은 직관적이다. 모든 사람이 중앙서버에 있는 같은 자료를 받아오고 내가 Commit하는 순간 모든 사람에게 공유가 된다.

이러한 방식의 단점은 두 사람이 하나의 파일을 동시에 수정하고 커밋했을 때 충돌이 일어날 확률이 높으며, 그 충돌을 해결하는데 많은 시간이 소요될 수 있다.

 

반면, Git은 직관적이지 않고, Git을 사용하기 위해 Git 수행 방법, branchmerge, pull request, rebase 등등 Git 명령어들도 전부 공부해야 하며 적응하는 데 많은 시간이 필요하다.

 

Git 원격 저장소에 올리는 방법.

1. 로컬 PC 에서 작업한 내용을 commit 하여 로컬 저장소에 반영한다.

2. 원격저장소에서 fetch하여 로컬저장소로 마스터 파일을 받아와 충돌이 나지 않게 merge한다.

3. 로컬 저장소의 내용을 push하여 원격 저장소에 올린다.

 

Git vs SVN 특징

  Git SVN (SubVersion)
방식 분산 소스코드 관리 방식 중앙 집중식 코드 관리 방식
장점 빠르고 안전함.
로컬에서 복구하기가 용이함.
소스 히스토리 관리가 용이함
직관적. 사용법이 간단함
단점 Git 사용하기 위해 공부해야하므로, 사용하기 어려움 중앙 SVN서버가 망가지면 전부 잘못됨.
하나의 파일서버에 모든 PC가 직접 소스코드에 접근하기 때문에 충돌 확률이 높음
  각각의 Local Repository에 Commit을 하며 쌓아두고, Server Repository에 한 번에 Git에 업데이트 가능.  

 

Git vs SVN 저장소 관리 명령어

  Git SVN
원격 저장소 내용 내려받기 pull (fetch + merge) update
스테이지 영역에 추가 add (생략가능, commit과 동시처리 가능)  
로컬저장소 내용 올리기 commit  
로컬저장소 내용 내려받기 fetch  
로컬저장소 내용 합치기 merge  
원격 저장소로 내용 올리기 push commit

 

Git vs SVN 그 외 명령어 모음

조작 Git SVN (Subversion)
저장소의 복제 git clone svn checkout
커밋 git commit svn commit
커밋의 상세내용을 확인하고 싶다 git show svn cat
상태 확인 git status svn status
변경 내용 확인 git diff svn diff
로그 확인 git log svn log
추가 git add svn add
이동 git mv svn mv
삭제 git rm svn rm
변경 취소 git checkout / git reset svn revert 
브랜치 작성 git branch svn copy 
브랜치의 전환 git checkout svn switch
병합 git merge svn merge
태그 작성 git tag svn copy 
변경 사항 업데이트 git pull / git fetch svn update
원격 저장소에 반영 git push svn commit 
무시할 파일 목록 .gitignore .svnignore

출처 : https://backlog.com/git-tutorial/kr/reference/git-svn.html

 

 

 

2016년 Stack Overflow 대상의 형상관리 시스템 (Version Control System)의 사용 비중 조사결과이다

 

출처 : https://rhodecode.com/insights/version-control-systems-2016

 

 

728x90
반응형

댓글

추천 글