Git은 분산 버전 관리 시스템입니다. Git은 Linux 커널 개발 관리를 돕기 위해 Linus Torvalds가 개발한 오픈 소스 분산 버전 제어 소프트웨어로 소규모 프로젝트부터 대규모 프로젝트까지의 프로젝트 버전 관리를 효과적이고 신속하게 처리하는 데 사용됩니다.
이 튜토리얼의 운영 환경: windows7 시스템, mysql8.0.22 버전, Dell G3 컴퓨터.
git은 어떤 버전 관리 시스템에 속하나요?
Git은 분산 버전 관리 시스템입니다.
Git에는 다음과 같은 특징이 있습니다:
Git의 각 클론 저장소는 동일합니다. 원하는 저장소를 복제하여 자신만의 저장소를 만들 수 있으며 원하는 경우 저장소를 다른 저장소의 소스로 사용할 수도 있습니다.
Git의 모든 추출 작업은 실제로 코드 저장소의 전체 백업입니다.
제출은 로컬에서 완전히 완료되었으며, 다른 사람이 귀하에게 권한을 부여할 필요가 없습니다. 귀하는 저장소의 마스터이며 제출은 항상 성공적입니다.
이전 버전을 기반으로 한 변경 사항도 성공적으로 제출할 수 있으며, 제출하면 이전 버전을 기반으로 하는 새 브랜치가 생성됩니다.
Git 제출은 작업에 완전히 만족할 때까지 중단되지 않습니다. PUSH 또는 다른 사람에게 저장소 PULL을 수행하면 자동으로 해결될 수 없는 충돌이 발생합니다. 손으로.
충돌 해결은 더 이상 SVN과 같은 제출 경쟁과 같지 않지만 필요한 경우에만 병합 및 충돌 해결이 가능합니다.
Git은 중앙 집중식 작업 모드를 시뮬레이션할 수도 있습니다.
Git 저장소는 서버에 균일하게 배치됩니다.
Git 저장소에 권한을 부여할 수 있습니다. 저장소를 생성할 수 있는 사람, 저장소에 푸시할 수 있는 사람, 할 수 있는 사람 저장소를 읽습니다(복제).
팀 구성원은 먼저 서버의 저장소를 로컬에 복제하고 서버 저장소에서 최신 업데이트를 자주 가져옵니다(PULL).
팀 구성원은 자신의 저장소를 푸시(PUSH)합니다. 변경 사항을 서버의 저장소에 적용하고 다른 사람이 저장소와 동기화(PULL)하면 변경 사항이 자동으로 적용됩니다
Git의 중앙 집중식 작업 모델은 매우 유연합니다
네트워크에서 멀리 떨어져 있어도 완전히 가능합니다. Git 서버가 위치해 있어 이동/출장 등 평소대로 코드 라이브러리를 사용할 수 있습니다
PULL, PUSH만 사용하면 서버와의 동기화가 완료되고 제출이 가능할 때 제출할 수 있습니다. Git 서버가 있는 네트워크에 액세스
Git은 rebase 명령을 제공하여 변경 사항이 최신 코드 변경 사항을 기반으로 한 것처럼 보이게 할 수 있습니다
Git에는 Subversion보다 훨씬 더 많은 작업 모드를 선택할 수 있습니다. 일치할 수 있습니다
"버전 관리"란 무엇입니까?
버전 관리는 특정 버전의 개정 상태를 확인하고 나중에 되돌릴 수 있도록 하나 또는 여러 파일 내용의 변경 사항을 기록하는 시스템입니다. 모든 유형의 파일을 버전 관리할 수 있습니다.
그래픽 또는 웹 디자이너라면 특정 이미지나 페이지 레이아웃 파일의 모든 개정판을 저장해야 할 수도 있습니다(이 기능은 매우 갖고 싶은 기능일 수 있습니다). 버전 제어 시스템을 사용하는 것이 현명합니다. VCS)를 선택합니다.
이를 사용하면 파일을 이전 상태로 롤백하거나 전체 프로젝트를 과거 특정 시점의 상태로 롤백할 수 있으며 파일의 변경 내용을 비교하고 누가 수정했는지 확인할 수 있습니다. 이상한 문제의 원인이 무엇인지, 언제 기능 버그를 신고한 사람인지 등을 알아볼 수 있는 곳입니다.
버전 관리 시스템을 사용한다는 것은 일반적으로 전체 프로젝트에서 파일을 엉망으로 만들고 삭제하더라도 파일을 원래 모습으로 쉽게 복원할 수 있다는 의미이기도 합니다. 그러나 추가 작업량은 최소화됩니다.
로컬 버전 관리 시스템
많은 사람들이 다른 버전을 저장하기 위해 전체 프로젝트 디렉토리를 복사하는 데 익숙하며, 차이점을 보여주기 위해 이름을 변경하고 백업 시간을 추가할 수도 있습니다. 이 작업의 유일한 장점은 간단하지만 실수하기가 매우 쉽다는 것입니다. 때로는 작업 디렉터리가 혼란스러워서 실수로 잘못된 파일을 쓰거나 예상치 못한 파일을 덮어쓰는 경우도 있습니다.
이 문제를 해결하기 위해 사람들은 오래 전에 많은 로컬 버전 제어 시스템을 개발해 왔으며, 대부분은 일종의 간단한 데이터베이스를 사용하여 이전 파일 업데이트의 차이점을 기록합니다.
그림 1. 로컬 버전 제어
가장 인기 있는 것은 RCS라고 하며 오늘날에도 여전히 많은 컴퓨터 시스템에서 볼 수 있습니다. rcs 명령은 널리 사용되는 Mac OS X 시스템에 개발자 툴킷을 설치한 후에도 사용할 수 있습니다. 모든 패치를 적용하여 패치 세트(패치는 파일 수정 전후의 변경 사항)를 하드 디스크에 저장하는 방식으로 작동하며, 파일의 각 버전 내용을 다시 계산할 수 있습니다.
중앙 집중식 버전 관리 시스템
다음으로 사람들은 또 다른 문제에 직면합니다. 어떻게 서로 다른 시스템의 개발자가 함께 작업할 수 있을까요?
따라서 중앙 버전 제어 시스템(Centralized Version Control Systems, 줄여서 CVCS)이 탄생했습니다. CVS, Subversion 및 Perforce와 같은 시스템에는 모든 파일의 개정판을 저장하는 단일 중앙 관리 서버가 있으며 함께 작업하는 사람들은 클라이언트를 통해 이 서버에 연결하여 최신 파일을 검색하거나 갱신을 커밋합니다. 이는 수년에 걸쳐 버전 제어 시스템의 표준 관행이 되었습니다.
그림 2. 중앙 집중식 버전 제어
이 접근 방식은 특히 구식 로컬 VCS에 비해 많은 이점을 제공합니다. 이제 모든 사람이 프로젝트에 참여한 다른 사람들이 작업 중인 내용을 어느 정도 볼 수 있습니다. 관리자는 또한 각 개발자의 권한을 쉽게 제어할 수 있으며 CVCS 관리는 각 클라이언트에서 로컬 데이터베이스를 유지 관리하는 것보다 훨씬 쉽습니다.
사물에는 좋은 것과 나쁜 것, 두 가지 측면이 있습니다. 이 작업의 가장 명백한 단점은 중앙 서버가 단일 실패 지점이라는 것입니다. 시스템이 한 시간 동안 다운되면 이 시간 동안 누구도 업데이트를 제출할 수 없으며 누구도 함께 작업할 수 없습니다. 중앙 데이터베이스가 있는 디스크가 손상되어 제대로 백업하지 않으면 의심할 여지 없이 모든 데이터가 손실됩니다. 여기에는 프로젝트의 전체 변경 내역이 포함되며 사람들이 각자의 컴퓨터에 보관하는 개별 스냅샷만 남게 됩니다. 로컬 버전 제어 시스템에도 비슷한 문제가 있습니다. 전체 프로젝트 기록이 단일 위치에 보관되는 한 모든 기록 업데이트 기록이 손실될 위험이 있습니다.
분산 버전 제어 시스템
그래서 분산 버전 제어 시스템(DVCS)이 탄생했습니다. Git, Mercurial, Bazaar 및 Darcs와 같은 시스템에서 클라이언트는 파일 스냅샷의 최신 버전을 추출할 뿐만 아니라 코드 저장소를 완전히 미러링합니다. 이러한 방식으로 공동 작업에 사용되는 서버에 오류가 발생하면 미러링된 로컬 웨어하우스를 사용하여 나중에 복구할 수 있습니다. 모든 복제 작업은 실제로 코드 저장소의 완전한 백업이기 때문입니다.
그림 3. 분산 버전 제어
또한 이러한 시스템 중 다수는 여러 다른 원격 코드 저장소와 상호 작용하도록 지정할 수 있습니다. 이런 방식으로 동일한 프로젝트에서 다양한 작업 그룹의 사람들과 협업할 수 있습니다. 이전 중앙 집중식 시스템에서는 불가능했던 계층적 모델 기반 워크플로 등 필요에 따라 다양한 협업 프로세스를 설정할 수 있습니다.
위 내용은 git은 어떤 버전 관리 시스템에 속합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!