Git의 스냅샷 방식
기존 델타 방식은 커밋이 많아질수록 새로운 버전으로 이동할 때 많은 커밋을 처음부터 가져와야 하는 불편함이 있었습니다. 반면, 스냅샷 방식은 버전이 늘어날 때마다 최신 상태를 스냅샷으로 저장하기 때문에, pull을 하면 쉽게 최신 상태를 가져올 수 있습니다.
Git의 3가지 공간
- Repository: 커밋들이 저장된 공간
- Working Directory: 파일들이 수정된 내용이 저장된 공간
- Untracked와 tracked 두 가지 경우가 있다.
- Tracked는 .gitignore를 통해 관리된다.
- Staging Area: 캡슐을 담아 저장된 공간
파일 삭제와 Staging Area
파일을 삭제하고 바로 Staging Area로 보내려면:
$ git rm tigers.yaml
$ git mv tigers.yaml zzamtigers.yaml
Staging Area에서 Working Directory로 이동
Staging Area에 있는 파일을 다시 Working Directory로 옮기려면:
$ git restore --staged pumas.yaml
Working Directory에서 Untracked에 있는 파일을 원래 상태로 복구하려면:
$ git restore pumas.yaml
Git의 reset 명령어
- $ git reset --soft: Repository에서 Staging Area로 이동(add된 상태)
- $ git reset --mixed: Repository에서 Working Directory로 이동(변경사항만 있음, add되지 않은 상태)
- $ git reset --hard: 수정사항 완전히 삭제
Git에서 HEAD의 의미
HEAD는 가장 최근에 커밋된 곳을 가리킨다. 즉, 최상단이다.
과거로 돌아가려면:
$ git checkout HEAD~
다시 원래 HEAD로 돌아가려면:
$ git switch delta-branch
특정 지점으로 이동한 후 reset 하려면:
$ git reset HEAD~2
Fetch와 Pull의 차이점
- fetch: 원격 저장소의 내용을 가져오기만 한다.
- pull: 가져와서 merge 또는 rebase를 한다.
요약
- 스냅샷 방식: 최신 상태를 스냅샷으로 저장하여 쉽게 최신 상태를 가져올 수 있다.
- 3가지 공간: Repository, Working Directory, Staging Area
- 파일 삭제/변경: git rm, git mv
- Staging Area 이동: git restore --staged, git restore
- reset: --soft, --mixed, --hard
- HEAD: 가장 최근 커밋
- fetch와 pull: 가져오기만, 가져와서 병
'멋쟁이사자처럼 동아리 > Git' 카테고리의 다른 글
Git 섹션 7 "인프런" -PlusUltraCode- (0) | 2024.07.19 |
---|---|
섹션 6 Git 보다 잘 사용하기 "인프런" -PlusUltraCode- (0) | 2024.07.18 |
섹션 4 원격저장소란? "인프런" -PlusUltraCode- (0) | 2024.07.13 |
섹션 3 git 차원 넘나들기 branch "인프런" -PlusUltraCode- (0) | 2024.07.12 |
섹션 2 Git 커밋을 위한 준비 -인트런 강의 (0) | 2024.07.09 |