참고: https://rogerdudler.github.io/git-guide/index.ko.html
git init
: 새로운 repo를 생성하는 명령문
git clone /로컬/저장소/경로
git clone 사용자명@호스트: /원격/저장소/경로
: 로컬/원격서버의 repo를 복제하는 명령문

: 로컬 저장소는 세 그루의 나무로 구성되어 있다. 첫번째 working directory는 실제 파일들로 이루어져 있고, 두번째 index는 staging area의 역할을 하며, 마지막 head는 commit을 나타낸다.
git add <파일 이름>
: 변경된 파일을 index에 추가하는 명령문
git commit -m "이번 commit에 대한 설명"
: 해당 commit에 대한 설명을 추가하는 명령문
git push origin <branch 이름>
: 변경 사항을 원격 서버에 업로드하는 명령문
git remote add origin <원격 서버 주소>
: 만약 기존의 원격 repo를 복제한 것이 아니라면 업로드할 원격 서버의 주소를 git에게 알려주어야 한다.

: repo를 새로 생성하면 기본으로 master 가지가 만들어진다. 코드가 꼬이지 않도록 다른 가지에서 개발을 진행하고 개발이 완료되면 master 가지에서 병합한다.
git checkout <branch 이름>
: 다른 가지로 이동하는 명령문
git checkout -b <branch 이름>
: 새로운 가지를 만들고 이동하는 명령문
git branch -d <branch 이름>
: 가지를 삭제하는 명령문
git push origin <branch 이름>
: 가지를 원격 서버로 전송하는 명령문
git pull
: 원격 저장소에 맞춰 로컬 저장소를 갱신하는 명령문
→ 이를 통해 원격 저장소의 변경 내용이 로컬 작업 디렉토리에 fetch되고 merge된다.
git merge <branch 이름>
: 다른 가지의 변경 사항을 현재 가지에 병합하는 명령문
! 하지만 늘 merge가 성공하는 것은 아니다. confilcts가 일어나곤 하는데 이는 직접 수정해 병합이 가능하도록 바꾸어야 한다 !
git add <파일 이름>
: 수정 후 파일을 병합하는 명령문
git diff <원래 가지> <비교 대상 가지>
: 병합 전 변경 사항을 확인해볼 수 있는 명령문
: 소프트웨어의 새 버전을 발표할 떄마다 버전에 대한 꼬리표를 달아놓는 것이 좋다.
git tage 1.0.0 1b2e1d63ffgit log를 통해 확인 가능: 만일 실수한 경우 로컬의 변경 사항을 되돌릴 수 있다.
git checkout -- <파일 이름>git fetch origin과 git reset --hard origin/master를 통해 원격 저장소의 최신 이력을 가져올 수 있다.