source

특정 분기에 대한 변경 사항만 보려면 Git 로그를 어떻게 실행합니까?

ittop 2023. 5. 12. 22:40
반응형

특정 분기에 대한 변경 사항만 보려면 Git 로그를 어떻게 실행합니까?

원격/마스터 분기를 추적하는 로컬 분기가 있습니다.실행 후git-pull그리고.git-log로그에는 현재 분기뿐만 아니라 원격 추적 분기의 모든 커밋이 표시됩니다.하지만 원격 지점에 변경 사항이 너무 많아서 현재 로컬 지점에 대한 커밋만 확인해야 합니다.

특정 분기에 대한 커밋만 표시하는 데 사용할 Git 명령은 무엇입니까?

주의:

구성 정보:

[branch "my-branch"]
  remote = origin
  merge = refs/heads/master

분기가 다음으로 생성되었다고 가정합니다.master분기에 있는 동안(즉, 분기를 체크아웃한 경우):

git cherry -v master

또는

git log master..

분기에 없는 경우 다음과 같이 "git log" 명령에 분기 이름을 추가할 수 있습니다.

git log master..branchname

당신의 가지가 다음으로 만들어진 경우.origin/master그럼 말하시오origin/master대신에master.

사용:

git log --graph --abbrev-commit --decorate  --first-parent <branch_name>

이것은 대상 분기에만 해당됩니다(물론 --graph, --abbrev-commit --decorate는 더 연마합니다).

핵심 옵션은 다음과 같습니다.--first-parent"합병 커밋을 볼 때 첫 번째 부모 커밋만 따릅니다." (https://git-scm.com/docs/git-log)

커밋 포크가 표시되지 않도록 합니다.

특정 분기에서 사용자가 수행하는 커밋만 수행하려면 다음 명령을 사용합니다.

git log branch_name --author='Dyaniyal'

제가 안고 있던 문제는 이것과 비슷하지만 마스터가 제 분기점보다 너무 앞섰기 때문에 기록이 유용하지 않다는 것입니다. (분기점으로 이동하는 데 시간이 너무 오래 걸립니다.)

약간의 시행착오 끝에, 이것은 제가 원하는 것을 대략적으로 주었습니다.

git log --graph --decorate --oneline --all ^master^!

막 뛰어가다git log origin/$BRANCH_NAME

Magit을 사용하는 사용자의 경우,l그리고.=m토글하다, 토글하다, 토글하다, 토글하다, 토글하다--no-merges그리고.=p토글하다, 토글하다, 토글하다, 토글하다, 토글하다--first-parent.

그럼 그냥 치든지.l현재 분기(커밋이 병합되지 않음)에서 내역의 끝까지 커밋을 다시 표시하거나 분기된 위치에서 로그를 종료하려는 경우master히트를 치다o및 유형master..사용자 범위:

여기에 이미지 설명 입력

에서develop지점, 그리고 최근 홍보물 목록을 보고 싶어 합니다.

PROMPT> git log --first-parent --pretty=oneline 0a805f46957a957161c5ed4e08081edeed9b91e7..6aae236484dc1881f5dbdef0f529eb95c6ef7bd5
0a805f46957a957161c5ed4e08081edeed9b91e7 Merged PR 1984/3: Fixed crash 2.
8d51abb53403e10e6484dc3c0569a5792f1x3734 Merged PR 1984/2: Fixed crash 1.
6aae236484dc1881f5dbdef0f529eb95c6efcbd5 Merged PR 1984/1: Downgraded from windows 11 to windows 3.11.

이것은 족제비 뉴에이지 GUI 측면의 답변이지만, 어쨌든, Xcode에는 그것을 여기에 이미지 설명 입력위한 시각적 도구가 분명히 있습니다.

저는 lg1 룩앤필을 포함하도록 제안된 답변을 수정했습니다.

[alias]
lg1b = "!cd -- \"${GIT_PREFIX:-.}\" && CURRENT_BRANCH=$(git branch --show-current) && git log $CURRENT_BRANCH --graph --abbrev-commit --pretty='format:%C(bold blue)%h%C(reset) %C(bold green)(%ar)%C(reset) %s %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --decorate --not $(git for-each-ref --format='%(refname)' refs/heads/ | grep -v refs/heads/$CURRENT_BRANCH) #"

lg1 명령: Pretty Git 분기 그래프에 대한 내용을 참조하십시오.

git log $(git branch --show-current)

언급URL : https://stackoverflow.com/questions/4649356/how-do-i-run-git-log-to-see-changes-only-for-a-specific-branch

반응형