Pergunta

Eu entendo a ideia de correr git fetch <remote>, porque os galhos remotos estão então disponíveis com git checkout <remote>/<branch>.

Mas como funciona se eu apenas correr

git fetch path/to/other/repo

Como posso verificar as filiais correspondentes? Observe que a operação funciona silenciosamente (mesmo com --verbose), e que nenhuma nova filial é criada.

editar: Só para deixar claro: eu entendo perfeitamente como o Git funciona com controles remotos. Estou apenas curioso sobre esta sintaxe alternativa git fetch path/to/remote, ou git fetch <url>. Como deve funcionar? Por que não cria novas ramificações? Por que é executado silenciosamente mesmo no modo detalhado? Qual é o uso pretendido?

Foi útil?

Solução 2

Eu acho que a melhor explicação (muito melhor do que os documentos) é um Responda a outra pergunta por Jakub Narębski.

Basicamente:

git fetch <path>

Apenas busque o HEAD ramo do controle remoto e o armazena localmente em FETCH_HEAD.

git fetch <path> <branch>

busca o ramo no repo remoto e o armazena em FETCH_HEAD.

Os usos mais avançados são descritos na resposta de Jakub Narębski, mas, como ele se afirma, a melhor maneira de buscar é usar controles remotos nomeados.

Outras dicas

Mesmo que seja "local" em termos de sistema de arquivos, outro repositório é um repositório remoto.

Se você quiser usá -lo, adicione -o como um repositório remoto primeiro (mesmo que o URL seja local):

git remote add <name> <url>

Em seguida, prossiga com git fetch (e outros comandos) da mesma maneira que no repositório em máquinas remotas.

EDITAR: Se você fizer um simples git fetch De um caminho local, cria um novo pseudo-ralo chamado FETCH_HEAD. Você pode conferir em uma nova filial, por exemplo, usando:

git checkout -b new_branch FETCH_HEAD

Você tem que passar explicitamente um refspec para git fetch Para obter os ramos remotos. git help fetch deve ajudar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top