참고! 모든 git 관리는 해당 폴더에서 작업해야 합니다.
./downloads/Git 이라는 폴더 안이 아니라, ./downloads/Git/Project1 폴더까지 들어가서 CLI 작업을 해야 합니다.

git은 이 세 stage를 통해 버전을 관리할 수 있습니다.
먼저, working tree의 단계는 말 그대로 자유롭게 작업하는 공간입니다. Windows cli 기준으로 설명하자면,
copy con
notepad
와 같은 커멘드 명령어로 파일을 생성 및 수정 혹은 삭제하고, 내 local 안에서 Ctrl+S 로 저장하는 것까지 모두 working tree 단계 안에 있습니다. 여기서 막 새로운 파일을 생성하고 저장했을 때 git은 그 파일의 존재를 아직 모릅니다. 이 상태를 'untrackted' 상태라고 합니다. 파일이 tracked 상태가 되어, 어떤 내용이 새롭게 추가되고 수정되었는지 파악도 하고, 레파지토리에 내가 작업한 파일을 올리는 등의 모든 작업을 하기 위해서는 (당연히) git이 이 파일을 알고 있어야 합니다. 새롭게 생성한 파일을 tracked 상태로 만들기 위해서는 stage에 올리면 됩니다.

파일을 생성하고 working tree 단계에서 staging 단계로 가기 위해 이 명령어를 사용합니다.
git add "[파일명.확장자]"
이전에 tracked 된 파일은 물론이고, 새로 생긴 파일까지 untracked 상태에서 tracked 상태로 바꿀 수 있습니다. stage에 파일을 올린다는 것은, 그 파일을 지금 처리하려는 버전에 포함시킨다는 말과 같습니다.
수정한 파일이 많을 경우 한꺼번에 stage에 올리고 싶다면 다음과 같은 명령어를 사용하면 됩니다.
git add .
stage에 내가 수정하고자 하는 파일들을 모두 올렸다면, repository에 새로운 버전을 올리는 단계에 들어갑니다.
staging 단계에서 repository 단계로 가기 위해 이런 명령어를 사용합니다.
git commit -m "[버전명]"
-m은 버전명을 바로 작성할 수 있는 옵션입니다.
버전명을 여러 줄로 작성하고 싶을 경우 git commit만 입력한 상태에서 'Enter' 키를 누르면 작성할 수 있는 공간이 나옵니다.
추가: 입력 공간에서 빠져나오려면 ':w' 를 입력하여 저장 후 ':q' 를 눌러 빠져나옵니다.
이후 'Enter'키를 입력하면 새로운 버전이 생성되고 그 버전에 repository에 있는 버전이 됩니다.
git status
이 명령어를 입력하면 현재 폴더에 있는 파일들이 tracked 상태인지, modified된 상태인지, staging 상태인지, commit이 완료된 상태인지 등을 알 수 있습니다.
git log
이 명령어를 입력하면 그동안의 커밋 로그를 확인할 수 있습니다.
여기서 버전명과 함께 stating된 파일들의 목록까지 확인하고자 한다면
git log --stat
이라는 옵션을 입력하면 다음과 같이 파일들과 수정 사항들이 포함된 정보를 볼 수 있습니다.

git log를 입력하면
버전별 commit id를 각 첫 줄에서 확인할 수 있습니다.
브랜치을 변경한다는 것은 HEAD를 변경하는 것과 같습니다.
HEAD를 변경하기 위해서는 다음과 같은 명령어를 입력합니다.
git checkout [해당 버전의 commit id]
이후 다시 git log를 실행하면 변경하고자 했던 브랜치로 HEAD가 변경된 것을 알 수 있습니다.
주의: git status가 commited 상태여야 합니다.
다시 가장 최신의 브랜치로 되돌리려면 이것을 입력하면 됩니다.
git checkout master
Windows cmd 창에서 디렉터리 경로를 짧게 하려면
prompt $g
다시 되돌리려면
prompt $p$g
Windows의 ls는?
dir
Windows의 cat은?
type