6/15 Git Version Control system

Yoochang Sung·2024년 6월 16일

Git

목록 보기
1/13

Version Control System(VCS)

  • 개발 중 문제가 발생하면, 전후 상황을 파악해 특정 시점 버전으로 돌아갈 수 있어야 한다.
  • 형상관리시스템(Configuration Management System)

Local Version Control System (구 방식)

  • 내 컴퓨터에서 버전 관리 가능 -> 내 컴퓨터 하드가 날아가면 전체 코드가 사라짐
  • 버전은 관리되지만 협업은 힘듬

Centralized VCS

  • 협업 가능
  • Commit하는 순간 배포되어 다수에게 버그 유발 가능
  • 인터넷 안되면 작업 불가
  • 자신만의 version history를 가질 수 없음
  • ex) CVS, SVV ...

Distributed VCS (오늘날의 형태. Git)

  • Commit 하더라도 개인저장소 내 적용
  • 원하는 순간 배포(push) 가능
  • 오프라인에서 작업 가능
  • 자신만의 version history 가짐
  • ex) Mercurial, Git, ...

Git 구성요소

  • working dierctory. 우리 눈에 보이는 폴더. 파일 수정 후 Git에 add를 해줘야 staging area에 등록이 됨.

  • staging area. 이 단계에 있어야 commit이 됨. 버전을 매기기 전 단계

  • Git directory. 버전을 관리하고 있는 곳.

용어

Git에서 특정버전으로 이동한다 - 체크아웃

특정버전으로 이동하면 워킹 디렉토리에 영향을 줌. - 특정버전의 파일 상태로 덮어씌워짐.

파일 상태

  • Untracked. Git에 아무것도 등록되지 않은 상태. Git에서 관리대상으로 인지하지 않음.
    최초 워킹 디렉토리에서 파일을 생성만 했을 때는 이 상태.
    ADD 파일을 하면 Tracked로 바뀜.

  • Tracked.

  1. Staged
  2. Unmodified
  3. Modified(unstaged) - staged도 아니고 commit도 아닌 수정된 상태. 버전이 매겨진 파일을 수정. 수정된 상태에서 다시 버전을 매기려면 stage 상태로 바꿔줘야 함.

Git 작업 순서

  • Working Directory에서 파일 수정
  • Staging Area (index)에 파일을 Staged하여 commit할 스냅샷을 만든다.
  • Staging Area (index)에 있는 파일들을 Commit하여 .git Directory(Repository)에 스냅샷 저장.

Github

  • Git을 호스트해주는 웹 서비스, 협업을 위한 기능 제공
  • 참고 : 소스코드 보안이 중요한 경우 사용을 기피하는 기업도 있다.

Gitlab

  • 설치형 버전관리 시스템. 소스코드 보안이 중요한 기업에서 주로 사용
  • 클라우드 버전 관리 시스템. 10명 이하 무료 (Github와 유사)
  • Issue tracker, Git remote repository, API, Team, Group 기능 제공
profile
Yoochang Sung

0개의 댓글