마스터와 브랜치 간에 정보를 주고받습니까?
는 제 레포에 시험을위한 .test-branch
것입니다.Github
.
내가 만약에 나의Github
하고 이 계정을 합니다.test-branch
정보가 표시됩니다.
This branch is 1 commit ahead and 2 commits behind master
제 질문은 다음과 같습니다.
- 로컬로 합니까(이). 굳이 열 가 없습니다.
Github
보기 위해)? 다음을 사용하여 분기 간의 차이를 확인할 수 있습니다.
git diff master..test-branch
는사용을 사용합니다.
Meld
가 선호하는 것내가선호는것하:것)는하):git difftool master..test-branch
그런데 앞뒤 커밋을 따로 볼 수 있는 방법이 있을까 해서요.I.E.: 하나의 커밋은 스스로 앞서고 두 개의 커밋은 스스로 뒤에 있다는 것을 보여주는 방법이 있습니까?
1부
질문 1에 대한 답변으로 두 분기를 비교하고 각 분기가 다른 분기보다 몇 개나 앞서 있는지 보여주는 방법을 찾았습니다(질문 1에 대한 보다 일반적인 답변).
로컬 분기의 경우:git rev-list --left-right --count master...test-branch
원격 분기의 경우:git rev-list --left-right --count origin/master...origin/test-branch
이렇게 하면 다음과 같은 출력이 제공됩니다.
2 1
은 다음을 의미합니다: "와하여". "비교:master
,test-branch
는 앞에 12입니다. "1 커은앞두에고밋 2 있다뒤니습에은커밋"
분기와 를 들어 분기 원비 수교 있도 다습 니할와origin/master...master
브랜치를 합니다(여기서 로여커횟확인수는하기밋를분컬기여(확▁to인)here▁find).master
보다 앞는 원격 상대보다 앞/뒤에 있습니다.
2부
질문의 두 번째 부분에 답하기 위해, 해결책은 여러분이 정확히 무엇을 성취하기를 원하는지에 달려 있습니다.
커밋 보기
을 .git rev-list
양쪽에서 고유한 커밋의 정확한 목록을 반환합니다. 대체--count
의논쟁과 같은 하는 것--pretty=oneline
실행할 전체 명령 만들기:
git rev-list --left-right --pretty=oneline master...test-branch
이렇게 하면 다음과 같은 출력이 생성됩니다.
<bba27b56ad7072e281d529d4845e4edf877eb7d7 unique commit 2 on master
<dad0b69ec50ea57b076bfecabf2cc7c8a652bb6f unique commit 1 on master
>4bfad52fbcf0e60d78d06661d5c06b59c98ac8fd unique commit 1 on test-branch
에는 여서모커셰다같음습다니과는어밋기든이 나옵니다.<
또는>
에서 찾을 수 오른쪽, 여기서 왼나다니타냅분를기있는오쪽, 른여기또는수을쪽찾왼▁to(▁it다▁which,여▁indicate).master
또는test-branch
각각)
코드 보기
어느 분기에서나 발견되는 모든 새 커밋의 차이를 보려면 두 단계로 이 작업을 수행해야 합니다.
- 가장 최근의 공통 조상 정의
$ git merge-base master test-branch
c22faff7468d6d5caef217ac6b82f3ed95e9d902
- 위에서 얻은 커밋 샤에 대한 diff 또는 branch(일반적으로 짧은 형식이면 됩니다)
마스터에서만 발견되는 모든 커밋의 차이를 표시
git diff c22faff7..master
테스트 분기에서만 발견된 모든 커밋의 차이를 표시
git diff c22faff7..test-branch
먼저 로컬에서 지원되는 수정사항 수를 확인하려면 다음 작업을 수행해야 합니다.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
예를 들어, 아직 푸시하지 않은 커밋을 확인하는 방법을 보여주는 "누르지 않은 Git 커밋 보기"를 참조하십시오.
git log @{push}..
현재 피쳐 분기에 대한 마스터 이전 커밋 수를 얻으려면 다음 명령을 사용합니다.
git rev-list --left-right --count master...$(git branch --show-current)
사용할 수도 있습니다.awk
조금 더 예쁘게 하기 위해:
git rev-list --left-right --count origin/develop...feature-branch | awk '{print "Behind "$1" - Ahead "$2""}'
항상 오리진을 먼저 가져온 다음 분기를 비교하는 별칭을 만들 수도 있습니다.
commit-diff = !"git fetch &> /dev/null && git rev-list --left-right --count"
깃 가져오기를 수행한 후 깃 상태를 실행하여 로컬 분기가 분기의 원격 버전보다 앞에 있거나 뒤에 있는 커밋 수를 표시할 수 있습니다.
그러나 다른 분기의 앞 또는 뒤에 있는 커밋 수는 표시되지 않습니다.당신의 옵션은 github을 보거나 위에 링크된 Vimhsa와 같은 솔루션을 사용하는 것입니다: 모든 repo에 대한 Git 상태.
언급URL : https://stackoverflow.com/questions/20433867/git-ahead-behind-info-between-master-and-branch
'prosource' 카테고리의 다른 글
아이파이썬 노트북에서 파이썬 3을 실행하는 방법? (0) | 2023.05.03 |
---|---|
EntitySet에 DefiningQuery가 있고 요소가 없으므로 EntitySet을 업데이트할 수 없습니다. (0) | 2023.05.03 |
프로그래밍 방식으로 테이블 보기 행 선택 (0) | 2023.05.03 |
아이덴티티를 바꾸는 방법_SQL Server 2008을 사용하여 INSERT On/Off? (0) | 2023.05.03 |
Git의 루트 폴더에서 파일만 제외하는 방법 (0) | 2023.05.03 |