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 resetgit reset --hard: 마지막 버전으로 돌아감. 마지막 버전 이후에 작업한 것이 사라짐.--hard: 수정하고 있었던 것도 지워버림.--soft, --mixedgit reset --hard 돌아가고자하는버전git revert: 버전을 삭제하지 않으면서(Git 기록을 보존하면서), 되돌리는 방법. 특정 커밋을 취소하는 새로운 커밋을 만듦.git revert 변경내용을취소할커밋id: 해당 커밋의 변경 내용을 취소하는 새로운 커밋을 생성. 기존의 커밋(버전)은 내버려두어 삭제되지 않는다.