Git vs. SVN

iseon_u·2023년 6월 21일
0

Git

목록 보기
5/5
post-thumbnail

Git vs. SVN


SVN Subversion

  • Client/Server 타입 형상 관리 툴
  • 보통 대부분의 기능을 완성해놓고 소스를 중앙 저장소에 commit
  • commit 자체가 중앙 저장소에 해당 기능을 공개한다는 의미
  • 자신만의 version history를 가질 수 없다.
    • local history는 일시적
  • commit한 내용이 다른 개발자에게 바로 영향
  • 서버와의 통신 없이는 작업을 수행할 수 없다
  • 브랜치를 생성할 때 전체 소스 코드의 복사본을 생성
  • 병합 작업 시 중앙 서버의 도움이 필요

Git

  • 분산 저장소 타입 형상 관리 툴
  • 자신만의 version history를 가질 수 있다
  • 필요에 따라 push로 작업 내용 공유
  • 로컬이기 때문에 SVN에 비해 빠르다
  • 네트워크 연결이 필요한 경우에만 서버와 통신
  • 로컬 저장소에서 브랜치를 생성
  • 병합 작업 시 로컬에서 처리

SVN 용어

  • repository
    • 프로젝트의 모든 파일 및 디렉토리의 이력을 저장
  • checkout
    • 저장소에서 프로젝트의 최신 버전을 로컬로 가져오는 작업
  • commit
    • 로컬 작업 디렉토리에서 변경된 파일들을 중앙 저장소에 반영하는 작업
    • 다른 개발자들이 즉시 변경 사항 확인 가능
  • update
    • 저장소에서 최신 변경 사항을 가져와 로컬 작업 디렉토리를 업데이트하는 작업
  • trunk
    • 메인 개발 소스
  • branch
    • trunk에서 분기된 개발 소스
    • 독립적인 작업 영역
  • tag
    • 특정 시점의 프로젝트 버전을 식별하기 위한 이름표
    • 관례적으로 개발을 하지 않고 특정 시점 식별
  • revision
    • 수정된 버전

SVN 명령어

#저장소 생성
svnadmin create /path/to/repository

#저장소에서 체크아웃
svn checkout URL

#변경된 파일 스테이징
svn add file1 file2

#변경 내용 커밋
svn commit -m "Commit message"

#변경 내용 업데이트
svn update

#로컬 변경 사항 확인
svn status

#리비전 로그 확인
svn log

#브랜치 생성
svn copy source_URL destination_URL

#브랜치 머지
svn merge source_URL[@source_revision] destination_URL

#태그 생성
svn copy source_URL destination_URL

#충돌 해결
svn resolve --accept=working file1
profile
🧑🏻‍💻 Hello World!

0개의 댓글