1장 깃 시작하기
1-1 지옥에서 온 문서 관리자, 깃
- 깃과 깃허브는 개발자가 무조건 갖춰야하는 필수 역량이다. 깃으로는 크게 버전 관리, 백업, 협업이 가능하다. 앞으로 이에 대해 순차적으로 공부해보겠다!
- 깃 프로그램 종류
- 깃허브 데스크톱: GUI로 구현됨
- 토터스깃: 윈도우 전용
- 소스트리: 기본~고급, 처음에는 복잡하지만 익숙해지면 편함
- CLI: 터미널창, 리눅스 명령 + 깃 명령에 모두 익숙해야 함
- 터미널창을 함께 사용할 수 있는 코드 편집기가 늘고 있다.
- 앞으로 VScode + CLI로 실습 예정이다.
1-2 깃 설치하고 환경 설정 끝내기
1. 깃 설치
- 깃과 깃허브가 이미 윈도우 환경에 설치된 상태였다. 하지만 이전에 git을 사용할 때, Visual Studio Code로 사용하지 않아서 최신 버전 업데이트 겸, VScode를 사용할 겸 새로 설치했다.

2. 깃 실행
- git bash창에서 git이 설치 완료되었음을 확인할 수 있다.

3. 깃 환경 설정
- 사용자 정보를 입력해준다.

1-3 리눅스 명령 연습하기
- 현재 디렉토리 살펴보기
- pwd: (print working directory) 현재 위치 경로
- ls: 현재 디렉토리에 있는 파일이나 디렉토리
- -a: 숨긴 파일, 디렉토리도 표시
- -l: 상세 정보 포함
- -r: 파일 정렬 순서 거꾸로
- -t: 파일 작성 시간순
- 터미널 창 지우기: clear
- 터미널 창에서 디렉토리 이동: cd
- cd ~: 홈 디렉토리로
*리눅스에서 디렉토리를 나타내는 기호
- ~ 현재 접속 중
- . 현재 작업 중
- .. 현재의 상위
- 터미널 창에서 디렉토리 생성 및 삭제
- mkdir: (make directory) 하위 디렉토리 만들기
- rm: (remove) 디렉토리 삭제, 삭제할 디렉토리의 상위 디렉터리에서 시행
- 터미널 종료: exit
2장 깃으로 버전 관리하기
2-1 깃 저장소 만들기
- C드라이브 지정 -> hello-git -> 디렉토리 확인해보면 현재, 상위에 파일이 없음 -> 초기화 -> 깃을 위한 main 저장소가 생김
2-2 버전 만들기
- 깃에서 문서를 수정하고 저장할 때마다 버전이 생긴다.
- 버전 관리 시스템을 통해 파일 이름은 유지 & 변경 시점마다 저장, 확인, 수정 가능

- 작업 트리: 파일 작업(수정, 저장 등)
- 스테이지: 버전으로 만들 파일이 대기하는 곳
ex. 수정한 10파일 중에 버전으로 만들고자 하는 건 4개면 -> 파일 4개만 스테이지로
- 저장소: 스테이지에서 대기하고 있던 파일들을 버전으로 만들어 저장
스테이지와 커밋
- add: 수정한 파일 가운데 버전으로 만들고 싶은 것을 스테이지에 저장

- commit: 스테이지에 있던 파일을 저장소로 커밋하면 버전이 만들어짐

<VScode 실습>
1. 작업 트리에서 변경 사항 만들기

> hello.txt라는 'Untracked files'가 있다.
2. 스테이지에 변경 사항 올리기 - git add
git add hello.txt
git status -> Changes to be committed (스테이지에 추가된 상태, 버전 만들 준비 완료)
3. 스테이징한 파일 커밋하기 - git commit
git commit -m "message1"
*여기서 -m은 (message) 커밋 메시지, 커밋과 함께 저장할 메시지
git status -> nothing to commit, working tree clean
git log -> 버전 확인 명령
4. 스테이징과 커밋 한꺼번에 처리하기 - git commit -am
2-3 커밋 내용 확인하기
1. 커밋 기록 자세히 살펴보기 - git log
2. 변경 사항 확인하기 - git diff
2-4 버전 만드는 단계마다 파일 상태 알아보기
- tracked, untracked
- git add . : 수정 파일들 모두 스테이지에
- Changes not staged for commit: modified: hello.txt -> Changes to be committed: modified: hello.txt
- Untracked files: hello2.txt -> new file: hello2.txt
- git log --stat: 커밋과 관련된 파일까지 모두 확인 가능
- unmodified, modified, stage

2-5 작업 되돌리기
1. 작업 트리에서 수정한 파일 되돌리기 - git restore
2. 스테이징 되돌리기 - git restore --staged
- --staged (파일 이름)
- 스테이징된 상태에서 수정 취소
3. 최신 커밋 되돌리기 - git reset HEAD^
- main의 최신 커밋도 취소되고 스테이지에서도 내려진다. 작업 트리에만 파일이 남는다.
4. 특정 커밋으로 되돌리기 - git reset 해시
- git reset --hard <복사한 (최신 커밋으로 만들고 싶은)커밋 해시>
5. 커밋 변경 이력 취소하기 - git revert
- 변경 사항만 취소하고 커밋은 남겨둔다. <취소한 커밋>을 새로 만든 것
- git revert <취소할 커밋 해시>