1. 집중형 시스템 vs 분산형 시스템
(1) 집중형 시스템
- 모든 소스 코드가 한곳에 집중되어 있는 형태
- 하나의 메인 중앙 서버에서 개발 구성원의 모든 소스 코드를 통합적으로 관리 (Client-Server 모델)
- 장점 : 저장소 하나를 중심으로 관리하므로 운영이 수월하다
- 단점 :
- 서버에 문제가 생기면 모든 개발자가 접근 불가능
- 동시에 여러 개발자가 접근하면 충돌 발생
(2) 분산형 시스템
- 분산형 버전관리 시스템(DVCS, Distributed Version Control System)은 저장소가 여러 개 있다.
- 여러 저장소에 각 버전의 소스를 개별 보관
- 분산 저장소는 P2P(peer-to-peer) 방식으로 공유하며, 각 개발자에게 공유 가능한 저장소 사본을 제공
- 서버는 각 저장소 자료를 동기화하고 중개하는 역할만 수행
- 메인 서버에 문제가 생기더라도 지속적으로 개발 가능
대표적인 분산형 관리 시스템이 Git이다.
오픈 소스이며 무료로 사용 가능
2. Git의 특징
- 원격 저장소(remote repository)와 별개로 개발자 각각의 로컬 컴퓨터에 완벽한(원격 저장소의 내용과 동일한) 소스 코드 복제본(clone) 저장 가능
- 완벽한 복제본이 있으면 매번 원격 저장소를 조회하지 않더라도 개발 진행 가능
- 네트워크가 연결되어 있지 않은 상태에서도 로컬 컴퓨터의 소스 코드만으로 버전 관리 가능
- 원격 저장소로 많은 개발자의 저장소와 연결하거나 동기화 작업 진행 가능
- 직접 만든 새로운 코드를 배포하거나, 내려받은 소스 코드를 수정한 후 다시 병합할 수도 있다
(1) git을 통한 백업
- 로컬 컴퓨터에서 독립적으로 버전 관리를 하는 경우, 해당 컴퓨터에 문제가 발생하면 모든 소스를 잃을 수 있다.
- git을 사용해서 코드를 원격 저장소에 저장 가능
- 로컬 컴퓨터의 저장소를 동기화하여 원격 저장소에 백업
- 사무실, 집 등 여러 공간에서 원격 저장소에 저장된 내용을 내려 받아 개발을 이어서 진행 가능
(2) git을 통한 협업
- 다수의 개발자와 코드를 공유하고 협업할 때 유용
- Git은 모든 변경 이력(시점, 사람, 파일 등)을 저장
- Git에서는 원격 저장소가 중앙 서버 역할을 한다.
- Github (https://github.com/)
- 하나의 소스 코드를 여러 개의 branch로 분기하여 독립된 기능 구현 가능
- 독립적으로 구현된 소스를 주고 받으며, 필요한 경우 각 branch를 하나로 병합 가능
3. Git 동작 단계
- Init (초기화) : 폴더를 git 저장소로 변경
- Commit : 변경된 코드의 이력을 기록
- Branch : 분리/격리된 코드 이력을 기록
- Merge : 기존 이력과 분리된 이력을 통합
- Push : 로컬 저장소의 이력을 서버로 전송 및 공유
반응형
'Git' 카테고리의 다른 글
[GIT] Git 기본 용어와 기본 플로우(flow) (0) | 2022.01.17 |
---|---|
[GIT] Git 설치 (Window) (0) | 2022.01.17 |
git 소스코드 Push (0) | 2021.09.15 |
git branch 명령어와 이해 (0) | 2021.09.14 |
Git의 이해 (feat. git object) (0) | 2021.09.14 |
댓글