이 포스트는 유튜브 채널 '드림코딩 by 엘리'의 '깃, 깃허브 제대로 배우기 (기본 마스터편, 실무에서 꿀리지 말자)'를 정리한 글임을 밝힙니다. (https://www.youtube.com/watch?v=Z9dvM7qgN9s&t=30s)
- Git은 크게 1. Working directory, 2. Stating area, 3. .git directory 총 세 개의 작업 환경으로 구분된다.
- 현재 작업중인 파일이 위치한 환경
- Working directory는 untracked, tracked로 구분된다.
- git이 존재를 모르고 있는 파일들 -> 최초 생성된 뒤, git에 의해 다뤄진 적 없는 파일
- git add 명령으로 staging area로 이동시킬 수 있음 (untracked -> tracked)
git add a.txt git add b.txt c.txt git add *.txt git add *
- git reset 명령으로 staging area에서 wokring directory로 이동시킬 수 있음 (tracked -> untracked)
git reset file_name
- git이 존재를 알고 있는 파일들 -> 최초 생성된 파일이 Staging area에 갔다오면 그 이후로는 tracked 됨
- tracked는 unmodified와 modified로 구분됨
- 이전 버전과 비교했을 때 수정사항이 없는 파일
- unmodified 파일은 staging area로 이동할 수 없음
- 이전 버전과 비교했을 떄 수정사항이 있는 파일
- modified file만 stating area로 이동할 수 있음
- 버전 히스토리에 올릴 준비가 된 파일
- staging area에 올라간 파일의 내용이 변경되었을 때, 변경된 부분은 아직 working directory의 tracked에 머무름
-> staging area로 이동한 뒤 발생한 변동사항은 staging area에 반영 안 됨- git rm --cached <file_name> 를 통해 다시 working directory의 untracked로 옮길 수 있음
git rm --cached <file_name> git rm --cached *
- commit : staging area -> git diretory
- 각 commit에는 snapshot된 정보들에 고유한 hashcode (ID)부여 됨 -> 각 commit (version) 구분 가능
- 뿐만 아니라 commit에는 commit message, author, date/time 정보들도 포함됨
- 뒤에서 자세히 다룰 예정
checkout : git directory -> working directory
push : git directroy (local) -> remote git directory (github)
pull : remote git directory (github) -> git directroy (local)