버전 생성 및 커밋(Commit)
1. 버전
- 문서를 수정하고 저장할 때마다 업데이트 되는 것
- 원래 파일 이름은 유지하면서 파일에서 무엇이 변경했는지를 변경 시점마다 저장할 수 있음
2. 작업 트리
- 파일수정, 저장 등의 작업을 수행하는 디렉터리
3. 스테이지
- 버전으로 만들 파일이 대기하는 곳
4. 저장소(repository)
- 스테이지에서 대기하고 있는 파일들을 버전으로 생성하여 저장하는 곳
5. 원리
- #1. 작업 트리에서 파일을 생성하여 수정 및 저장함
- #2. 파일을 버전으로 생성하기 위해 스테이지에 넣음
- #3. 준비된 스테이지가 버전을 생성하기 위해 깃에게 커밋(Commit)명령을 내림
※ 커밋(Commit) : 파일 및 폴더의 추가/변경 사항을 저장소에 기록
- #4. 커밋 명령을 내리면 새로운 버전이 생성되면서 스테이지에 있는 파일이 저장소에 저장됨
6. Vim으로 문서 수정
- #0. 깃의 상태 확인 : git status
- On branch master : 현재 master 브랜치에 있음
- No commits yet : 아직 커밋한 파일이 없음
- nothing to commit : 현재 커밋한 파일이 없음
- #1. test.txt 파일 생성 및 수정 : vim test.txt
- #2. i를 눌러 'Hello world!!' 내용을 입력한 후, :wq를 입력하여 저장
- #3. 다시 한번 깃의 상태를 확인 : git status
- test.txt 파일이 있음을 확인 (untracked files : 아직 한번도 버전 관리를 하지 않은 파일)
6. 파일 스테이징
- 작업 트리에서 파일을 생성 or 수정 했으면, 스테이지에 수정한 파일을 추가함 (이를, 스테이징 이라함)
- #1. 스테이징 명령 : git add test.txt (경고 메시지가 뜬다 해도 무시)
- #2. 깃 상태 확인 : git status
- 'Changes to be committed : new file : test.txt'는 새 파일 test.txt를 커밋할 것이라는 뜻
7. 파일 커밋
- 스테이지에 있는 test.txt 파일을 커밋함
- #1. 파일 커밋 명령 : git commit -m "message1"
※ -m : 커밋과 함께 저장할 메시지를 입력 (이를 커밋 메시지라 함)
- 1 file changed, 1 insertion(+)는 파일 1개가 변경되었고, 파일에 1개의 내용이 추가됨을 알 수 있음
- #2. 깃 상태 확인 : git status
- 그러면 nothing to commit, working tree clean 즉, 만들 파일이 없고 작업 트리도 비어있다는 뜻
- #3. 저장소에 저장된 버전 확인 : git log
- 커밋한 버전에 대한 설명이 나타남 (커밋을 만든 사람, 만든 시간, 커밋 메시지)
8. 스테이징과 커밋을 한번에 처리하기
- #1. vim test.txt를 입력 후, 원래 있던 내용에서 'Good Day!!!' 내용을 추가함
- #2. 스테이징 및 커밋을 동시에 처리 : git commit -am "message2"
- #3. 버전 확인 : git log (두 번째 버전도 들어갔음을 확인)