커밋 히스토리 조회하기 & 되돌리기
git log, amend
[Git] 커밋 히스토리 조회하기 & 되돌리기
git log
$ git log
는 히스토리를 조회하는데 사용하는 명령어이다. 시간순으로 히스토리를 보여주며, 가장 최근의 커밋이 가장 먼저 나온다.
순서대로 체크섬, 저자 이름, 저자 이메일, 커밋 날짜, 커밋 메세지를 보여준다.
git log 옵션
$ git log
에는 유용한 옵션들이 여럿 존재한다. 아래의 표를 참고하자.
조회 제한 조건
특정 시간이나 날짜로부터 원하는 조건의 커밋 기록을 확인할 수 있다.
--since
,--after
-
--until
,--before
→ “2.weeks”, “2020-05-24”, “1 years 2 day 3 minutes ago” 등의 조건으로 시간 설정이 가능하다.
--author
-
--grep
→ 저자를 지정하거나 커밋 메세지에서 키워드를 검색할 수도 있다.
-
--S
→ 커밋 변경 내용 안의 텍스트를 검색한다.
-
--committer
→ 입력한 커미터의 커밋만 보여준다.
-
--no-merges
→ merge commit을 제외한 결과만을 보여준다.
되돌리기
커밋을 하다보면 다양한 상황을 마주한다. 커밋 메세지를 빠트리거나, 파일을 빼먹거나, 수정이 덜 되었거나. 이런 경우를 위해 되돌리기가 존재한다.
$ git commit --amend
는 바로 직전에 한 커밋을 덮어쓴다. 파일을 수정하고 stage한 후, 해당 명령어를 실행하는 것으로 사용할 수 있다. 이전의 커밋은 히스토리에도 남지 않는 ‘없던 일’이 된다.
커밋이 아닌 staging을 되돌리는 방법 또한 존재한다. $ git reset
명령어를 사용하는데, $ git status
명령어를 실행하면 도움말로 알려준다.
파일의 변경사항을 되돌리는 방법, 그러니까 최근 커밋 버전으로 되돌리는 방법 또한 존재한다. $ git checkout -- [file]
이 이에 해당한다.
중요한 사실은 커밋하지 않은 데이터는 복구할 수 없다는 것이다. 커밋과 저장을 생활화 하자.