IT

git의 분기 간 커밋 차이를 보려면 어떻게 해야 합니까?

itgroup 2023. 5. 28. 20:34
반응형

git의 분기 간 커밋 차이를 보려면 어떻게 해야 합니까?

저는 X 지점에 있으며 그 위에 커밋을 몇 개 더 추가했습니다.저는 MASTER와 제가 있는 지점의 커밋 차이를 모두 보고 싶습니다.난 그냥 할 수 있어요.

git checkout master
git log

그 다음에

git checkout branch-X
git log

시각적으로는 차이가 있지만, 저는 더 쉽고 오류가 발생하기 쉬운 방법을 원합니다.

로 쉽게 할 수 있습니다.

git log master..branch-X

그러면 분기 X는 커밋하지만 마스터는 커밋하지 않음을 알 수 있습니다.

당신은 당신의 지점들이 이것과 어떻게 다른지에 대한 정말 멋진 시각적 출력을 얻을 수 있습니다.

git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative master..branch-X

저는 그것이 선택과 맥락의 문제라고 생각합니다.사용하는 것을 선호합니다.

git log origin/master..origin/develop --oneline --no-merges

마스터 분기에 없는 개발 중인 커밋이 표시됩니다.

실제로 수정된 파일을 확인하려면 다음을 사용

git diff --stat origin/master..origin/develop --no-merges

인수를 지정하지 않으면 완전한 차이가 표시됩니다.시각적 차이를 보려면 설치합니다.meld리눅스에서 또는WinMerge창문에기본 diff 도구인지 확인합니다.그럼 다음과 같은 것을 사용합니다.

git difftool -y origin/master..origin/develop --no-merges

현재 지점과 비교하고 싶은 경우.다음과 같이 지점 이름 대신 HEAD를 사용하는 것이 더 편리합니다.

git fetch
git log origin/master..HEAD --oneline --no-merges

병합될 모든 커밋이 표시됩니다.

저는 "커밋 내"의 차이를 확인하기 위해 다음을 참조하십시오.대칭 차이의 경우 반전된 인수를 사용하여 명령을 반복합니다.

git cherry -v master [your branch, or HEAD as default]

만약 당신이 Linux를 사용하고 있다면,gitg매우 빠르고 그래픽적으로 할 수 있는 방법입니다.

명령줄을 사용해야 하는 경우 다음을 사용할 수 있습니다.

git log --oneline --decorate

만들기 위해서git log기본적으로 다음과 같은 글로벌 환경설정을 설정합니다.

git config --global log.decorate true
git config --global log.abbrevCommit true

gitk를 사용하려는 경우:

gitk master..branch-X

그곳에는 멋진 오래된 학교 GUI가 있습니다.

일부 답변을 사용하여 사례에 맞는 답변을 찾았습니다(모든 작업이 릴리스 분기에 있는지 확인).

다른 방법도 작동하지만 값을 추가하지 않는 병합 커밋과 같이 필요 없는 행을 추가할 수 있습니다.

git fetch
git log origin/master..origin/release-1.1 --oneline --no-merges

또는 마스터와 전류를 비교할 수 있습니다.

git fetch
git log origin/master..HEAD --oneline --no-merges

git fetch업데이트된 정보를 사용하고 있는지 확인합니다.

이렇게 하면 각 커밋이 줄에 연결되어 텍스트 편집기에 복사/붙여 병합할 커밋과 작업을 비교할 수 있습니다.

완벽한 답은 아니지만 Github을 사용하는 사람들에게 더 효과적입니다.

여기에 이미지 설명 입력

레포로 이동합니다.Insights -> Network

커밋 메시지를 기준으로 비교하려는 경우 다음을 수행할 수 있습니다.

git fetch
git log --oneline origin/master | cut -d' ' -f2- > master_log
git log --oneline origin/branch-X | cut -d' ' -f2- > branchx_log
diff <(sort master_log) <(sort branchx_log)
#! /bin/bash
if ((2==$#)); then
  a=$1
  b=$2
  alog=$(echo $a | tr '/' '-').log
  blog=$(echo $b | tr '/' '-').log
  git log --oneline $a > $alog
  git log --oneline $b > $blog
  diff $alog $blog
fi

시각적 디프 도구가 있는 경우 a와 blog를 나란히 시각적으로 구분할 수 있기 때문입니다.끝에 있는 diff 명령을 시각적 diff 도구를 시작하는 명령으로 대체합니다.

PR의 "커밋" 탭에 표시되는 것과 같은 모든 커밋을 보려면 다음을 실행합니다.

기본:

git log --oneline origin/base..origin/my-branch

, "/"/" "" "" "" "" 를 추가하세요.--no-decorate

git log --oneline --no-decorate origin/base..origin/my-branch

을 연대순으로가장 커밋부터),--reverse

git log --oneline --no-decorate --reverse origin/base..origin/my-branch

이 멋진 것들을 찾는 데 시간이 좀 걸렸습니다.누군가에게 도움이 되길 바랍니다.

언급URL : https://stackoverflow.com/questions/13965391/how-do-i-see-the-commit-differences-between-branches-in-git

반응형