티스토리 뷰
발생일: 2015.12.04
키워드: git, 깃, revision, 깃 리비전, revision range, 깃 로그, git log
문제:
특정 브랜치를 제외하고 현재 브랜치에서 작업한 커밋 로그만 보고 싶다.
해결책:
`git log <revision-range>` 명령에 리비전을 전달할 수 있고, 리비전 범위로 필터링할 수 있다.
특정 리비전: (<revision>)
HEAD^ : 현재 커밋의 부모
HEAD^2 = 현재 커밋의 조부모
HEAD^^ = 위와 동일
HEAD^5 : 현재 부모의 다섯번째 부모
범위: (<revision-range>)
refA..refB : refA 엔 없고 refB 에만 있는 커밋
^refA refB : 위와 동일
^refA refB refC : refA 엔 없고, refB / refC 에만 있는 커밋
--not refA refB refC : 위와 동일
refA...refB : refA 와 refB 모두에 존재하지 않는 커밋
예1) develop 것을 제외하고 현재 브랜치에만 있는 커밋 로그 보기
내가 develop 에서 featureA 브랜치를 따서 작업하던 중에, develop 으로부터 시작한 내 브랜치의 작업 로그를 보고 싶은 경우.
$ git log develop..HEAD
또는
$ git log ^develop HEAD
$ git log --not develop HEAD
로 조회할 수 있다.
반대로, 내가 작업하던 중에 develop 에 머지된 다른 커밋을 보고 싶은 경우,
$ git log HEAD..develop
또는
$ git log ^HEAD develop
로 조회할 수 있다.
시간이 지나면 .. 와 ... 이 또 헷갈릴테니, ^ 를 사용하는 게 더 직관적일 것 같다.
예2) develop 과 현재 브랜치에 포함되지 않은 커밋 로그 보기
현재 브랜치에서 develop 을 머지하려고 하는데, 양 쪽에 머지된 게 아닌 다른 커밋을 보고 싶은 경우.
예를 들어,
develop - featureA
develop - featureB
develop - featureC
와 같은 브랜치가 있고, 내가 featureB 를 작업하고 있던 중에, featureA 를 미리 머지했었다면,
$ git log develop...HEAD
명령으로 featureC 의 커밋을 확인할 수 있다.
참고:
반응형
댓글
공지사항