Sobre os comandos da ferramenta de controle de versões Git, é correto afirmar que
- A)o comando git add altera simultaneamente os repositórios local e remoto.
Errada: `git add` apenas prepara alterações para o próximo commit, sem alterar simultaneamente repositórios local e remoto.
- B)o comando git commit envia para o repositório remoto as alterações no espaço de trabalho local.
Errada: `git commit` registra as mudanças no repositório local, mas não envia nada ao repositório remoto.
- C)o comando git status faz o download do repositório remoto para o espaço de trabalho local.
Errada: `git status` apenas exibe o estado dos arquivos e do repositório; quem baixa do remoto é o `git pull`.
- D)o comando git push somente faz o upload das alterações que já estão em um commit.
Certa: `git push` envia ao repositório remoto apenas alterações que já foram registradas em um commit.
- E)o comando git pull resolve automaticamente qualquer conflito entre os códigos dos repositórios local e remoto.
Errada: `git pull` pode baixar e tentar integrar alterações, mas conflitos podem exigir resolução manual.
Gabarito: D
No Git, cada comando tem uma função bem separada: alguns mexem na área de trabalho, outros no repositório local e outros conversam com o repositório remoto. Essa divisão é importante porque muita gente acha que tudo acontece de uma vez só, mas no Git existe um fluxo: você altera arquivos, faz stage, cria o commit e, só depois, envia para o servidor remoto. O `git add` não envia nada para lugar nenhum, ele apenas coloca as alterações na área de preparação (staging area), dizendo ao Git o que deve entrar no próximo commit. O `git commit` registra essas mudanças no repositório local, mas ainda não fala com o remoto. Já `git push` é o comando usado para enviar commits locais para o repositório remoto. Por isso, a alternativa correta é a D: o `git push` só faz o upload do que já está em um commit. Ou seja, ele não manda arquivos soltos nem alterações ainda não confirmadas, porque primeiro precisa existir um histórico local consolidado. É o clássico caso do "não adianta tentar despachar a caixa se você ainda nem embalou o conteúdo". As demais alternativas trocam conceitos básicos do fluxo Git. O `git status` só mostra o estado do repositório e dos arquivos, enquanto `git pull` baixa e tenta integrar mudanças do remoto ao local, mas não resolve todo conflito automaticamente em qualquer situação. Em prova, a banca adora confundir você misturando os verbos: adicionar, commitar, puxar e empurrar.