본문 바로가기
Git

Git 이란?

by 걸어가는 신사 2021. 9. 14.

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

댓글