🎯 Saiba o que estudar

Avançado com Treinador a partir de R$ 0,76/dia

No sistema de controle de versão Git, há 3 comandos com nome...

Próximas questões
Com base no mesmo assunto
Ano: 2026 Banca: FGV Órgão: TJ-SC Prova: FGV - 2026 - TJ-SC - Analista de Sistemas |
Q4150967 Engenharia de Software
No sistema de controle de versão Git, há 3 comandos com nomes similares: reset, restore e revert.

Considerando esse contexto, relacione os comandos da coluna da esquerda às respectivas características, apresentadas na coluna da direita.

Q38.png (332×172)

Assinale a opção que indica a relação correta, na ordem apresentada.
Alternativas

Comentários

Veja os comentários dos nossos alunos

Gabarito: alternativa C — 2 - 1 - 3

A questão cobra a diferença entre três comandos do Git que possuem nomes parecidos, mas atuam em partes distintas do repositório: histórico de commits, ponteiro do branch e arquivos da área de trabalho.

A primeira descrição afirma que o comando “restaura arquivos na árvore de trabalho (*working tree*) a partir do índice ou de outro commit, sem atualizar o ponteiro do *branch*”. Trata-se do comando **`git restore`**, utilizado para desfazer alterações em arquivos, podendo atuar na área de trabalho ou no *staging area*, sem necessariamente alterar o histórico.

A segunda descrição informa que o comando “atualiza o *branch* atual movendo seu ponteiro para outro commit, podendo adicionar ou remover commits, alterando o histórico do *branch*”. Trata-se do **`git reset`**. Esse comando move o ponteiro `HEAD` e pode afetar o índice e a área de trabalho, dependendo das opções utilizadas, como `--soft`, `--mixed` e `--hard`.

A terceira descrição indica que “um novo commit é criado, revertendo alterações introduzidas por commits anteriores”. Trata-se do **`git revert`**. Diferentemente do `reset`, ele não remove commits do histórico; cria um novo commit que desfaz as alterações de um commit anterior. Por isso, é uma alternativa adequada quando se trabalha em branches compartilhadas ou já publicadas em repositórios remotos.

Resumo para concursos:

git reset: move o ponteiro do branch e pode reescrever o histórico.

git restore: restaura arquivos, normalmente sem alterar o histórico.

git revert: cria um novo commit para desfazer outro commit.

Fonte: ChatGPT

Até onde sei o git reset remove commits indesejados e retorna o ponteiro para uma posição anterior descartando commits... mas não adicionando. O git revert sim, ele adiciona um commit novo, desfazendo alterações, e mantendo o histórico de todos commits feitos. Ao meu ver essa questão poderia ser anulada pois o conceito do git reset está ligeiramente errado ao dizer que pode "adicionar commits".

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo