development

마스터와 브랜치 사이의 앞 / 뒤 정보?

big-blog 2020. 6. 5. 08:08
반응형

마스터와 브랜치 사이의 앞 / 뒤 정보?


내 지역의 repo (에서 테스트하기위한 지점을 만든 test-branch내가 푸시) Github.

Github계정으로 이동하여 이것을 선택 test-branch하면 정보가 표시됩니다.

This branch is 1 commit ahead and 2 commits behind master

내 질문은 :

  1. 이 정보를 로컬로 표시하려면 어떻게해야합니까 (예 : 정보 Github를보기 위해 열지 않고 터미널에 표시하는 명령 )?
  2. 나는 다음을 사용하여 분기 사이의 차이점을 볼 수 있음을 알고 있습니다.

    git diff master..test-branch
    

    또는 Meld(내가 선호하는) 사용 :

    git difftool master..test-branch
    

    거기에 볼 수있는 방법입니다하지만 만약 궁금 해서요 앞을 하고 뒤에 따로 커밋합니다. IE : 1 커밋을 미리 보여준 다음 2 커밋 을 스스로 보여줄 수있는 방법이 있습니까?


다음은 두 가지를 비교하고 각 분기가 다른 분기보다 얼마나 많은 커밋을 수행하는지 보여주는 트릭입니다 (질문 1에 대한보다 일반적인 답변).

대한 지역 지점 :git rev-list --left-right --count master...test-branch

대한 원격 지사 :git rev-list --left-right --count origin/master...origin/test-branch

결과는 다음과 같습니다.

1 7

이 출력 수단 "비교는 master, test-branch7 커밋 앞서이며, 1 뒤에 커밋합니다."

또한 로컬 브랜치를 원격 브랜치와 비교할 수 있습니다 (예 : origin/master...master로컬 master브랜치가 해당 원격 브랜치보다 앞 / 뒤에있는 커밋 수 확인) .


먼저 로컬에 몇 개의 수정본이 git fetch있는지 확인하려면 리모컨의 최신 정보를 가지고 있는지 확인해야합니다.

기본 출력 git status은 앞뒤로 몇 개의 수정본이 있는지 알려주지 만 일반적으로 너무 자세한 정보를 찾습니다.

$ git status
# On branch master
# Your branch and 'origin/master' have diverged,
# and have 2 and 1 different commit each, respectively.
#
nothing to commit (working directory clean)

나는 선호한다 git status -sb:

$ git status -sb
## master...origin/master [ahead 2, behind 1]

사실 나는 이것을 간단히 git s로 지정하고 이것이 상태 확인에 사용하는 주요 명령입니다.

의 "앞서 개정"에서 차이점을 확인 master하기 위해 "뒤에서 개정"을 제외 할 수 있습니다 origin/master.

git diff master..origin/master^

의 "개정판 뒤"에서 차이점을 확인하기 위해 다음 origin/master에서 "미리 개정"을 제외 할 수 있습니다 master.

git diff origin/master..master^^

앞뒤에 5 개의 개정이있는 경우 다음과 같이 작성하는 것이 더 쉬울 수 있습니다.

git diff master..origin/master~5
git diff origin/master..master~5

최신 정보

앞 / 뒤 수정본을 보려면 다른 지점을 추적하도록 지점을 구성해야합니다. 나에게 이것은 원격 저장소를 복제 할 때와로 분기를 푸시 한 후의 기본 동작입니다 git push -u remotename branchname. 내 버전은 1.8.4.3이지만 내가 기억하는 한 이런 식으로 작동하고 있습니다.

버전 1.8부터 다음과 같이 추적 분기를 설정할 수 있습니다.

git branch --track test-branch

버전 1.7부터는 구문이 다릅니다.

git branch --set-upstream test-branch

Git 2.5 이상에서는 이제 분기로 푸시하도록 구성된 모든 분기에 대해 앞 / 뒤를 볼 수있는 또 다른 옵션이 있습니다.

git for-each-ref --format="%(push:track)" refs/heads

"더 많은 참조 보기 Unpushed 힘내 커밋 "


git fetch를 수행 한 후 git status를 실행하여 로컬 브랜치의 브랜치 원격 버전보다 앞뒤에있는 커밋 수를 표시 할 수 있습니다.

이것은 다른 브랜치보다 앞뒤에 얼마나 많은 커밋이 있는지 보여주지 않습니다. 옵션은 전체 diff, github를 보거나 위에 링크 된 Vimhsa와 같은 솔루션을 사용하는 것입니다 : 모든 리포지토리의 Git 상태

참고 URL : https://stackoverflow.com/questions/20433867/git-ahead-behind-info-between-master-and-branch

반응형