깃에서의 버전이란?
- 문서를 수정할 때마다 간단한 메모와 함께 수정 내용을 저장하는 것
- 문서를 수정하고 저장할 때마다 생기는 것
목표
- 수정한 문서 내용을 버전으로 저장하는 것
- 저장한 버전을 이용해 이전 버전으로 되돌리는 것
Step1. 깃 저장소 만들기(깃 초기화)
- 깃의 기본 개념을 익히기 위해, 사용자의 컴퓨터에 저장소를 만든다.
- 저장소를 만들고 싶은 디렉토리로 이동, 초기화한 후 그곳에 있는 파일들을 버전 관리한다.
1-1. hello-git 디렉토리를 생성한 후, 디렉토리 안의 내용을 살펴본다.
1-2. 깃을 사용할 수 있도록(=저장소를 만들기 위해) 디렉토리를 초기화한다.
1-3. 깃을 사용하면서 버전이 저장될 저장소(repository) .git 확인하기
+) 사용자가 실수로 지우지 않도록 .git 디렉토리는 탐색기에 나오지 않는다.(숨긴 파일을 확인)
Step2. 버전 만들기
- 파일을 다른 이름으로 저장해 버전을 만드는 것보다 훨씬 쉽다.
- 원래 파일 이름은 유지하면서 수정 내용, 변경 시점과 변경 내용까지 저장가능하다.
- 이전 버전으로 되돌아갈 수 있다.이러한 시스템을 버전 관리 시스템(ex.깃)이라고 한다.
2-1. 들어가기 전에 (버전 만들기 = 작업 트리 + 스테이징 + 커밋)
작업 트리(working tree), 작업 디렉터리(working directory) - 눈에 보임 O
- 파일 수정, 저장 등의 작업을 하는 디렉터리 ex.hello-git 디렉터리
- 우리 눈에 보이는 디렉터리
스테이지(stage), 스테이징 영역(staging area) - 눈에 보이지 않음 X
- 버전으로 만들 파일이 대기하는 곳
- 작업 트리에서 10개의 파일을 수정했는데, 4개의 파일만 버전으로 만드려면,
그 4개의 파일만 스테이지로 넘기면 된다.
저장소(repository) - 눈에 보이지 않음 X
- 저장소에서 대기하고 있던 파일들을 버전으로 만들어 저장하는 곳
눈에 보이지는 않지만, 깃이 버전을 만드는 과정을 살펴보면,
hello.txt 파일 문서를 수정하고 저장하면 이 파일은 작업 트리에 있게 된다.
버전으로 만들고 싶을 때 hello.txt 파일 문서를 스테이지에 넣는다.
또 다른 파일들도 수정한 후 스테이지에 넣는다.
깃에게 커밋 명령을 내린다.
새로운 버전이 생성되면서 스테이지에서 대기하던 파일들이 모두 저장소에 저장된다.
2-2. 작업 트리에서 vim으로 문서 수정하기
1) 깃의 상태 확인하기 - git status
On branch master : 현재 master branch에 있다.
No commits yet : 아직 commit한 파일이 없다.
nothing to commit : 현재 commit할 파일이 없다.
2) vim으로 파일을 편집한다.
3) 깃의 상태 다시 한 번 확인하기
untracked files : 한번도 버전 관리하지 않은 파일
2-3. 수정한 파일을 스테이징하기 - git add
1) 스테이징(staging), 스테이지에 올린다, 인덱스에 등록한다
- 스테이지에 수정한 파일을 추가하는 것(깃에게 버전 만들 준비를 하라고 알려주는 것)
- 스테이징 내용을 .git/index 파일에 저장하는 것(->인덱스에 등록한다)
경고) 윈도우는 줄이 바뀌는 위치에 CR 문자와 LF 문자가 삽입되고,
리눅스와 맥은 그 위치에 LF 문자가 삽입되기 때문에
hello.txt의 CRLF 문자를 LF 문자로 변환해서 commit할 것이라는 의미!
2) 깃 상태 확인하기
untracked files -> changes to be commited:
new file : hello.txt
- 새 파일 hello.txt를 (앞으로) commit할 것이다
2-4. 스테이지에 올라온 파일 커밋하기 - git commit
1) 커밋한다
- 깃에서 버전을 만드는 것
- 메시지를 함께 기록한다. (커밋할 때 그 버전에 어떤 변경 사항이 있었는지 확인을 위해)
- 커밋 메시지: 커밋과 함께 저장할 메시지(-m 옵션이 필요하다)
2) 깃 상태 확인하기
[commit 결과 메시지] 1 files changed, 1 insertion(+)
파일 1개가 변경되었고, 파일에 1개의 내용이 추가되었다
[status 결과 메시지] nothing to comit, working tree clean
버전으로 만들 파일이 없고, 작업 트리도 수정사항 없이 깨끗하다
3) 저장소에 저장된 버전 확인하기 git log
git log
- 방금 커밋한 버전이 나타난다.
- 커밋을 만든 사람, 만든 시간과 커밋 메시지가 함께 나타난다.
5. 스테이징과 커밋 한번에 처리하기 (3. 스테이징 + 4. 커밋) - git commit -am
git commit -am
- 단, 한 번이라도 커밋한 적이 있는 파일을 다시 커밋할 때만 사용가능하다.
확실히 읽으면 진도는 빨리 나가지만, 일일이 캡쳐하면서 하려고 하니 진도가 좀 느린 것 같다..
그래도 힘내자! 꾸준히 열심히!