[git] “git branch -r”에 원격 브랜치가 나타나지 않습니다

나는 원격 Bitbucket 저장소로 밀고 왔으며 최근 동료는 그가 만든 새로운 지점을 동일한 저장소로 밀어 넣었습니다.

그가 업로드 한 변경 사항을 가져 오려고합니다.

 $ git branch -a
 * master
 localbranch1
 localbranch2
 remotes/origin/master

$ git branch -r origin / 마스터

Bitbucket의 웹 UI에서 그가 만든 지점을 볼 수 있습니다. 어떻게해야합니까?

다음 시도 :

$ git fetch bitbucket
Password for 'https://xxxxx@bitbucket.org':
From https://bitbucket.org/user/repo
 * branch            HEAD       -> FETCH_HEAD

그가 만든 브랜치가 new_branch_b 라면 다음을 볼 수 있을까요?

$ git branch -r
origin/master
origin/new_branch_b

세 번째 시도 :

$ git remote update
Fetching bitbucket
Password for 'https://xxxxx@bitbucket.org':
From https://bitbucket.org/user/repo
 * branch            HEAD       -> FETCH_HEAD

$ git branch -r
  origin/master

네 번째 시도 :

[remote "bitbucket"]
url = https://user@bitbucket.org/user/repo.git

나는 bitbucket원산지보다는 리모컨을 불렀다. (적어도 그것은 내가 기억하는 것이다; 나는 얼마 전에 그것을 설정했다)

다섯 번째 시도 :

칸의 답변에 따라 Bitbucket 원격 구성을 업데이트했습니다 .

$ git config -e

[remote "bitbucket"]
    url = https://user@bitbucket.org/user/repo.git
    fetch = +refs/heads/*:refs/remotes/bitbucket/*

대부분의 사람들에게 그것을 원산지라고 부릅니다.

[remote "origin"]
    url = https://user@bitbucket.org/user/repo.git
    fetch = +refs/heads/*:refs/remotes/origin/*

나중에,

$ git remote update

Fetching bitbucket
Password for 'https://user@bitbucket.org':
remote: Counting objects: 48, done.
remote: Compressing objects: 100% (32/32), done.
remote: Total 35 (delta 21), reused 0 (delta 0)
Unpacking objects: 100% (35/35), done.
From https://bitbucket.org/user/repo
 * [new branch]      branch_name1 -> origin/branch_name1
 * [new branch]      branch_name2    -> origin/branch_name2

…. 등등.

나는 git fetch origin또한 일할 것이라고 생각한다 git remote update.



답변

그만큼 remote 섹션에서는 페치 규칙도 지정합니다. 원격에서 모든 분기를 가져 오기 위해 이와 같은 것을 추가 할 수 있습니다.

fetch = +refs/heads/*:refs/remotes/origin/*

(또는 교체 origin 와 함께bitbucket .)

여기에서 읽어보십시오 : 10.5 Git Internals-The Refspec


답변

리모컨을 아직 업데이트하지 않은 경우 업데이트하십시오.

$ git remote update
$ git branch -r


답변

--depth매개 변수를 사용하여 복제하면 .git/config모든 분기를 가져 오지 않고 마스터 만 가져 오도록 설정합니다 .

간단히 매개 변수를 생략하거나 구성 파일을 업데이트 할 수 있습니다.

fetch = +refs/heads/master:refs/remotes/origin/master

fetch = +refs/heads/*:refs/remotes/origin/*


답변

나는 같은 문제가 있었다. 가장 쉬운 해결책은 리모컨을 제거하고 읽은 다음 가져 오는 것입니다.


답변

불행하게도, git branch -a그리고 git branch -r수 없습니다 당신이 “가져 힘내”실행하지 않은 경우, 당신에게 모든 원격 지점을 보여줍니다.

git remote show origin항상 일관되게 작동합니다. 또한 git show-refGit 저장소의 모든 참조를 보여줍니다. 그러나 git branch명령 과 동일하게 작동합니다 .


답변