Fui enviado para um repositório remoto do Bitbucket e, recentemente, um colega enviou um novo ramo que ele criou para o mesmo repositório.
Estou tentando buscar as alterações que ele enviou.
$ git branch -a
* master
localbranch1
localbranch2
remotes/origin/master
$ git branch -r origem / mestre
Na interface da Web da Bitbucket, posso ver o ramo que ele criou. Como posso fazer isso?
Próxima tentativa:
$ git fetch bitbucket
Password for 'https://[email protected]':
From https://bitbucket.org/user/repo
* branch HEAD -> FETCH_HEAD
Se o ramo que ele criou se chama new_branch_b , devo esperar o seguinte?
$ git branch -r
origin/master
origin/new_branch_b
Terceira tentativa:
$ git remote update
Fetching bitbucket
Password for 'https://[email protected]':
From https://bitbucket.org/user/repo
* branch HEAD -> FETCH_HEAD
$ git branch -r
origin/master
Quarta tentativa:
[remote "bitbucket"]
url = https://[email protected]/user/repo.git
Liguei para o controle remoto em bitbucket
vez de origem (pelo menos é o que me lembro; configurei-o há um tempo)
Quinta tentativa:
Atualizei a configuração remota do Bitbucket conforme a resposta de kan :
$ git config -e
[remote "bitbucket"]
url = https://[email protected]/user/repo.git
fetch = +refs/heads/*:refs/remotes/bitbucket/*
Para a maioria das pessoas, isso será chamado de origem:
[remote "origin"]
url = https://[email protected]/user/repo.git
fetch = +refs/heads/*:refs/remotes/origin/*
Mais tarde,
$ git remote update
Fetching bitbucket
Password for 'https://[email protected]':
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
.... e assim por diante.
Eu acho git fetch origin
que também funcionaria git remote update
.
refs/remotes/bitbucket/*
em vez derefs/remotes/origin/*
.git fetch origin
faz o trabalho #Respostas:
A
remote
seção também especifica regras de busca. Você pode adicionar algo assim para buscar todas as ramificações do controle remoto:(Ou substitua
origin
porbitbucket
.)Leia sobre isso aqui: 10.5 Git Internals - The Refspec
fonte
fetch = +refs/heads/master:refs/remotes/origin/master
para mim. Substituindomaster
por*
corrigido o meu problema.git clone
um projeto. Não me lembro de ter feito nada de especial com o meu idiota local.clone
sido interrompido e depois retomado? Ou outra coisa acessou o repositório simultaneamente?Atualize seu controle remoto se você ainda não o fez:
fonte
git remote update
eu posso ver o novo ramo na interface do usuário. Obrigadogit branch -r
. No git-scm.com/docs/git-branch , diz "Opção -r faz com que as ramificações de rastreamento remoto sejam listadas e a opção -a mostra as ramificações local e remota".git remote update
busca todas as ramificações de todos os controles remotos listados emgit remote -v
.git checkout origin/master
e, em seguidagit branch master; git checkout master
Se você clonar com o
--depth
parâmetro, ele definirá.git/config
não buscar todas as ramificações, mas apenas mestre.Você pode simplesmente omitir o parâmetro ou atualizar o arquivo de configuração de
para
fonte
.git/config
, para que as pessoas possam encontrá-lo.Eu tive o mesmo problema. Parece que a solução mais fácil é apenas remover o controle remoto, ler e buscar.
fonte
git remote -v
mostrará seus controles remotos para que você possa se apossar do URL,git remote rm origin
removê-logit remote add origin <url>
e adicioná-lo novamente.warning: ignoring broken ref refs/remotes/origin/HEAD
Infelizmente,
git branch -a
egit branch -r
fazer não mostrar-lhe todas as filiais remotas, caso você não tenha executado um "git fetch".git remote show origin
funciona consistentemente o tempo todo. Tambémgit show-ref
mostra todas as referências no repositório Git. No entanto, funciona exatamente como ogit branch
comando.fonte