[Open Source Software] - Git (VSC, Git, Github)

서현이의 개발 기록장·2022년 10월 27일
0

Open Source Programming

목록 보기
5/5
post-thumbnail

VCS(Version Control System)

버전 관리 시스템의 필요성

  • 인원이 많을 수록 프로젝트 기간이 길어질수록 최종 업데이트 파일을 확인하기 어려워진다

로컬 버전 관리 (VCS)

  • Patch set (파일 변경 부분) 관리 - 모든 파일을 특정 시점으로 되돌릴 수 있음

중앙 집중식 버전 관리 (CVCS, Centralized Version Control System)

  • 파일 관리 서버 존재 - 클라이언트가 중앙 서버에서 파일을 받아 사용
  • 서버에 문제가 발생했을 때 복구가 힘들고, 작업 재개에 오랜 시간이 소요 됨
  • 오프라인 상태에서 작업하기 힘듦

분산 버전 관리 (DVCS, Distributed Version Control System)

  • 서버 뿐만 아니라 개발자들도 History를 보관
  • 저장소를 History와 더불어 전부 복제 - Remote Repository(원격 저장소) 존재
  • CVCS 단점 보완
  • Git, Mercurial, Darcs 등

Git과 기존 CVS의 차이

  • 기존 CVS의 경우 델타 베이스로 구성 (변경된 내용만 보관)
  • Git은 프로젝트 전체 내용을 스냅 샷으로 보관
  • 각각의 스냅 샷은 변경되지 않은 파일에 대한 예전 링크를 가진다. (가볍고 빠르다)

Git

여러 개발 PC와 저장소에 분산해서 저장

컴퓨터에 있는 대부분의 파일을 Git으로 관리하는 것이 가능

특징

  • 코드를 저장하거나 저장 시점으로 되돌아 갈 수 있게 해주는 시스템
  • 가장 많이 사용
  • 무료/ 오픈소스
  • 빠르며 오프라인 작업 가능
  • 실수 고치기 쉬움
  • 쉽고 빠른 브랜치를 이용해서 각각의 기능별로 브랜치를 만들어 효율적인 협업이 가능
  • 무엇보다 개인의 포트폴리오를 관리할 수 있음 (자기 PR)

Git 설치

// Linux

~$ sudo apt update
~$ sudo apt install git
~$ git

// Windows

-> 다운로드


스테이징 (Staging)

  • 작업 디렉터리(Working Directory)의 파일을 스테이지 영역으로 전달 (Index)
  • 커밋할 파일들을 선택해서 모아두는 장소 (Stage Area)
  • “git add” 명령 사용

커밋 (Commit)

  • “소프트웨어 버전“ 또는 “버전 만들기"로 이해
  • 스테이지 영역의 파일을 로컬 저장소(.git)으로 전달
  • 파일의 이력 (내용, 이유 등)을 추적하기 쉽도록 상세 설명을 추가할 수 있다
  • 현재 커밋을 가리키는 HEAD 생성
  • “git commit” 명령 사용


profile
HanYang ERICA Univ. Department of Artificial Intelligence

0개의 댓글