IT recording...

[Opensource_git] 01. 깃과 버전 관리 본문

Git

[Opensource_git] 01. 깃과 버전 관리

I-one 2022. 2. 17. 15:40

[원문링크]

https://adorable-aspen-d23.notion.site/OpenSrc_Git_01_-1b4521cb01df41f292ad5ef432f885d5

 

OpenSrc_Git_01_깃과 버전 관리

깃과 버전 관리

adorable-aspen-d23.notion.site

[2021 - 1학기 수강한 오픈소스SW입문 강의 정리본입니다.]

깃과 버전 관리

1. 버전 관리

버전 관리는 왜 필요한가?

  • 코드 복귀 지점을 기록하여 안정적인 작업을 지원하기 위해서

2. 버전 관리 시스템

  1. 버전 관리 시스템 종류
  • VCS (Version Control System) : 코드와 콘텐츠의 변화를 관리하고 추적하는 소프트웨어
  • SCCS (Source Code Control System) : 최초의 버전 관리 시스템 , 유닉스 사용 가능
  • Repository : VCS에서 버전 파일들을 저장하고 관리하는 공간
  1. 버전 관리 소프트웨어
  • 집중형 : 메인 중앙 서버에서 통합적으로 관리함 (클라이언트-서버)
  • ex) SCCS(1970), RCS(1980,정방향/역방향 도입), CVS(1986) , SubVersion(2000)

장점 : 저장소 하나를 중심으로 관리해서 시스템 운영 수월

단점 : 중앙 저장 공간에 문제가 생길 시 (충돌 등 발생) 안정성 X

  • 분산형(DVCS) : 여러 저장소에 각 버전별 소스를 개별 보관함 , P2P방식으로 공유, 각 개발자가 저장소 사본을 가지고 있음 , 서버는 각 저장소 자료들을 동기화하고 중개하는 역할만 수행

장점 : 메인서버에 문제가 생겨도 지속적인 개발 가능

단점 : 다소 복잡

→ 분산형 관리 시스템

  • GIT : 리눅스 개발자로부터 개발, 오픈소스
  • Mercurial : 파이썬으로 개발, 무료
  • BitKeeper : 1998출시, 유료
  1. GIT
  • 특징
    1. 원격 저장소와 별개로 개발자 각각의 로컬 컴퓨터에 복제본 소스 코드 저장 가능
    2. 네트워크나 인터넷 연결 없이도 로컬로 버전 관리 가능
    3. 컴퓨터에 문제가 생긴다면 지금까지의 소스를 모두 잃을 수 있음
    4. 로컬 컴퓨터의 저장소를 동기화하여 원격 저장소에 백업함
  • 협업
    1. 코드 공유
    2. 책임과 기록 : commit을 통해 모든 코드의 수정 이력을 기록함 ( 커밋으로 저장된 원본 객체는 수정할 수 없음)
    3. 원격 공유 : Push, Pull, Fetch
    4. 병합 : Branch로 독립된 기능 구현 후 합치기 가능
    5. 공개 : Fork, Pull Request

'Git' 카테고리의 다른 글

[Opensource_git] 06. 브랜치  (0) 2022.02.17
[Opensource_git] 05. 원격저장소  (0) 2022.02.17
[Opensource_git] 04. 커밋  (0) 2022.02.17
[Opensource_git] 03. 깃 개념잡기  (0) 2022.02.17
[Opensource_git] 02. 깃 환경설정  (0) 2022.02.17
Comments