git의 버전관리에 대해 알아봅니다.
git init .
: 버전 정보들이 들어갈 .git 디렉토리가 생성된다.git status
: Working tree status. 현재 작업 디렉토리의 상태 확인.git add
: add to Staging Area. Working tree의 변경사항을 Staging area에 올림.git add 파일명
git add 폴더명
: 폴더 아래에 있는 모든 파일을 add.git add .
: 현재 디렉토리 아래에 있는 모든 파일을 add.git commit
: create version.git commit
만 하면 커밋 메세지를 작성하도록 에디터가 뜸. 메세지를 여러줄로 작성 가능.git config --global core.editor "원하는editor이름"
git commit -m "commit message"
: 커밋 메세지를 함께 작성 가능.git commit -am "commit message"
: add와 commit을 한번에. 단, untracked files는 add되지 않음.git log
: show version. Git 저장소의 커밋 히스토리 확인.git log --stat
: 파일별 변경 통계 보기.git log -p
: patch. 커밋마다 변경된 코드(diff) 보기.git log --oneline
: 각 커밋을 한 줄로 요약.git log --all
: 모든 브랜치의 커밋을 다 보여줌. (HEAD뿐만 아니라 다른 브랜치까지 포함)git log --graph
: 브랜치 구조를 트리 형태로 시각화. git log --author="이름"
: 특정 작성자의 커밋만 보기.git log 파일명
: 특정 파일에 대한 커밋 히스토리만 보기.[Working Directory] ←→ [Staging Area] ←→ [HEAD]
git diff
: 작업 디렉토리와 스테이지 영역을 비교 (add 하기 전 변경사항).git diff --cached
: 스테이지 영역과 최근 커밋을 비교 (add는 했지만 commit은 아직 안 한 변경사항). 내가 "커밋할 예정인 내용"을 미리 확인.git diff HEAD
: 작업 디렉토리와 최근 커밋을 비교 (add 여부와 상관 없이 전부 다 보여줌). "내 커밋과 지금 작업 상태의 차이"를 한꺼번에 보고 싶을 때.git checkout
: 특정 버전으로 working tree를 변경시키는 방법. 버전과 버전을 넘나들 수 있다.git checkout 돌아가고자하는커밋id
: 원하는 커밋으로 이동.git checkout main
: 가장 최신 상태인 main branch로 이동.git reset
git reset --hard
: 마지막 버전으로 돌아감. 마지막 버전 이후에 작업한 것이 사라짐.--hard
: 수정하고 있었던 것도 지워버림.--soft
, --mixed
git reset --hard 돌아가고자하는버전
git revert
: 버전을 삭제하지 않으면서(Git 기록을 보존하면서), 되돌리는 방법. 특정 커밋을 취소하는 새로운 커밋을 만듦.git revert 변경내용을취소할커밋id
: 해당 커밋의 변경 내용을 취소하는 새로운 커밋을 생성. 기존의 커밋(버전)은 내버려두어 삭제되지 않는다.