HOWTO · Git
범위가 있는 Git 로그를 사용하여 한 분기에 대한 커밋 기록 표시
이 튜토리얼에서는 범위가 있는 Git 로그를 사용하여 분기에 대한 Git 커밋 히스토리를 보는 방법을 보여줍니다. 다양한 상황에 대해 Git 로그 명령에서 제한 옵션을 설정하는 여러 방법을 보여줍니다. 또한 커밋 기록의 필요한 하위 집합을 얻기 위해 코드를 적게 작성하는 데 도움이 되는 유용한 바로 가기를 찾을 수 있습니다.
git log에는 저장소 기록에서 커밋 하위 집합을 얻기 위한 많은 제한 옵션이 있습니다. 이중 점 구문, 캐럿 연산자 ^, --not 옵션 및 여러 바로 가기를 사용하여 range가 포함된 git log가 분기에 대해서만 git commit 기록을 보는 데 어떻게 도움이 되는지 보여줍니다.
Git은 사용자가 분기를 관리하고 분기와 함께 효율적인 워크플로를 고안할 수 있도록 하는 이 풍부한 개정 쿼리 시스템에서 힘을 얻습니다.
git log 및 고급 제한 옵션을 사용하여 분기에 대한 Git 커밋 기록
Git 리포지토리는 커밋 기록이 길면 커질 수 있습니다. 이러한 경우 전체 기록을 보는 것은 그다지 도움이 되지 않습니다.
git log 명령은 필요한 저장소 기록에서 커밋의 하위 집합만 추출할 수 있는 많은 유용한 옵션을 제공합니다.
git log [formatting options] [limiting options]
[formatting options]은 커밋에 대한 다양한 정보를 표시하고 [limiting options]은 보고 싶은 커밋을 선택하는 데 도움이 됩니다.
이러한 limiting options에 올바른 범위 값을 제공하면 현재 분기에서 git show 커밋을 수행할 수 있습니다.
이중 점 구문 <branch1>..<branch2>을 사용하여 분기에 대한 Git 커밋 기록
이중 점 구문은 branch2에서 도달할 수 있지만 branch1에서는 도달할 수 없는 커밋을 보여줍니다.
master에서 새로운 experiment_branch를 생성한다고 가정합니다. 그런 다음 이 두 가지를 모두 커밋하지만 아직 병합하지 않습니다.
이제 experiment_branch에서 맨손으로 git log를 수행하면 experiment_branch를 만들기 전에도 master에 대한 커밋을 포함하여 전체 기록이 표시됩니다.
이것은 별로 도움이 되지 않는 행동입니다. 일반적인 사용 사례 중 하나는 experiment_branch에서 병합되지 않은 커밋만 보고 싶은 경우입니다.
우리는 다음 명령으로 그렇게 합니다.
git log master..experiment_branch
모든 커밋은 experiment_branch에서 접근할 수 있지만 master에서는 접근할 수 없습니다(기본적으로 실험 브랜치에서 병합되지 않은 모든 커밋).
우리는 또한 experiment_branch를 병합할 master의 상태를 보기 위해 반대의 경우 분기 순서를 뒤집을 수 있습니다.
마스터는 다음과 같습니다.
우리가 할 때:
git log experiment_branch..master
실험 분기를 만든 후 master에 대한 새 커밋만 표시됩니다.
git log를 사용하여 분기에 대한 Git 커밋 기록을 표시하기 위해 몇 자 더 적게 입력하는 유용한 바로 가기
이중 점 구문에서 두 분기 중 하나를 제공하지 않으면 Git은 기본값을 HEAD로 설정합니다.
우리는 이것을 git checkout의 현명한 선택과 함께 사용하여 git log 명령을 단축할 수 있습니다.
먼저 실험 분기로 전환합니다.
git checkout experiment_branch
이제 HEAD는 experiment_branch를 가리킵니다.
이제 오른쪽 분기 피연산자를 생략하고 이중 점 범위 구문의 짧은 형식 버전을 사용합니다.
git log master..
Git은 오른쪽 분기를 현재 HEAD인 experiment_branch로 기본 설정하고 위와 같이 병합되지 않은 커밋에 대해서만 동일한 기록을 얻습니다.
현재 분기에만 커밋을 표시하기 위해 log를 사용하여 마지막 몇 가지 커밋만 볼 수 있는 유용한 옵션
experiment_branch는 병합되지 않은 커밋이 많은 오랜 역사를 가지고 있습니다.
이러한 경우에는 마지막 몇 개의 커밋만 보고 싶을 수 있습니다.
git log -2 master..
-2 옵션은 선택한 기록 하위 집합에서 마지막 2개의 커밋만 표시합니다.
캐럿 연산자 ^를 사용하여 분기에 대한 Git 커밋 기록
캐럿 연산자 ^는 작동하는 분기에서 도달할 수 있는 모든 커밋을 제외합니다. 이것을 사용하여 현재 분기의 기록만 표시할 수 있습니다.
git log ^master experiment_branch
--not 옵션을 사용하여 분기에 대한 Git 커밋 기록
브랜치 이름 앞에 --not 옵션을 사용하여 동일한 결과를 얻을 수도 있습니다. 이것은 해당 분기에서 도달할 수 있는 모든 커밋을 제외합니다.
git log experiment_branch --not master
동일한 작업을 수행하고 experiment_branch에 병합되지 않은 커밋만 표시됩니다.
자원
- https://git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History
- https://rakhesh.com/coding/git-view-the-commit-log-of-a-remote-branch/
- https://git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History
- https://stackoverflow.com/questions/14889017/how-to-show-local-branch-history#14889649
- https://stackoverflow.com/questions/16974204/how-to-get-commit-history-for-just-one-branch