Questão de Engenharia de Software — Geral — INSTITUTO AOCP 2026
- Código
- qa434213
- Banca
- INSTITUTO AOCP
- Órgão
- IF CE
- Ano
- 2026
- Cargo
- Tec ( )
- Agit reset
- Bgit stash
- Cgit push
- Dgit branch
- Egit fetch
GabaritoE — git fetch
Gabarito: letra E. O comando git fetch é o que busca as alterações do repositório remoto sem mesclá-las automaticamente na branch local — exatamente o que o enunciado pede. Ele apenas atualiza as referências remotas (como origin/main), deixando o histórico local intacto até que você decida integrar as mudanças com git merge ou git rebase. É a distinção central entre fetch e pull: o pull é um atalho que faz fetch + merge de uma só vez.
O Git é a ferramenta de controle de versão distribuído mais usada no mercado, e entender o fluxo de trabalho entre o repositório local e o remoto é essencial para qualquer profissional de TI. Quando você trabalha em equipe, outros membros enviam commits para o repositório remoto (geralmente em um servidor como GitHub, GitLab ou Bitbucket). Para se manter atualizado, você precisa trazer essas mudanças para o seu ambiente local. A questão é: como fazer isso sem alterar o seu trabalho em andamento?
A resposta está na diferença entre dois comandos que parecem fazer a mesma coisa, mas têm comportamentos distintos:
git fetch: baixa os commits, branches e tags do repositório remoto para o seu repositório local, mas não os integra à sua branch de trabalho. Ele atualiza as chamadas "remote-tracking branches" (por exemplo, origin/main), que são como "espelhos" do que existe no servidor. Seu working directory e sua branch atual permanecem inalterados. É o comando ideal para "espiar" o que os outros fizeram sem se comprometer com a integração.
git pull: é um atalho que executa git fetch seguido de git merge. Ou seja, ele busca as alterações e as mescla imediatamente na sua branch atual. Se você tem commits locais que ainda não foram enviados, o pull pode gerar um commit de merge ou conflitos que precisam ser resolvidos na hora.
A escolha entre fetch e pull depende do seu objetivo. Se você quer apenas verificar o que mudou, analisar o código e decidir quando integrar, use fetch. Se você quer já incorporar as mudanças ao seu trabalho, use pull. O enunciado é claro: "buscar as alterações existentes no repositório remoto, apenas para verificar o que foi modificado... sem realizar a mesclagem (merge) automática". Isso descreve perfeitamente o git fetch.
Vamos analisar cada alternativa para fixar o conceito e entender por que as outras opções não atendem ao requisito.
O git reset é um comando de manipulação do histórico local. Ele move o ponteiro da branch atual (HEAD) para um commit específico, podendo descartar commits, desfazer alterações no working directory ou no staging area. Ele não tem nenhuma relação com o repositório remoto — não busca nem envia nada. Usar reset aqui seria como tentar "atualizar" o repositório apagando o próprio histórico, o que não faz sentido para o cenário descrito.
O git stash serve para guardar temporariamente as alterações não commitadas do seu working directory, permitindo que você mude de branch ou faça outras operações sem perder o trabalho em andamento. Ele é útil quando você precisa "limpar a mesa" antes de fazer um pull, por exemplo. Mas ele não busca nada do remoto — é uma operação puramente local. O enunciado pede para buscar alterações do remoto, o que o stash não faz.
O git push é o oposto do que se deseja: ele envia os commits locais para o repositório remoto. É a operação de "publicar" o seu trabalho. No cenário da questão, o objetivo é trazer mudanças do remoto para o local, não o contrário. Usar push aqui seria um erro grave, pois tentaria enviar seu histórico local para o servidor, possivelmente causando conflitos ou rejeição.
O git branch é um comando de gerenciamento de branches: lista, cria, renomeia ou deleta branches. Ele não interage com o repositório remoto no sentido de buscar alterações. Embora exista a variação git branch -r para listar branches remotas, isso apenas mostra os nomes das branches, não baixa o conteúdo dos commits. Não atende à necessidade de verificar as modificações feitas por outros membros.
O git fetch é exatamente o comando que busca as alterações do repositório remoto sem mesclá-las automaticamente. Ele atualiza as referências remotas locais (como origin/main), permitindo que você inspecione o que mudou com comandos como git log origin/main ou git diff main origin/main, antes de decidir integrar. É a ferramenta perfeita para o cenário descrito: verificar as modificações sem comprometer a branch local.
Para fixar, lembre-se da "família" de comandos de sincronização:
fetch = baixar (atualiza referências remotas, não mexe no seu trabalho)
pull = baixar + integrar (fetch + merge)
push = enviar (publica seus commits no remoto)
Na prova, quando o enunciado disser "buscar sem mesclar", a resposta é fetch. Quando disser "buscar e integrar", é pull. Essa distinção é clássica e muito cobrada.
Gabarito: letra E
Link permanente: /questoes/qa434213