Git은 소규모 프로젝트부터 대규모 프로젝트까지 효율적이고 신속하게 버전 관리를 처리하는 데 사용되는 오픈 소스 분산 버전 관리 시스템입니다. svn은 여러 사람이 동일한 프로젝트를 공동으로 개발하고 공유 리소스를 실현하여 궁극적으로 중앙 집중식 관리를 달성하는 데 사용되는 오픈 소스 중앙 집중식 버전 관리 시스템입니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, Git 버전 2.30.0, Dell G3 컴퓨터.
git이란 무엇입니까
Git은 크고 작은 프로젝트의 민첩하고 효율적인 처리를 위한 무료 오픈 소스 분산 버전 제어 시스템입니다.
Git은 효과적이고 빠르게 사용되는 오픈 소스 분산 버전 제어 시스템입니다. 소규모 프로젝트부터 대규모 프로젝트까지 버전 관리를 처리합니다. Git은 Linux 커널 개발 관리를 돕기 위해 Linus Torvalds가 개발한 오픈 소스 버전 제어 소프트웨어입니다.
분산형과 중앙형의 가장 큰 차이점은 개발자가 로컬로 제출할 수 있고 각 개발자가 복제(git clone)를 통해 로컬 시스템에 완전한 Git 저장소를 복사한다는 것입니다.
Git은 분산 버전 관리 시스템입니다
Git의 특징은 다음과 같습니다.
Git의 각 클론(clone) 저장소는 동일합니다. 원하는 저장소를 복제하여 자신만의 저장소를 만들 수 있으며 원하는 경우 저장소를 다른 저장소의 소스로 사용할 수도 있습니다.
Git의 모든 추출 작업은 실제로 코드 저장소의 전체 백업입니다.
제출은 로컬에서 완전히 완료되었으며, 다른 사람이 귀하에게 권한을 부여할 필요가 없습니다. 귀하는 저장소의 마스터이며 제출은 항상 성공적입니다.
이전 버전을 기반으로 한 변경 사항도 성공적으로 제출할 수 있으며, 제출하면 이전 버전을 기반으로 하는 새 브랜치가 생성됩니다.
Git 제출은 작업에 완전히 만족할 때까지 중단되지 않습니다. PUSH 또는 다른 사람에게 저장소 PULL을 수행하면 자동으로 해결될 수 없는 충돌이 발생합니다. 손으로.
충돌 해결은 더 이상 SVN과 같은 제출 경쟁과 같지 않지만 필요한 경우에만 병합 및 충돌 해결이 가능합니다.
Git은 중앙 집중식 작업 모드를 시뮬레이션할 수도 있습니다.
Git 저장소는 서버에 균일하게 배치됩니다.
Git 저장소에 권한을 부여할 수 있습니다. 저장소를 생성할 수 있는 사람, 저장소에 푸시할 수 있는 사람, 할 수 있는 사람 저장소를 읽습니다(복제).
팀 구성원은 먼저 서버의 저장소를 로컬에 복제하고 서버 저장소에서 최신 업데이트를 자주 가져옵니다(PULL).
팀 구성원은 자신의 저장소를 푸시(PUSH)합니다. 변경 사항을 서버의 저장소에 적용하고 다른 사람이 저장소와 동기화(PULL)하면 변경 사항이 자동으로 적용됩니다
Git의 중앙 집중식 작업 모델은 매우 유연합니다
네트워크에서 멀리 떨어져 있어도 완전히 가능합니다. Git 서버가 위치해 있어 이동/출장 등 평소대로 코드 라이브러리를 사용할 수 있습니다
PULL, PUSH만 사용하면 서버와의 동기화가 완료되고 제출이 가능할 때 제출할 수 있습니다. Git 서버가 있는 네트워크에 액세스
Git은 rebase 명령을 제공하여 변경 사항이 최신 코드 변경 사항을 기반으로 한 것처럼 보이게 할 수 있습니다
Git에는 Subversion보다 훨씬 더 많은 작업 모드를 선택할 수 있습니다. can match
svn이란
SVN은 Subversion의 약자로 브랜치 관리 시스템의 효율적 관리를 통해, 한마디로 여러 사람이 사용하는 오픈소스 버전 관리 시스템입니다. 동일한 프로젝트를 공동으로 개발하여 공유 자원을 달성하고 최종 집중을 달성합니다.
SVN은 시간에 따라 변하는 데이터를 관리합니다. 이 데이터는 중앙 저장소에 저장됩니다. 이 아카이브는 일반 파일 서버와 매우 유사하지만 모든 파일 변경 사항을 기억합니다. 이렇게 하면 파일을 이전 버전으로 복원하거나 파일의 변경 기록을 찾아볼 수 있습니다. Subversion은 프로그램 소스 코드를 포함하여 모든 유형의 파일을 관리하는 데 사용할 수 있는 범용 시스템입니다.
SVN은 중앙 집중식 버전 관리 시스템입니다.
중앙집중식 버전 관리 시스템은 모든 파일의 개정판을 저장하는 단일 중앙 관리 서버를 갖고 있으며, 함께 일하는 사람들은 클라이언트를 통해 이 서버에 접속하여 최신 파일을 꺼내거나 업데이트를 제출합니다.
svn의 기능은 다음과 같이 요약됩니다.
각 저장소에는 고유한 URL(공식 주소)이 있으며 각 사용자는 이 주소에서 코드와 데이터를 얻습니다.
코드 업데이트 얻기 이 고유한 저장소는 최신 데이터를 얻기 위해 동기화됩니다.
제출물에는 네트워크 연결이 있어야 합니다(비로컬 저장소).
제출에 승인이 필요합니다. 쓰기 권한이 없으면 제출이 실패합니다.
제출이 매번 성공하지 못할 수도 있습니다. 다른 사람이 먼저 제출하면 "변경 사항은 오래된 버전을 기반으로 합니다. 먼저 업데이트한 다음 제출하세요"라는 메시지가 표시됩니다.
충돌 해결은 제출 속도 경쟁입니다. , 먼저 제출하면 모든 것이 잘 될 것입니다. 느린 사람은 먼저 제출할 것입니다. 커밋 후 갈등 해결에 문제가 발생할 수 있습니다.
이점: 모든 사람이 프로젝트에 참여하는 다른 사람들이 작업 중인 내용을 어느 정도 볼 수 있습니다. 관리자는 각 개발자의 권한을 쉽게 제어할 수도 있습니다.
단점: 중앙 서버의 단일 실패 지점.
한 시간 동안 다운되면 그 누구도 이 시간 내에 업데이트, 복원, 비교 등을 제출할 수 없으며 함께 작업하는 것도 불가능해집니다. 중앙 서버의 디스크에 장애가 발생하고 백업이 이루어지지 않거나 백업이 적시에 이루어지지 않으면 데이터 손실의 위험이 있습니다. 최악의 시나리오는 클라이언트에서 추출한 일부 스냅샷 데이터를 제외하고 전체 프로젝트의 모든 이력 변경 기록을 완전히 잃어버리는 것인데, 모든 데이터가 추출되었다고 보장할 수 없기 때문에 여전히 문제가 됩니다.
원칙적으로 svn은 파일 내용의 구체적인 차이점에만 관심을 갖습니다. 매번 어떤 파일이 업데이트되었는지, 어떤 줄과 내용이 업데이트되었는지 기록됩니다.
svn과 git의 적용 범위 차이
해당 객체가 다릅니다.
Git은 오픈 소스 프로젝트에 참여하는 개발자에게 적합합니다. 높은 수준의 전문 지식으로 인해 사용 편의성보다 효율성에 더 중점을 둡니다. SVN은 다릅니다. 일반 회사 개발 팀에 적합합니다. 사용하기가 더 쉽습니다.
사용하는 경우가 다릅니다.
Git은 인터넷을 통해 여러 개발 역할을 가진 단일 프로젝트를 개발하는 데 적합하고, SVN은 프로젝트 관리자가 조정하는 기업 내 여러 병렬 프로젝트 개발에 적합합니다.
권한 관리 전략이 다릅니다.
Git에는 엄격한 권한 관리 제어가 없습니다. 계정이 있는 한 코드 내보내기, 가져오기 및 롤백 작업 수행도 가능합니다. SVN은 엄격한 권한 관리를 갖추고 있으며, 그룹 또는 개인별로 특정 하위 디렉터리에 대한 권한을 제어할 수 있습니다. 읽기 권한과 쓰기 권한을 구별합니다. 보다 엄밀하게 말하면 롤백 작업은 지원되지 않습니다. 코드가 항상 추적 가능한지 확인하세요.
지점의 사용 범위가 다릅니다.
Git에서는 전체 Warehouse만 Branch할 수 있으며, 한번 삭제하면 복원할 수 없습니다. SVN에서 분기는 기본적으로 복사 작업인 모든 하위 디렉터리를 대상으로 할 수 있습니다. 따라서 계층적 분기를 많이 생성하고, 필요하지 않을 때는 삭제하고, 나중에 필요할 때 이전 SVN 버전을 확인하면 됩니다.
세 번째 점에 따르면 Git은 순수 소프트웨어 프로젝트, 일반적으로 Linux 커널, 비지박스 등과 같은 일부 오픈 소스 프로젝트에 적합합니다. 반대로 SVN은 다중 프로젝트 관리에 능숙합니다.
예를 들어 휴대폰 프로젝트의 bsp/디자인 문서/파일 시스템/응용 프로그램/자동 컴파일 스크립트를 SVN 창고에 저장하거나, 휴대폰 프로젝트 5개의 파일 시스템을 SVN에 저장할 수 있습니다. n(프로젝트 수)*m(컴포넌트 수) 리포지토리를 git에 설정해야 합니다. SVN에서는 최대 n 또는 m만 필요합니다.
Git은 버전 번호로 128비트 ID를 사용하며 체크아웃할 때 어느 브랜치인지 표시해야 하지만 SVN은 전 세계적으로 고유한 버전 번호로 증분하는 일련 번호를 사용하므로 더 간결하고 이해하기 쉽습니다. . gittag를 사용하여 일부 리터럴 별칭을 만들 수 있지만 이는 결국 특수 버전에만 해당됩니다.
추적 가능성
git의 일반적인 개발 프로세스는 브랜치 설정, 개발, 로컬 마스터에 제출 및 브랜치 삭제입니다. 그 결과 이전 수정 세부정보가 손실됩니다.
SVN에서도 세부 정보를 잃지 않고 동일한 작업을 수행하세요.
부분 업데이트, 부분 복원.
SVN은 관리를 위해 각 폴더에 .svn 폴더를 생성하므로 부분 업데이트나 복원을 쉽게 구현할 수 있습니다. 특정 부분만 업데이트하고 싶다면 svn이 아주 잘 할 수 있습니다. 동시에 코드를 잘못 작성하면 부분복원이 쉽게 이루어질 수 있다. 물론, git은 히스토리 버전을 통해서도 복원이 가능하지만, 부분복원은 쉽지 않다.
추천 학습: "Git Tutorial"
위 내용은 git과 svn이란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!