uteis - verificar tags git




Como faço para verificar uma ramificação remota do Git? (18)

Atualizar

A resposta de Jakub realmente melhora isso. Com as versões do Git ≥ 1.6.6, com apenas um controle remoto, você pode apenas fazer:

git fetch
git checkout test

Como o usuário masukomi aponta em um comentário, o git checkout test NÃO funcionará no git moderno se você tiver vários controles remotos. Neste caso, use

git checkout -b test <name of remote>/test

Resposta antiga

Antes que você possa começar a trabalhar localmente em uma ramificação remota, você precisa buscá-la conforme solicitado nas respostas abaixo.

Para buscar um ramo, você simplesmente precisa:

git fetch origin

Isso irá buscar todos os ramos remotos para você. Você pode ver as filiais disponíveis para finalizar a compra com:

git branch -v -a

Com as filiais remotas em mãos, agora você precisa verificar o ramo em que está interessado, fornecendo uma cópia de trabalho local:

git checkout -b test origin/test

Alguém empurrou um branch chamado test com git push origin test para um repositório compartilhado. Eu posso ver o ramo com git branch -r .

Agora estou tentando verificar o ramo de test remoto.

Eu tentei:

  • git checkout test que não faz nada

  • git checkout origin/test* (no branch) . O que é confuso. Como posso estar em "nenhum ramo"?

Como faço para verificar uma ramificação remota do Git?


Resposta aceita não está funcionando para você?

Embora a primeira e a resposta selecionada estejam tecnicamente corretas , existe a possibilidade de você ainda não ter recuperado todos os objetos e referências do repositório remoto. Se for esse o caso, você receberá o seguinte erro:

$ git checkout -b remote_branch origin/remote_branch

fatal: git checkout: a atualização de caminhos é incompatível com a troca de agências.
Você pretendia fazer o checkout 'origin / remote_branch', que não pode ser resolvido como commit?

Solução

Se você receber essa mensagem, primeiro faça uma git fetch origin que origin é o nome do repositório remoto antes de executar o git checkout remote_branch . Aqui está um exemplo completo com respostas:

$ git fetch origin
remote: Counting objects: 140, done.
remote: Compressing objects: 100% (30/30), done.
remote: Total 69 (delta 36), reused 66 (delta 33)
Unpacking objects: 100% (69/69), done.
From https://github.com/githubuser/repo-name
   e6ef1e0..5029161  develop    -> origin/develop
 * [new branch]      demo       -> origin/demo
   d80f8d7..359eab0  master     -> origin/master

$ git checkout demo
Branch demo set up to track remote branch demo from origin.
Switched to a new branch 'demo'

Como você pode ver, a execução do git fetch origin recuperou todas as ramificações remotas que ainda não foram configuradas para rastrear em nossa máquina local. A partir daí, como agora temos uma ref no ramo remoto, podemos simplesmente executar o git checkout remote_branch e obteremos os benefícios do rastreamento remoto.


Comandos

git fetch --all
git checkout -b <ur_new_local_branch_name> origin/<Remote_Branch_Name>

são iguais a

 git fetch --all

e depois

 git checkout -b fixes_for_dev origin/development

Ambos criarão as latest fixes_for_dev do development


Eu estava preso em uma situação vendo error: pathspec 'desired-branch' did not match any file(s) known to git. para todas as sugestões acima. Estou no git versão 1.8.3.1.

Então isso funcionou para mim :

git fetch origin && git checkout branch_name 

A explicação por trás disso é que notei que ao buscar a ramificação remota, ela foi buscada para FETCH_HEAD:

git fetch origin desired-branch
git checkout -b desired-branch FETCH_HEAD

Eu uso o seguinte comando:

git checkout --track origin/other_remote_branch

Isto irá DWIM para um remoto não nomeado origem ( documentation ):

$ git checkout -t remote_name/remote_branch

Para adicionar um novo controle remoto, você precisará fazer o seguinte primeiro:

$ git remote add remote_name location_of_remote
$ git fetch remote_name

O primeiro diz ao Git que o remoto existe, o segundo recebe os commits.


