IT recording...
[Opensource_git] 01. 깃과 버전 관리 본문
[원문링크]
https://adorable-aspen-d23.notion.site/OpenSrc_Git_01_-1b4521cb01df41f292ad5ef432f885d5
[2021 - 1학기 수강한 오픈소스SW입문 강의 정리본입니다.]
깃과 버전 관리
1. 버전 관리
버전 관리는 왜 필요한가?
- 코드 복귀 지점을 기록하여 안정적인 작업을 지원하기 위해서
2. 버전 관리 시스템
- 버전 관리 시스템 종류
- VCS (Version Control System) : 코드와 콘텐츠의 변화를 관리하고 추적하는 소프트웨어
- SCCS (Source Code Control System) : 최초의 버전 관리 시스템 , 유닉스 사용 가능
- Repository : VCS에서 버전 파일들을 저장하고 관리하는 공간
- 버전 관리 소프트웨어
- 집중형 : 메인 중앙 서버에서 통합적으로 관리함 (클라이언트-서버)
- ex) SCCS(1970), RCS(1980,정방향/역방향 도입), CVS(1986) , SubVersion(2000)
장점 : 저장소 하나를 중심으로 관리해서 시스템 운영 수월
단점 : 중앙 저장 공간에 문제가 생길 시 (충돌 등 발생) 안정성 X
- 분산형(DVCS) : 여러 저장소에 각 버전별 소스를 개별 보관함 , P2P방식으로 공유, 각 개발자가 저장소 사본을 가지고 있음 , 서버는 각 저장소 자료들을 동기화하고 중개하는 역할만 수행
장점 : 메인서버에 문제가 생겨도 지속적인 개발 가능
단점 : 다소 복잡
→ 분산형 관리 시스템
- GIT : 리눅스 개발자로부터 개발, 오픈소스
- Mercurial : 파이썬으로 개발, 무료
- BitKeeper : 1998출시, 유료
- GIT
- 특징
- 원격 저장소와 별개로 개발자 각각의 로컬 컴퓨터에 복제본 소스 코드 저장 가능
- 네트워크나 인터넷 연결 없이도 로컬로 버전 관리 가능
- 컴퓨터에 문제가 생긴다면 지금까지의 소스를 모두 잃을 수 있음
- 로컬 컴퓨터의 저장소를 동기화하여 원격 저장소에 백업함
- 협업
- 코드 공유
- 책임과 기록 : commit을 통해 모든 코드의 수정 이력을 기록함 ( 커밋으로 저장된 원본 객체는 수정할 수 없음)
- 원격 공유 : Push, Pull, Fetch
- 병합 : Branch로 독립된 기능 구현 후 합치기 가능
- 공개 : 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