Git에서 관리하는 파일의 4가지 상태 (1)
git이 파일을 추적하고 스테이지에 올리는지 과정을 살펴본다. 먼저, 프로젝트 폴더에 git 초기화를 하고 README.md와 app.js를 생성한다고 가정하고 모두 한 번도 커밋되지 않은 상태이기 때문에 파일 상태는 추적 안됨(untracked)이다.
다음으로, add 명령어를 통해 두 파일 모두 스테이지에 올리면 파일 상태는 스테이지됨(staged)으로 바뀐다.
다음으로, commit 명령어를 통해 하나의 버전으로 만들면 파일 상태는 수정 없음(unmodified)으로 바뀐다. 수정 없음으로 된 파일은 다시 수정을 할 수 있다.
마지막으로, 다른 사람도 함께 협업 하기위해 push 명령어를 통해 원격 저장소에 업로드 하면 파일 상태는 그대로이다.
Git에서 관리하는 파일의 4가지 상태 (2)
위에서 했던 작업에서 더 많은 작업을 한다고 가정한다. app.js 파일을 수정해서 파일 상태를 수정 없음(unmodified)에서 수정함(modified)로 바꾸고 app.css 파일을 새로 만들어 준다. 새로 만들었기에 파일 상태는 추적 안됨(untracked) 상태이다.
변경사항이 없는 README.md 파일은 스테이지에 올릴 수 없지만 add 하지 않아도 이미 올라가 있는 상태이며 나머지 두 파일은 모두 스테이지에 올린다. 이 때, 두 파일 상태는 스테이지됨(staged)로 변경된다.
커밋을 통해 버전을 또 하나 생성한다. 이 때의 커밋은 앞서 만든 커밋인 "프로젝트 초기화"와 연결되어 있기 때문에 git은 쉽게 app.js가 수정되었고 app.css가 추가되었다는 것을 알 수 있다. 커밋을 했기 때문에 세 파일 모두 수정 없음(unmodified) 상태로 변하게 된다.
마지막으로, push 명령어를 통해 원격 저장소에 업로드 한다. 이 때, 파일 상태는 그대로이다.
정리
요약하자면 untraked(추적 없음), staged(스테이지됨), modified(수정함), unmodified(수정 없음), 총 4가지의 파일 상태가 존재하고 각각의 특징은 다음과 같다.
'버전관리 > GUI 환경' 카테고리의 다른 글
6. 협업에서의 버전 관리: 브랜치(Branch) (0) | 2020.08.30 |
---|---|
4. 정리하기 - SVN과 Git (0) | 2020.08.29 |
3. 소스트리에 커밋하고 푸시하기 (0) | 2020.08.28 |
2. 소스트리에 로컬 저장소를 추가하기 (0) | 2020.08.28 |
1. 소스트리(Source Tree) (0) | 2020.08.28 |