1. working directory // 작업하는 중인
2. staging area // 작업하다가 버전 히스토리에 저장할 준비가 되어있는 파일을 옮겨놓는
3. .git directory //버전 히스토리를 가지고 있는
1 -> 2 (어느정도 완성된 파일을 add 를 통해 이동)
2 -> 3 (commit 을 통해 저장)
git directory 에서 checkout을 통해 working directory 로 꺼내올 수 있음
위의 작업은 local 에만 저장이 된다.
위의 작업을 통해 git directory 에 있던 버전을 push 명령어를 통해 git hub 서버로 이동할 수 있으며, pull 명령어를 통해 다시 local 로 내려받을 수도 있다.
working directory 은 untracked, tracked 으로 구분 할 수 있다. git이 tracking 하고있으면 tracked, 새로 만들어졌거나 git을 초기화 한 파일이면 untracked 이다.
tracked 는 unmodifided, modified 파일로 나눌 수 있는데, 기존 버전과 비교해서 수정이 된 파일만 staging area로 옮겨갈 수 있기 때문에 나뉘게 된다.
git add * //working directory에서 staging area로 이동하는데, 삭제되거나 없는 파일이 있다면 삭제되었다고 나온다.
git add . //working directory에서 staging area로 모든 파일을 포함해서 추가됨.(숨김파일까지)
git add *.css // css파일만 추가하기
git *.log > .gitignore // git 과 github에 추가하고 싶지 않은 파일이 있다면, echo *.log > .gitignore 파일을 만들어서 넣어둔다. (.log 로 끝나는 파일을 모두 적용 시킬때)
// bulid/.log -> bulid안의 .log파일만 tracking 하고 싶지 않을때