git log | 커밋 히스토리를 출력 |
git log --pretty=oneline | --pretty 옵션을 사용하면 커밋 히스토리를 다양한 방식으로 출력할 수 있다. --pretty 옵션에 oneline이라는 값을 주면 커밋 하나당 한 줄씩 출력해준다. |
git show [커밋 아이디] | 특정 커밋에서 어떤 변경사항이 있었는지 확인 |
git commit --amend | 최신 커밋을 다시 수정해서 새로운 커밋으로 만듦 |
git config alias.[별명] [커맨드] | 길이가 긴 커맨드에 별명을 붙여서 이후로 별명으로 해당 커맨드를 실행할 수 있도록 설정 예시) git config alias.history 'log --pretty=oneline' : git history라고 입력하면 log --pretty=oneline가 실행된다. |
git diff [커밋 A의 아이디] [커밋 B의 아이디] | 두 커밋 간의 차이 비교 |
git reset [옵션] [커밋 아이디] | 과거 커밋으로 아예 돌아가고 싶을 때 옵션에 따라 하는 작업이 달라진다.(옵션을 생략하면 --mixed 옵션이 적용) |
(1) HEAD가 특정 커밋을 가리키도록 이동시킴(--soft는 여기까지 수행) | |
(2) staging area도 특정 커밋처럼 리셋(--mixed는 여기까지 수행) | |
(3) working directory도 특정 커밋처럼 리셋(--hard는 여기까지 수행) | |
그리고 이때 커밋 아이디 대신 HEAD의 위치를 기준으로 한 표기법 (예 : HEAD^ : 현재 HEAD가 가리키고 있는 커밋의 바로 이전 커밋, HEAD~3 : 현재 HEAD가 가리키는 커밋보다 3단계 전에 있는 커밋)을 사용해도 된다. |
|
git tag [태그 이름] [커밋 아이디] / git show [태그이름] |
특정 커밋에 태그를 붙임 (보통 프로젝트에서 주요 버전의 시작점이 되는 커밋에 태그를 단다.) |
git rest [옵션] eea5 | working direcrory | staging area | repository |
--soft | 안 바뀜 | 안 바뀜 | HEAD가 eea5 커밋 가리킴 |
--mixed | 안 바뀜 | eea5 커밋처럼 바뀜 | HEAD가 eea5 커밋 가리킴 |
--hard | eea5 커밋처럼 바뀜 | eea5 커밋처럼 바뀜 | HEAD가 eea5 커밋 가리킴 |
** 커밋 아이디는 앞에 4자리 까지만 입력해줘도 괜찮다.
** HEAD : 어떤 커밋 하나를 가리킨다. 보통 가장 최근에 한 커밋을 가리키고, 매번 더 새로운 커밋을 가리킨다.
** working directory는 HEAD가 가리키는 커밋에 다라 다르게 구성된다.
** HEAD가 최신 커밋보다 더 이전의 커밋을 가리키면 working directory의 내부도 과거 커밋의 모습대로 바뀌게 된다.
**staging area에 있던 것들은 커밋을 하더라도 그것과 상관없이 계속 남아있다.
** --hard 옵션은 별로 권장되진 않는다. 커밋 이후 워킹 디렉토리에서 했던 내용들이 다 사라지고 복구를 할 수 없기 때문이다.
'코린이 개념잡기 > GIT' 카테고리의 다른 글
HEAD와 branch의 관계 (0) | 2024.12.09 |
---|---|
branch (0) | 2024.12.09 |
커밋 메시지 작성하기 (1) | 2024.12.08 |
push와 pull (0) | 2024.12.08 |
staging area에서 파일 제거하기 (0) | 2024.12.08 |