1) Git은 버전관리와 동시협업을 가능하게 해주는 툴이다.
2) Git의 역사
만든사람: 리누스 토발즈(Linus Torvalds) = 리눅스(Linux)라고 하는 운영 체제를 만든 사람
만든 목적: 빠른 속도, 단순한 디자인, 비선형적 개발 지원(수천개의 브랜치 병행 가능), 완전 분산형 시스템, 거대 프로젝트도 속도저하 문제 없음
3) Github란?
원격저장소 = 외부의 컴퓨터를 대신 만들어주는 서비스
내 컴퓨터가 아닌 Github에 나의 git 버전들을 백업해두는 곳.
즉, 다른 컴퓨터에서도 사용할 수 있게 해주고, 내 컴퓨터에 이상이 생겨도 문제없게 만들어주며, 또 다른 사람과 협업이 가능하게 해줌!
Git과 Github는 다름!
4) Git 다운로드 : https://git-scm.com/
참고) Git Bash = GWindows에서도 유닉스 커맨드를 사용할 수 있도록 해주는 프로그램.

Git Bash를 사용할땐 원하는 폴더에 들어가 오른쪽 클릭해서 Git Bash 열면 해당 폴더 위치에서 실행됨

1) 커밋과 레포지토리
Commit 커밋 = 프로젝트 디렉토리의 특정 모습을 하나의 버전으로 남기는 행위와 그 각각이 버전을 부르는 것
Repository 레포지토리 = 커밋이 저장되는 곳. Git이 원하는 프로젝트의 시점마다 프로젝트 디렉토리의 구성요소의 모습과 변경사항에 대한 설명을 저장하는 곳.



2) git의 3가지 영역
3) git 해보기
1. 프로젝트 디렉토리 만들기
2. - git init = 레포지토리 만들기

3. (최초에 한번만 하면 됨) 내가 누군지 정보 알려주기 :
git config user.name " "
git config user.email " "

4. add 하기: 커밋할 파일 지정해주기(add 하기 = staging are로 넣기):
git add (파일이름)
git add . >> 현재 디렉토리 내에 변경사항이 있는 모든 파일들을 add하기
5. 확인하기 : git status, 상단에는 add가 된 변동사항이, 하단에는 변동은 있었지만 stage are에 들어가지 않은 사항이 나온다. 어떤 것을 add했고 안했는지 꼭 확인하고 commit하기!!




4) git의 4가지 상태
파일들은 아래의 2가지 상태를 가지고, tracked는 또 3가지 상태로 구분된다.
- untracked : 추적되지 않고 있다는 뜻으로, 파일 생성 이후 한번도 git add를 안해주면 이 상태.
- tracke
-- staged : 수정 후 add가 되어 staging are에 올라와있는 상태
-- unmodified : 최신 커밋의 모습과 비교했을 때 바뀐게 없는 상태. 커밋 직후 working directory 안의 모든 파일이 이상태임
-- modified : 최신 커밋과 비교했을 때 바뀐내용이 있는 상태

5) git add 취소하기
git reset 파일이름
staging area에서 파일을 제거, 하지만 변경된 새모습은 그대로 working directory에 남아있음!

6) git의 커멘드 사용법 알아보기
git help 커멘드이름
txt 파일이 열리며 자세한 설명을 볼 수 있다.
