참고
- 생활코딩 GIT
- 기본 한방에 정리Git 기본 명령 및 작업 흐름을 사용하는 방법에 대한 실용 가이드
GIT의 3대 목적
- version
- backup
- collaborate
3. Git Directory(Local Repository)
- 파일들이 커밋된 곳으로, 변경된 파일들에 대한 스냅샷을 가지고 있는 공간
- Staging Area를 거쳐 만들어진 버전들이 저장된 공간
git init
.git이란?
- git repogitory (repogitory tracking's information)
git status
참고 https://www.gyanblog.com/git/practical-guide-how-work-git-basic-commands-workflows
working flow
- Git workflow(Git Area)는 기본적으로 3단계로 나눠져 있다.
Working tree
- 현재 작업중인 area
- 버전화 되기전 상태의 area
Staging Area
- 버전을 만들기 위해 준비 중인 directory 및 files을 잠시 저장하는 area
- 변경사항이 있는 파일들을 선택해 커밋할 수 있도록 지정하는 공간
staging area 명령어:
git add (파일 및 디렉토리 이름)
Repository
- Staging Area를 거쳐 만들어진 버전들이 저장된 공간
Repogitory에 version 생성 명렁어
git commit -m "(message 입력)"
git commit -am "(Message)"
(단, 신규 파일은 add가 자동으로 되지 않기 때문에 해당 명령어가 적용되지 않는다.)
git log
git log --stat
git config global core.editor "(사용할 editor 이름)"
git diff
(마지막 버전과 수정본의 차이점 비교) => 버전화 전의 최종 검토git reset --hard
=> 최종 검토후 수정 전(즉, 마지막 버전)으로 returngit log -p
=> 버전간의 차이점 비교git checkout [version_ID]
=> 해당 버전이 만들어진 시점으로 이동
=> HEAD가 해당 version을 가리킨다.
최신 version으로 돌아가기
git checkout [master](branch 이름)
git reset --hard [ID_이름]
- 정확이는 삭제가 아니라 해당 버전의 in the time(즉, 시점)이 되겠다는 의미
--hard
: 완전히 삭제--soft, --mixed
: 완전히 삭제는아니고 돌아갈 여지를 남기는 것
git revert [현재 위치하는 version_ID]
- 현재 버전에서 바로 이전 단계의 버전으로 되돌아간다.
- 정확히는 되돌아간 시점으로 돌아가는 것이 아닌 이전 시점과 같은 상태의 새로운 버전을 생성한다.
- 즉, 현재 버전에서 되돌아갔을 뿐 삭제를 한것은 아니다!
- 한번에 여러 단계의 version들을 revert를 할 수 없다.