CM/Git

Git 기초

2022. 7. 31. 14:08
목차
  1. Git
  2. Git의 특징
  3. Git의 세가지 단계
  4. Git의 파일 상태
  5. Git의 핵심

Git

버전 관리 시스템으로 DVSC(분산 버전 관리 시스템)에 속한다. 로컬 저장소는 서버 저장소의 히스토리를 전부 복사하며 서버 저장소에 문제가 생기면 로컬 저장소로 언제든 복원 가능하다.

DVSC(분산 버전 관리 시스템)

Git의 특징

  • 각 버전을 스냅샷으로 저장해 보관

각 버전의 스냅샷
Staging Area의 스냅샷

 

  • Git은 오직 데이터를 추가
    한번 커밋되어진 파일을 삭제할 수 있는 방법이 없다. → 데이터를 잃어버릴 수 없다.
  • 거의 모든 명령을 로컬에서 진행
    CVSC(중앙집중식 버전 관리 시스템)에서는 네트워크 속도에 영향을 받지만 git은 로컬 저장소에 모든 히스토리, 버전이 있기에 서버에 접근할 일이 거의 없어 대부분의 명령을 로컬에서 실행 → 속도가 빠름
  • 오브젝트 파일을 해시 값으로 저장

Git의 세가지 단계

  • git directory(Repository)
    프로젝트의 메타데이터와 객체 데이터베이스가 저장되어 있다. 또한 프로젝트의 모든 버전이 스냅샷으로 저장되어 있다. 다른 저장소를 Clone하면 git 디렉터리가 생성된다.
  • Staging Area(Index)
    git 디렉터리 안에 있으며 다음 버전에 추가할 변경사항은 Staging  Area의 스냅샷에 반영된다. 커밋 시 이 스냅샷은 영구적인 스냅샷으로 저장된다. 
  • Working directory
    프로젝트가 가리키고 있는 특정 버전을 checkout한 디렉터리이다.

각 단계 흐름

Git의 파일 상태

Working directory의 모든 파일은 아래의 상태 중 하나를 가지고 있다.

  • Untracked (버전 관리되지 않은 파일) 
  • Tracked (버전 관리되는 파일)
    • Unmodified (수정되지 않음)
    • Modified (수정됨)
    • Staged (Staging Area의 스냅샷에 반영되어 커밋 시 다음 버전에 추가)

파일 상태 흐름

Git의 핵심

git의 기능은 많다. push/fetch/pull 기능, 브랜치와 merge 기능, 태그 기능 등등.. 여러 기능들이 있지만 가장 기본은 다음과 같다.

  1. Working directory에서 파일 수정
  2. git add/rm/mv로 commit시 다음 버전에 추가할 변경사항을 Staging Area의 스냅샷에 반영
  3. git commit으로 신규 버전 생성(Staging Area의 스냅샷을 기반으로 영구적인 스냅샷인 커밋 객체 생성)

'CM > Git' 카테고리의 다른 글

Git 히스토리 삭제  (0) 2024.05.31
Git 원격 저장소  (0) 2022.08.04
Git branch  (0) 2022.08.01
Git 원리 (add,commit,status)  (0) 2022.08.01
  1. Git
  2. Git의 특징
  3. Git의 세가지 단계
  4. Git의 파일 상태
  5. Git의 핵심
'CM/Git' 카테고리의 다른 글
  • Git 히스토리 삭제
  • Git 원격 저장소
  • Git branch
  • Git 원리 (add,commit,status)
gunjoon98
gunjoon98
gunjoon98
하루한방울
gunjoon98
전체
오늘
어제
  • 분류 전체보기 (139)
    • Computer Science (60)
      • Network (14)
      • DataBase (12)
      • Algorithm (14)
      • OS (9)
      • Computer Terminology (1)
      • DataStructure (10)
    • Spring (24)
      • Spring Basic (2)
      • Spring MVC (11)
      • Spring DB (4)
      • Spring Security (2)
      • Spring Test (1)
      • Spring Legacy (2)
      • 기타 (2)
    • Java (9)
      • Basic (7)
      • OOP (0)
    • WEB (14)
      • CSS (4)
      • JS (0)
      • HTTP (10)
    • PS (11)
      • 종만북 (10)
      • 모의 코테 (0)
      • 오답노트 (1)
    • Linux (6)
      • Ubuntu (6)
    • CM (5)
      • Git (5)
    • Project (0)
      • Deubot (0)
      • Scoreboard (0)
    • Infra (5)
      • Cloud (1)
      • CI&CD (3)
      • 쿠버네티스 (1)
    • Hadoop Echo System (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

hELLO · Designed By 정상우.
gunjoon98
Git 기초
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.