출처 : https://dzzienki.tistory.com/46
SVN은 내 로컬PC에서 Commit 하면 바로 중앙저장소에 반영이 되는 반면,
Git은 내 로컬PC에서 Commit을 하면 로컬저장소에 반영이 되고, 로컬저장소에서 Push를 하면 원격저장소에 반영이 된다.
SVN 최대 장점은 직관적이다. 모든 사람이 중앙서버에 있는 같은 자료를 받아오고 내가 Commit하는 순간 모든 사람에게 공유가 된다.
이러한 방식의 단점은 두 사람이 하나의 파일을 동시에 수정하고 커밋했을 때 충돌이 일어날 확률이 높으며, 그 충돌을 해결하는데 많은 시간이 소요될 수 있다.
반면, Git은 직관적이지 않고, Git을 사용하기 위해 Git 수행 방법, branch 및 merge, 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
'SCM > Git + Github' 카테고리의 다른 글
[Git/GitHub] Git Merge 와 GitHub Merge (0) | 2023.05.17 |
---|---|
Git 이란 ? Git 구조와 용어 간단하게 살펴보자 (0) | 2022.05.29 |
[Git] Git GUI Fork 다운로드 및 시작하기 (0) | 2022.05.28 |
[Git] Git GUI 소스트리(Soure Tree) 다운로드 및 설치하기 - ① Setup (0) | 2022.05.04 |
[Git] Windows11 64bit 환경 Git 다운로드 및 설치하기 - ① Setup (0) | 2022.05.04 |
댓글