[깃/깃허브] Snapshot, Working directory, Staging area

🔗 인프런 - 제대로 파는 Git & GitHub - by 얄코



[2022.03.31]

와 진짜 어이가 없다
지금까지 깃 연습하면서 잔디가 안깔리길래

아 이거 잔디 심는 기준이 되게 깐깐한가 보구나~

했는데 알고보니까 이메일 계정이 달라서 그런거였다...
어쩐지 커밋을 겁나했는데 1커밋, 2커밋이길래 이상하다 했어
지금이라도 알아서 다!행!

응애


깃의 강점 - Snapshot

델타 방식 수정을하면 변경점들만 저장, 변경이 안되면 그대로 유지
스냅샷 방식 수정을 할 때마다 각 파일이 최종 상태 그대로 저장. 변경을 안해도 저장


이러면 스냅샷 방식은 용량이 크지 않을까? 용량은 별로 안크다함
나의 추측 - 분산 저장 때문인가?


이게 왜 강점일까?


(1) 변경점들만 저장되는 다른 방식들은 커밋이 많아질 수록 느려진다. 💀
하지만 스냅샷현 시점에 full로 저장되서 빠르다 ⚡


(2) 다른 방식들은 중앙집중식 버전 관리의존적이다.
중앙이 터지면 멸망 ..
하지만 스냅샷분산 버전 관리! 분산되서 자유롭게 작업이 가능하다!


⭐ 깃 세가지 공간
뭔가 이걸 알고나니까 깃에 대해서 좀 알 것 같다

깃 세가지 공간
Working directory   Staging area   Repository
작업을 하고 add를 안한 것

untracked : add된적 없는 파일이나 ignore
tracked : 변경내역이 있는 파일
add

커밋 대기 commit

커밋이 된것들이 올라오는 곳
(저장소)

 

git rm 파일명 파일 삭제와 동시에 add (커밋할 준비 ㅇㅋ
git mv 파일명 새이름파일명 파일 이름 바꿈과 동시에 add (커밋할 준비 ㅇㅋ)
git restore --staged 파일명 커밋할 준비 취소
git reset --hard 커밋주소 COMMIT 취소, ADD 취소, 작업 취소
git reset --mixed 커밋주소 COMMIT 취소, ADD 취소
git reset --soft 커밋주소 COMMIT 취소

알아두면 유용할 것 같다!

하지만 아직은 개초보니까
저렇게 동시에 add 하는거 신경쓰지말고

느리더라도 하나씩 처리해야지