작업흐름
Git은 파일을 Committed, Modified, Staged 이렇게 세가지 상태로 관리한다.
- Commited - 데이터가 로컬 저장소에 안전하게 저장됐다는 것을 의미한다.
- Modified - 수정한 파일을 아직 로컬 저장소에 커밋하지 않은 것을 말한다.
- Staged - 현재 수정한 파일을 곧 커밋할 것이라고 표시한 상태를 의미한다.
Git 디렉토리에 있는 파일들은 Committed 상태이다. 파일을 수정하고 Staging Area에 추가했다면 Staged이다. 그리고 Checkout하고 나서 수정했지만, 아직 Staging Area에 추가하지 않았다면 Modified이다.
1. 저장소를 생성하거나 저장소를 복제해서 작업 디렉토리(working directory)를 만든다.
- 로컬 저장소 만들기
git init
- 로컬 저장소 복제하기
git clone /로컬/저장소/경로
2. 작업할 파일을 생성한다.
새로운 파일은 touch
명령어를 사용하여 생성한다.
touch index.html
touch index.html
git status
파일을 추가한 후에 git status를 실행하면 아래와 같이 표시된다.
untracked files는 버전관리가 되지 않는 파일을 의미한다.
3. 파일을 스테이징 영역(staging area)에 추가(add)한다.
스테이징 영역은 저장소에 최종적으로 반영할 소스들을 선별해두는 가상의 공간이다. git add 명령을 통해서 working directory 의 파일들이 staging 상태가 되며, stataging 상태가 된 파일들은 commit 명령을 통해서 저장소에 반영된다. staging area에 포함된 파일들은 git status 명령시에 아래와 같이 표시된다.
git add index.html script.js;
git status
4. 파일을 스테이징 영역(staging area)에서 제거(remove)한다.
스테이징 영역에 잘못 추가된 파일이 있다면 다시 untracked 시켜서 작업 디렉토리로 되돌릴 수 있다.
git rm --cached script.js
git status
5. 커밋(commit)한다.
commit는 변경된 소스를 저장소에 저장하는 명령으로, staging area에 있는 파일들을 대상으로 이루어진다.
untracked된 파일들은 working directory에 그대로 남아 있다.
git commit -m 'first commit add files';
6. 리모트 저장소에 push한다.
git push origin master