[VCS] Git 관련 용어 간단히 살펴보기
Programming/Tips

[VCS] Git 관련 용어 간단히 살펴보기

728x90
반응형

버전 관리

파일 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템

  1. 중앙집중식 버전 관리
    • 파일을 관리하는 서버가 별도로 있고, 클라이언트가 중앙 서버에서 파일을 받아서 사용
    • 모든 클라이언트의 로컬 데이터베이스를 관리하는 것보다 VCS 하나를 관리하는게 쉬움
    • 중앙 서버에 문제가 생기면 치명적
  2. 분산 버전 관리
    • 저장소를 전부 복제
    • 서버에 문제가 생기면 복제물로 다시 작업 시작 (서버 복원)
    • 리모트 저장소를 통해 협업 가능

Git

깃. 소스코드 관리를 위한 분산 버전 관리 시스템
빠른 수행 속도에 중점을 두고 있음

Repository

저장소
프로젝트 관련 내용을 저장하는 공간

  • local: 컴퓨터 내부
  • remote: 대표적으로 Github 같이 공유되는 사이트

Git 파일의 상태

(추적되고 있는 Tracked 상태)

  • Committed

  • 데이터가 로컬 데이터베이스에 안전하게 저장됨
  • Modified

  • 수정한 파일을 아직 로컬 데이터베이스에 커밋하지 않은 것
  • Staged

  • 현재 수정한 파일을 곧 커밋할 것

Git 프로젝트의 단계

  • .git directory

  • 프로젝트의 메타데이터와 객체 데이터베이스를 저장하는 곳
  • 다른 컴퓨터의 저장소를 Clone할 때 Git Directory가 만들어짐
  • working tree

  • 프로젝트의 특정 버전을 Checkout 한 것
  • 작업 중인 디스크 내의 git directory 안에 압축된 데이터베이스에서 파일을 가져와 워킹 트리를 생성
  • Staging Area (= index)

  • 단순한 파일로 곧 커밋할 파일에 대한 정보 저장

명령어

  • git init

  • .git 폴더 생성 (파일 추적 및 작업 가능)
  • git add

  • 변경된 작업 파일을 Staging Area로 추가
  • git commit

  • Staging Area의 내용을 local repository에 확정
  • git push

  • local repository의 내용을 remote repository로 업로드
  • git pull

  • local repository의 내용을 remote repository에서 가져옴
  • git clone

  • .git을 포함한 remote repository의 파일을 local repository에 복사

협업

  • branch

  • 독립된 작업 공간
  • 기본적으로 Main[Master] 브랜치 생성 (브랜치를 나누어 작업한 후 Main[Master]로 합치는 작업을 함)
  • checkout 또는 switch 명령으로 브랜치 변경
  • head

  • 현재 작업중인 branch를 가르킴
  • merge

  • 두 개의 branch에서 작업한 내용을 하나로 합침 (현재 브랜치를 기준으로 병합)
  • 같은 곳을 수정하면 충돌이 발생해 이를 해결해야 함!
728x90
반응형