Git의 기본 개념들 (1) (working directory, staging area, remote)

Jane·2020년 12월 19일
15
post-thumbnail

Git vs SVN(SubVersion)

SVN
변경 내용만 저장
→ 변경 내용 발생 시 처음으로 거슬러 올라가며 바뀐 점을 모두 반영하는 계산 필요

Git
변경 내용 포함 전체 코드를 저장
→ Delta(차이점)이 아닌 Snapshot을 저장하기 때문에 계산이 필요 없음
+) 바뀌지 않은 파일은 이전 파일의 링크만 저장한다.

Local 저장소

Working Directory

  • untracked: 아직 tracking이 되지 않은 파일
    → 기존에 존재하던 프로젝트에서 git을 초기화하거나 파일을 새로 만들면(또는 처음 저장소를 clone하면) untracked 상태이다.

  • tracked: unmodified/modified로 나눌 수 있다. checkout된 이후 수정사항이 있지만 stage되지 않으면 modified된 상태이다.
    → modified된 파일만 staging area로 옮겨갈 수 있다.

Staging Area

  • tracked & staged 상태
  • add 명령어를 통해 파일을 Staging Area에 올릴 수 있다.
  • git rm --cached를 이용하면 unstage(Staging Area-> Working Directory)가 가능하다.
  • git diff --cached는 index와 HEAD 사이의 변화를 보여준다.

.git directory

  • commit 명령어를 실행하면 Staging Area에 있는 파일들이 하나의 버전으로서 git directory에 저장된다.
  • commit 후에는 파일 상태가 staged에서 unmodified로 변경된다.

Remote 저장소

.git directory

  • push 명령어를 실행하면 로컬저장소의 내용이 원격 저장소로 올라간다.

Source

2개의 댓글

comment-user-thumbnail
2020년 12월 22일

깃 포스트가 올라왔네요? 터미널 친해지고 싶은데 너무 멀리있네요

1개의 답글