InfoGrab DocsInfoGrab Docs

CVS에서 마이그레이션

CVS에서 Git으로 마이그레이션하는 방법을 설명합니다.

CVS 는 SVN 과 유사한 구형 중앙화 버전 관리 시스템입니다. CVS vs Git # 다음 목록은 CVS와 Git의 주요 차이점을 보여줍니다: Git은 분산형입니다. 반면 CVS는 중앙화되어 있으며 클라이언트-서버 아키텍처를 사용합니다. 이는 작업 영역이 전체 저장소의 복사본이기 때문에 Git이 더 유연한 워크플로우를 가진다는 것을 의미합니다. 예를 들어 원격 서버와 통신할 필요가 없기 때문에 브랜치 전환이나 머지 시 오버헤드가 줄어듭니다. 원자적 작업. Git에서 모든 작업은 원자적 입니다. 전체로서 성공하거나 변경 없이 실패합니다. CVS에서는 커밋(및 기타 작업)이 원자적이지 않습니다. 저장소에서 작업이 중간에 중단되면 저장소가 일관성 없는 상태로 남을 수 있습니다. 저장 방법. CVS의 변경 사항은 파일별(변경 집합)이지만 Git에서는 커밋된 파일이 전체적으로(스냅샷) 저장됩니다. 이는 Git에서 전체 변경 사항을 되돌리거나 취소하는 것이 매우 쉽다는 것을 의미합니다. 수정 ID. CVS의 변경 사항이 파일별로 이루어진다는 사실 때문에 수정 ID는 버전 번호로 표시됩니다. 예를 들어 1.4 는 주어진 파일이 몇 번 변경되었는지를 반영합니다. Git에서는 전체 프로젝트의 각 버전(각 커밋)이 SHA-1로 부여된 고유한 이름을 가집니다. 머지 추적. Git은 CVS처럼 커밋 전 머지(또는 업데이트 후 커밋) 방식이 아닌 머지 전 커밋 방식을 사용합니다. 새 커밋을 만들 준비를 하는 동안 다른 사람이 같은 브랜치에 새 커밋을 만들고 중앙 저장소에 푸시한 경우, CVS는 커밋하기 전에 먼저 작업 디렉토리를 업데이트하고 충돌을 해결하도록 강제합니다. Git은 그렇지 않습니다. 먼저 커밋하고 버전 관리에 상태를 저장한 다음 다른 개발자의 변경 사항을 머지합니다. 다른 개발자에게 머지를 수행하고 충돌을 직접 해결하도록 요청할 수도 있습니다. 서명된 커밋. Git은 추가 보안과 커밋이 원래 작성자로부터 온 것임을 확인하기 위해 커밋 서명 을 지원합니다. GitLab은 서명된 커밋이 올바르게 확인되었는지 여부를 표시합니다. 이전 항목 중 일부는 이 훌륭한 Stack Overflow 게시물 에서 가져왔습니다. 더 완전한 차이점 목록은 다양한 버전 관리 소프트웨어 비교 에 대한 Wikipedia 문서를 참조하세요. 마이그레이션 이유 # CVS는 2008년 이후 새 릴리스가 없는 구형 시스템입니다. Git은 더 생산적인 워크플로우를 위한 더 많은 도구를 제공합니다(예: git bisect ). Git/GitLab으로 마이그레이션하면 다음과 같은 이점이 있습니다: 짧은 학습 곡선. Git은 시작하는 데 도움이 되는 방대한 커뮤니티와 수많은 튜토리얼이 있습니다(우리의 Git 토픽 참조). 현대 도구와의 통합. Git 및 GitLab으로 마이그레이션하면 버전 관리, 이슈 추적, 코드 리뷰, CI/CD 등이 내장된 오픈 소스 엔드투엔드 소프트웨어 개발 플랫폼을 갖출 수 있습니다. 많은 네트워크 프로토콜 지원. Git은 SSH, HTTP/HTTPS 및 rs