로컬에 저장소 생성 mkdir git_tutorial
cd git_tutorial 현재 위치에서 git_tutorial 디렉토리로 이동, git init Git 저장소 초기화
그러면 현재 작업중인 브랜치가 master 브랜치가 됨
vim을 활용함

일반모드-입력모드로 이동
vim hello.py
I키 누르고 코드 작성
Esc 키 누른 뒤 :wq 입력(wq가 맞음 wd 입력되면 error)
cat hello.py 파일 내용 출력
커밋 전 저장소 상태 확인git status파일 기록 추적이 되지 않아 커밋이 안됨
git add 실행하여 git이 추적을 할 수 있게 한다. 그 뒤 다시 저장소 상태를 확인하면 커밋해야 한다고 메시지가 뜸.
git commit 실행 후 I 키 입력. 가장 윗 줄에 커밋메시지를 작성함.ESC 키 누른 뒤
:wq 입력커밋이 성공적으로 진행됨
git branch hotfix로 hotfix라는 브랜치를 생성
git branch 현재 존재하는 브랜치를 보여줌
*이 있는 master 브랜치가 현재 작업중인 브랜치
git checkout hotfitx로 master 브랜치에서 hotfix 브랜치로 이동
git add를 사용하지 않고 commit -a를 입력하면 변경된 저장소 파일 모두를 커밋한다.
hotfix에서 작업한 내역을 master 브랜치에 합침
먼저 현재 작업 브랜치를 바꿔줌
그리고
git merge를 통해 합병. hotfix 브랜치는 변하지 않고 master 브랜치만 변함!
touch .gitignore 아무것도 없는 빈 파일 생성. 파일 이름이 .으로 시작하면 ls 명령어가 아닌 ls-al 실행
master branch에 "Hello world, Tell your world, I love you"가 저장되었고 hotfix branch에 "Hello world, Tell your world, I love you too"가 저장됨충돌이 난 부분의 시작은 <<<<<<<< HEAD 이며 끝 부분은 >>>>>>> hotfix이다. 중간의 ========= 은 각각 브랜치 영역을 구분한다. 또한 master|MERGING은 현재 병합도중 충돌이 발생해 해결하는 과정 중이라고 명시된 것이다.
충돌을 해결하기 위해 hello.py의 내용을 수정한다(두 브랜치의 수정 내역을 합침)vim hello.py
vim hello.py를 실행시켜 <<<<<HEAD ====== >>>>> hotfix부분을 삭제한다.
그리고 나서
git commit -a -m "conflict solved"를 실행하면 정상적으로 커밋이 된다. -a는 모든 내용을 저장하는 단축어며 -m은 vim으로 가지 않고도 인라인 커밋을 가능하게 하는 단축어다.

원격저장소를 통해 협업 할 수 있는 툴
repository = 원격저장소
fork = 다른 사람의 저장소를 복사
pull request = 포크한 저장소를 수정해 다시 원본 저장소에 병합해달라는 요청을 보냄
issues = 저장소 안에서 사용자들 사이의 문제를 논의
wiki = 저장소와 관련된 체계적인 기록을 남김