: 워크트리, 워킹 디렉토리, 작업 디렉토리, 작업 폴더 모두 같은 뜻으로 사용된다 일반적으로 사용자가 파일과 하위 폴더를 만들고 작업 결과물을 저장하는 곳을 Git에서는 워킹트리라고 부른다. 정확하게는 작업 폴더에서 [.git] 폴더(로컬저장소)를 뺀 나머지 부분이 워킹트리이다.
: Git init 명령으로 생성되는 [.git] 폴더가 로컬저장소이다. 커밋, 커밋을 구성하는 객체, 스테이지가 모두 이 폴더에 저장된다.
: 로컬저장소를 업로드하는 곳을 원격저장소라고 부른다. 우리가 사용하고 있는 GitHub 저장소가 원격저장소이다.
: Git 명령으로 관리할 수 있는 폴더 전체를 일반적으로 Git 프로젝트 혹은 Git 저장소라고 부른다.
워킹트리 : 일반적인 작업이 일어나는 곳
로컬저장소 : .git 폴더, 커밋은 여기에 들어 있다.
작업 폴더 = 워킹 트리 + 로컬저장소
Git 저장소 : 엄밀하게는 로컬저장소를 의미하지만 넓은 의미로 작업 폴더를 의미하기도 한다.
해당 디렉토리에서 깃을 사용할 수 있도록 디렉토리를 초기화하는 것.
Initialized empty Git repository in C:/Users/nhkim/hello-git/.git/ 라는 메시지가 나타난다면 이제부터 해당 디렉토리에서 깃을 사용할 수 있다.
디렉토리 안의 내용을 확인했을 때 .git이라는 디렉토리가 생겨있을 것.
이 디렉토리가 깃을 사용하면서 버전이 저장될 저장소이다.
** 윈도우의 탐색기나 맥 Finder에서 .git 디렉토리가 화면에 나타나지 않을 수 있는데 이것은 사용자가 실수로 .git 디렉토리를 지우지 않도록 숨어있기 때문이다. 윈도우 탐색기에서는 [보기] 탭에서 '숨긴 항목'을 체크하고 맥이라면 Shift + Commad + . 를 눌러 숨은 파일을 확인해보자.
스테이지와 저장소는 눈에 보이지 않고 깃을 초기화했을 때 만들어지는 .git 디렉토리 안에 숨은 파일 형태로 존재하는 영역.
hello.txt 파일 문서를 수정하고 저장하면 그 파일은 작업 트리에 있음.
hello.txt 파일을 버전으로 만들고 싶을 때 스테이지에 넣음.
파일 수정을 끝내고 스테이지에 넣었으면 버전을 만들기 위해 깃에게 '커밋(commit)'명령을 내림
커밋 명령을 내리면 새로운 버전이 생성되면서 스테이지에 대기하던 파일이 모두 저장소에 저장됨
깃 상태 확인
$ git status
깃에서는 한 번도 버전 관리하지 않은 파일을 untracked files라고 부름
깃에게 버전 만들 준비를 하라고 알려주는 것을 '스테이징(staging)' 또는 '스테이지에 올린다'라고 표현함
**입력해도 아무 내용도 안 나타날 수 있음
$ git add hello.txt
**윈도우의 줄바꿈 때문에 warning이 나타날 수 있지만 무시해도 됨.
git status로 상태 확인하면 untracted files:이라는 문구가 changes to be committed:로 바뀜
new file:이라는 수식어는 '새 파일 hello.txt를 (앞으로) 커밋할 것이다'라는 뜻
파일이 스테이지에 있다면 이제 버전을 만들 수 있다.
깃에서는 버전을 만드는 것을 간단히 '커밋(commit)한다'고도 말한다.
커밋할 때는 그 버전에 어떤 변경 사항이 있었는지 확인하기 위해 메시지를 함께 기록해둬야 한다.
$git commit -m "message1"
-->파일 1개가 변경되었고, 파일에 1개의 내용이 추가되었음
스테이지에 있던 hello.txt 파일이 저장소에 추가됨
-->버전으로 만들 파일이 없고(nothign to commit) 작업 트리도 수정사항 없이 깨끗(working tree clean)
한 번이라도 커밋한 적 있을 때의 파일을 다시 커밋할 때만 사용 가능
$ git commit -am "message2"