Nesse caso, você provavelmente deseja criar uma ramificação de test local que esteja rastreando a ramificação do test remoto:

$ git branch test origin/test

Nas versões anteriores do git , você precisava de uma opção explícita --track , mas esse é o padrão agora quando você está se ramificando de uma ramificação remota.


O comando git remote show <origin name> listará todas as ramificações (incluindo ramificações não rastreadas). Então você pode encontrar o nome da ramificação remota que você precisa buscar.

Exemplo:

$ git remote show origin

Use estas etapas para buscar ramificações remotas:

git fetch <origin name> <remote branch name>:<local branch name>
git checkout <local branch name > (local branch name should the name that you given fetching)

Exemplo:

$ git fetch origin test:test
$ git checkout test

Para clonar um repositório Git, faça:

git clone <either ssh url /http url>

O comando acima verifica todas as ramificações, mas somente a ramificação master será inicializada. Se você quiser fazer o checkout dos outros ramos, faça:

git checkout -t origin/future_branch (for example)

Esse comando faz check-out da ramificação remota e o nome da sua ramificação local será o mesmo da ramificação remota.

Se você quiser substituir o nome da sua filial local no check-out:

git checkout -t -b enhancement origin/future_branch

Agora, seu nome de ramificação local é enhancement , mas seu nome de ramificação remota é future_branch .

Documentation


Podes tentar

git fetch remote
git checkout --track -b local_branch_name origin/branch_name

ou

git fetch
git checkout -b local_branch_name origin/branch_name

Primeiro você precisa fazer:

git fetch # Se você não sabe sobre o nome da filial

git fetch origin branch_name

Em segundo lugar, você pode verificar o ramo remoto em seu local por:

git checkout -b branch_name origin/branch_name

-b criará uma nova ramificação no nome especificado a partir da ramificação remota selecionada.


Se a ramificação estiver em algo diferente do remoto de origin , gosto de fazer o seguinte:

$ git fetch
$ git checkout -b second/next upstream/next

Isso fará o checkout da next ramificação no remoto upstream em um branch local chamado second/next . O que significa que se você já tem um ramo local chamado next, não entrará em conflito.

$ git branch -a
* second/next
  remotes/origin/next
  remotes/upstream/next

Simplesmente execute git checkout com o nome do branch remoto. O Git irá criar automaticamente um ramo local que rastreia o remoto:

git fetch
git checkout test

No entanto, se esse nome de ramificação for encontrado em mais de um controle remoto, isso não funcionará, pois o Git não sabe qual usar. Nesse caso, você pode usar:

git checkout --track origin/test

ou

git checkout -b test origin/test

No 2.19 , o Git aprendeu a configuração checkout.defaultRemote , que especifica um controle remoto para o padrão ao resolver tal ambigüidade.


Usar:

git checkout -b <BRANCH-NAME> <REMOTE-NAME>/<BRANCH-NAME>

Outras respostas não funcionam com o moderno Git no meu caso benigno. Você pode precisar puxar primeiro se o ramo remoto é novo, mas eu não verifiquei esse caso.


git branch -r diz que o nome do objeto é inválido, porque esse nome de ramificação não está na lista de ramificação local do Git. Atualize sua lista de ramificações locais de origem com:

git remote update

E tente verificar sua ramificação remota novamente.

Isso funcionou para mim.

Acredito que o git fetch puxa em todos os ramos remotos, o que não é o que o pôster original queria.


git fetch && git checkout your-branch-name


OK , a resposta é fácil ... Você basicamente vê o ramo, mas ainda não tem uma cópia local! ...

Você precisa fetch o ramo ...

Você pode simplesmente buscar e, em seguida, fazer checkout para o ramo, use o comando de uma linha abaixo para fazer isso:

git fetch && git checkout test

Eu também criei a imagem abaixo para você compartilhar as diferenças, ver como a fetch funciona e também como é diferente de pull :


Para obter ramificações recém-criadas

git fetch

Para mudar para outro ramo

git checkout BranchName




remote-branch