O comando Git fetch
permite que você olhe antes de pular. Você pode descobrir quais alterações foram feitas em um repositório remoto, mas sem substituir seus arquivos locais pelos arquivos remotos.
Índice
O que é git fetch e o que ele faz?
O fetch
comando no Git baixa commits, arquivos e outras informações de um repositório remoto para o seu repositório local, com segurança. Use fetch quando quiser ver quais alterações outros desenvolvedores fizeram, sem ser forçado a aceitá-las. Seus arquivos locais permanecem intactos. Por que isso é importante?
Você deve manter o bom senso quando estiver trabalhando como parte de uma equipe de desenvolvimento. O repositório remoto ou central conterá alterações e novas ramificações que outros desenvolvedores criaram e enviaram para o repositório remoto.
É perfeitamente possível que alguém tenha atualizado a cópia remota dos arquivos que você modificou localmente no seu computador. Se você executar casualmente um git pull
para atualizar seu repositório local, provavelmente se verá lidando com mesclagens para alterações que talvez nem queira.
Depois de baixar as informações, você pode examiná-las e ver quais são as alterações. Isso permite que você faça uma escolha informada sobre o que deseja mesclar agora, se houver, e o que deseja adiar para mais tarde.
Git buscar versus puxar
O git fetch
comando se comporta como o git pull
comando, mas sem a etapa que substitui seus arquivos locais. Seu repositório local é atualizado e sincronizado, mas as alterações não são gravadas no estado de funcionamento do seu repositório local, portanto seus arquivos permanecem intactos.
Ou, dito de outra forma, o git pull
comando é como um git fetch
seguido imediatamente por um git merge
.
Sincronize seus repositórios locais e remotos com git fetch
Para buscar todos os metadados atualizados e commits de um repositório remoto para seu repositório local, use o git fetch
comando com o nome ou URL do repositório remoto. Por padrão, o primeiro repositório remoto é chamado de “origem”.
git buscar origem
Você pode omitir a palavra “origem” se estiver trabalhando com um único repositório remoto.
buscar
Isso recupera todas as atualizações do repositório “origem”, mas não mescla as alterações nos arquivos de trabalho. Podemos ver que há um novo branch, chamado “new-branch”, que foi recuperado para nós.
Depois de usar o fetch
comando, você poderá ver a lista completa de ramificações no controle remoto, usando a -r
opção (remota) com o comando ramificação.
git ramo -r
Isso lista todas as ramificações que o controle remoto conhece, que após o fetch
, também estão no seu repositório local.
Ver todas as tags buscadas
Da mesma forma, você pode usar a tag
opção (observe que é “tag” sem “s”) para ver a lista de tags.
etiqueta git
Fazendo uma simulação primeiro
Embora a git fetch
não mescle as alterações em seus arquivos de trabalho, ele ainda atualiza seu repositório local. Se você quiser ver quais alterações o fetch
comando realizará, sem realmente realizá-las, use a --dry-run
opção.
git fetch --dry-run
Como buscar uma única filial
Buscar informações sobre uma única ramificação é fácil. Adicione o nome da ramificação à linha de comando para informar fetch
que você só precisa saber sobre essa ramificação.
Aqui, estamos dizendo fetch
para recuperar o branch “mary-feature” do repositório remoto “origin”.
git buscar origem recurso mary
Agora que os detalhes e o conteúdo da ramificação remota estão em seu repositório local, você pode usar o git checkout
comando para criar uma nova ramificação e fazer check-out da ramificação remota . Isso não substituirá nenhum arquivo existente se for a primeira vez que você usa este branch.
git checkout -b recurso mary origem/recurso mary
Buscar todas as filiais
Se estiver usando vários controles remotos , você pode economizar tempo puxando todas as alterações de todas as ramificações de volta para o seu repositório local usando a --all
opção.
git buscar --tudo
Comparando filiais locais e remotas
Para ver como os arquivos em uma ramificação remota diferem das cópias locais, use e git fetch
, em seguida, use o git log
comando.
Observe que as ramificações locais e remotas possuem dois pontos ” ..
” que as separam. A --oneline
opção mostra o identificador do commit e a mensagem do commit.
buscar
git log --oneline mary-feature..origin/mary-feature
A exibição de uma linha é útil se uma ramificação contém muitas alterações. Para ver um pouco mais de informação, omita a --oneline
opção.
git log mary-feature..origin/mary-feature
Isso nos mostra a hora e a data de cada commit, juntamente com a mensagem do commit e os dados de contato do autor da alteração.
Sincronizando uma filial local com uma filial remota
Se você decidiu prosseguir e mesclar as alterações da ramificação remota com seus arquivos de trabalho locais, você pode usar estes comandos.
Faremos o checkout do branch para ter certeza de que estamos funcionando, é nosso branch atual e funcional.
git checkout recurso mary
A filial foi verificada para nós e fomos informados de que ela está por trás da versão remota. Podemos usá- git pull
lo para atualizá-lo e depois git status
verificar nosso status.
puxa
status do git
Se tivermos feito algumas alterações em nossos arquivos locais, o Git nos informará quando fizermos checkout do branch que precisaremos realizar um git pull
para iniciar uma mesclagem.
git checkout recurso mary
Um simples git pull
inicia o processo de recuperação dos arquivos e mesclagem, ou podemos mergulhar de cabeça e usá- git merge
lo. Começaremos certificando-nos de que estamos trabalhando com o branch correto
git checkout recurso mary
Diremos git
para mesclar nosso branch atual com o branch no repositório remoto, existem seis commits diferentes que precisam ser resolvidos.
Precisamos informar ao Git qual branch remoto queremos mesclar.
git merge origem/recurso mary
Um editor é aberto para nos permitir fornecer uma mensagem de commit. Podemos aceitar a mensagem sugerida ou adicionar a nossa própria. O editor é seu editor padrão , a menos que o Git tenha sido configurado para usar um editor diferente.
Salve suas alterações quando estiver pronto para prosseguir. A mesclagem continua automaticamente quando o editor é fechado.
Nossa fusão foi bem-sucedida porque não houve conflitos.
Os conflitos surgem quando as mesmas linhas de código são alteradas por dois ou mais desenvolvedores. Se for esse o caso, o Git marca os conflitos no arquivo afetado . Você precisará revisá-los e escolher quais alterações manter.
O cachorrinho meio treinado
Assim como um cachorrinho em treinamento, fetch
irá recuperar o que você pede, mas não deixará cair. Se você realmente quer o que o cachorrinho lhe mostrou, você precisará pull
.