내가 할 수 있다는 것을 알고 git branch --all
로컬 및 원격 지점을 모두 보여 주지만 그들 사이의 관계를 보여주는 데 그렇게 유용하지 않습니다.
어떤 지역 지점이 어떤 원격 지점을 추적하는지 보여주는 방식으로 지점을 어떻게 나열합니까?
답변
스크립팅을 위해 원하는 경우 매우 많은 도자기 명령입니다.
git branch -vv # doubly verbose!
git 1.8.3에서는 업스트림 분기가 파란색 으로 표시됩니다 ( ” git에서 분기 추적 (있는 경우)은 무엇입니까? “참조).
깨끗한 출력을 원하면 arcresu의 답변을 참조하십시오 .이 답변 은 원래이 답변을 작성한 시점에 존재하지 않았다고 생각되는 도자기 명령을 사용하므로 조금 더 간결하고 병합뿐만 아니라 rebase를 위해 구성된 분기와 함께 작동합니다.
답변
git remote show origin
‘원점’을 리모컨의 이름으로 바꾸십시오.
답변
에 대한 매뉴얼 페이지를 보면 git-rev-parse
다음 구문이 설명되어 있습니다.
<branchname>@{upstream}
예를 들면master@{upstream}
,@{u}
@{upstream}
branchname 의 접미사 (약식
<branchname>@{u}
)는 branchname으로 지정된 분기가 빌드되도록 설정된 분기를 나타냅니다. 누락 된 분기 이름은 기본적으로 현재 이름입니다.
따라서 지점의 상류를 찾으려면 master
다음을 수행하십시오.
git rev-parse --abbrev-ref master@{upstream}
# => origin/master
각 지점에 대한 정보를 인쇄하려면 다음과 같이 할 수 있습니다.
while read branch; do
upstream=$(git rev-parse --abbrev-ref $branch@{upstream} 2>/dev/null)
if [[ $? == 0 ]]; then
echo $branch tracks $upstream
else
echo $branch has no upstream configured
fi
done < <(git for-each-ref --format='%(refname:short)' refs/heads/*)
# Output:
# master tracks origin/master
# ...
이것은 refs와 config를 수동으로 파싱하는 것보다 깨끗합니다.
답변
kubi의 대답에 대한 대안 .git/config
은 로컬 저장소 구성을 보여주는 파일을 보는 것입니다 .
cat .git/config
답변
git for-each-ref --format='%(refname:short) <- %(upstream:short)' refs/heads
각 지역 지점에 대한 라인을 표시합니다. 추적 지점은 다음과 같습니다.
master <- origin/master
추적하지 않는 것은 다음과 같습니다.
test <-
답변
를 들어 현재의 지점, 여기에 두 가지 좋은 선택이 있습니다 :
% git rev-parse --abbrev-ref --symbolic-full-name @{u}
origin/mainline
또는
% git for-each-ref --format='%(upstream:short)' $(git symbolic-ref -q HEAD)
origin/mainline
그 대답은 또한 여기에 있습니다 . (잘못된) 중복으로 표시된 약간 다른 질문에 대한 것입니다.
답변
현재 지점의 경우 git checkout
(아무 지점도 없음) 이라고 말할 수도 있습니다 . 이것은 현재 브랜치에 대한 추적 정보가있는 경우 부작용을 나타내는 no-op입니다.
$ git checkout
Your branch is up-to-date with 'origin/master'.