git에서 관리되는 파일들은 modified, staged, commited라는 3가지 상태를 가집니다.
# 저장소 생성
$ git init
# 원격 저장소로부터 복제
$ git clone (url)
# 원격 저장소 추가
$ git remote add origin (url)
# 변경 상태 체크
git status
# 특정 파일 stage
git add (file-name)
# 변경된 모든 파일 stage
git add *
# 모든 stage 취소
$ git reset HEAD *
# 커밋
git commit -m "message"
# 원격 저장소로 커밋 업로드
git push origin (branch-name)
# 원격 저장소의 내용 가져와 병합하기
git pull origin (branch-name)
# 커밋 취소
$ git reset HEAD^ // 마지막 커밋 삭제
$ git reset --soft HEAD^ // 마지막 커밋을 staged 상태로 변경
$ git reset --hard HEAD // 마지막 커밋 상태로 되돌림
# 마지막 커밋 내용 변경 + 메세지 수정
$ git commit --amend
# 커밋 로그
$ git log // 모든 커밋로그 확인
$ git log -3 // 최근 3개 커밋로그 확인
$ git log --oneline // 각 커밋을 한 줄로 표시
$ git reflog // reset 혹은 rebase로 없어진 과거의 커밋 이력 확인
# 커밋 로그 (상세한 변경점 포함)
$ git show
# 커밋 합치기
$ git rebase -i HEAD~4 // 최신 4개의 커밋을 하나로 합치기
# stage 상태인 파일들을 임시 저장
$ git stash
# stash 목록
$ git stash list
# stash 가져오기
$ git stash pop // 가장 최근의 stash를 가져오고 제거한다.
$ git stash apply // 가장 최근의 stash를 가져오고 제거하진 않는다.
# stash 삭제
$ git stash drop // 가장 최근의 stash를 삭제한다.
# 브랜치 이동
$ git checkout (branch-name)
# 브랜치 목록
$ git branch // 로컬
$ git branch -r // 리모트
$ git branch -a // 로컬 + 리모트
# 브랜치 생성
$ git checkout -b (branch-name)
# 리모트 브랜치 가져오기
$ git remote update // remote branch ref를 업데이트한다. (fetch)
$ git checkout -t origin/(branch-name)
# 브랜치 삭제
$ git branch -D (branch-name)
# 브랜치 이름 변경
$ git branch -m (branch-name)