저장소에서 몇 번의 커밋을 하였는지, 언제 하였는지 궁금할 수 있다.
명령어는 git log이다.
특별한 argument 없이 실행하면 저장소의 커밋 히스토리를 시간순으로 보여준다.
가장 최근의 커밋이 가장 먼저 나온다.
원하는 히스토리를 검색할 수 있게 다양한 옵션을 지원한다.
-p
: 각 커밋의 diff 결과를 보여준다. 다른 유용한 옵션은 -2
가 있다. 이는 최근 두 개 결과만 보여준다.
git log -p -2 와 같은 명령을 실행하면 최근 두개의 commit에 대한 diff 결과를 보여줄 것이다.
--stat
: 이름처럼 통계적 결과를 내준다. 어떤 파일이 수정됐는지, 얼마나 많은 파일이 변경됐는지,
또 얼마나 많은 라인을 추가하거나 삭제했는지 보여준다.
옵션 | 설명 |
-p | 커밋들에 적용된 패치 보여주기 |
--stat | 커밋에서 수정된 파일의 통계정보 보여주기 |
--shortstat | --stat 결과 중 수정한 파일, 추가된 라인, 삭제된 라인만 보여주기 |
--name-only | 커밋 정보중 수정된 파일목록만 보여주기 |
--name-status | 수정된 파일의 목록을 보여줄 뿐만 아니라, 파일을 추가했는지 수정한 것인지 삭제한 것인지도 보여주기 |
--abbrev-commit | 체크섬 처음 몇 자만 보여주기 |
--relative-date | 상대적인 형식으로 작성 시간 보여주기 |
--graph | 브랜치와 머지 히스토리 정보를 아스키 그래프로 보여주기 |
--pretty | 지정한 형식으로 보여주기 |
--since / --until
: 시간을 기준으로 조회하는 옵션.
ex) 지난 2주 동안 만들어진 커밋들만 조회하는 명령
$ git log --since=2.weeks
이 옵션은 다양한 형식을 지원한다.
--author
: 저자를 지정하여 검색하기
--grep
: 커밋 메시지에서 키워드 검색하기
--all-match
: 여러 옵션을 설정한 경우, 모두 만족하는 커밋을 찾으려고 할 때
수정한 파일을 다시 최근 커밋된 버전으로 되돌리는 방법은 뭘까?
사실 답은 git status 명령어가 다 알려준다.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working
directory)
modified: CONTRIBUTING.md
알려주는대로 하면, CONTRIBUTING.md라는 파일이 원래대로 돌아갔을 것이다.
하지만 이 명령어는 수정한 내용이 전부 사라지므로 주의해야 한다.
변경한 내용을 아예 버리지 않고, 당장에는 되돌려야 하는 상황이라면
stash 명령어나 branch를 사용하자.
명령어를 일일이 다 치기 귀찮고 복잡하니까, 간단히 쓸 수 있게 alias를 만들 수 있다.
이는 git config를 통해서 만들 수 있다.
예시는 아래와 같다.
$ git config --global alias.co checkout
$ git config --global alias.br branch
$ git config --global alias.ci commit
$ git config --global alias.st status
이렇게 만들어둔 alias는 사용이 가능해진다.
git status => git st 로 짧게 쓸 수 있게 된다.
이미 있는 명령을 편리하고 새로운 명령으로 만들어 사용할 수도 있다.
예를 들어 파일을 unstaged상태로 변경하는 명령을 만들어서 편해질 수도 있다.
$ git config --global alias.unstage 'reset HEAD --'
"git reset HEAD -- 어떤파일"의 입력과 "git unstage 어떤파일"은 같은 명령이 된다.
Pro Git (3) - 브랜치 part 1 (0) | 2019.10.16 |
---|---|
Git pull과 fetch의 차이 (0) | 2019.10.14 |
Pro Git (1) - 기초, 시작 (0) | 2019.10.14 |
댓글 영역