Questão de Engenharia de Software — Git — FCC 2025
Engenharia de Software›Git
Código
fc150521
Banca
FCC
Órgão
TRT 15
Ano
2025
Cargo
TJ TRT15
A partir de seu repositório local do Git, aberto e funcionado em condições ideais, um Técnico emitiu o comando git status e obtendo a seguinte saída: On branch master No commits yet Changes to be committed: (use "git rm --cached <file> ..." to unstage) new file: index.html Changes not.staged for commit: (use "git.add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: index.html Com base nessa saída, o Técnico concluiu que
Anão há alterações no diretório de trabalho nem arquivos adicionados a staging area.
Bo comando git status indica que não há arquivos rastreados ou alterações pendentes no repositório.
Co arquivo index.html já foi comitado no repositório e está pronto para ser enviado ao repositório remoto.
Do arquivo index.html está na stagingarea e não possui alterações pendentes no diretório de trabalho.
Eo arquivo index.html foi adicionado à staging area, mas também possui alterações adicionais no diretório de trabalho que ainda não foram preparadas para commit.
Revelar gabarito e comentário▾
GabaritoE — o arquivo index.html foi adicionado à staging area, mas também possui alterações adicionais no diretório de trabalho que ainda não foram preparadas para commit.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Git: interpretando a saída do comando git status
Gabarito: letra E. A saída do git status mostra o arquivo index.html em duas seções simultâneas: "Changes to be committed" (staging area) e "Changes not staged for commit" (diretório de trabalho). Isso significa que o arquivo foi adicionado à staging area, mas, após essa adição, recebeu novas alterações que ainda não foram preparadas para commit — exatamente o que a alternativa E descreve.
O Git organiza o projeto em três áreas principais, e entender essa divisão é a chave para interpretar qualquer saída do git status. O diretório de trabalho (working directory) é onde os arquivos são criados e editados; a staging area (área de preparo) é um espaço temporário que registra as alterações antes de serem salvas no repositório; e o repositório armazena permanentemente o histórico do projeto. Quando você executa git add, o arquivo vai do diretório de trabalho para a staging area. Quando executa git commit, o conteúdo da staging area é consolidado no repositório.
A saída apresentada na questão revela uma situação específica: o arquivo index.html aparece na seção "Changes to be committed" como new file, indicando que ele foi adicionado à staging area (via git add) e ainda não foi comitado. Porém, ele também aparece na seção "Changes not staged for commit" como modified, o que significa que, depois de ter sido adicionado à staging area, o arquivo foi modificado novamente no diretório de trabalho. Essas modificações posteriores não foram preparadas com um novo git add, então existem duas versões do arquivo: a que está na staging area (a versão que foi adicionada) e a que está no diretório de trabalho (a versão mais recente, com alterações não preparadas).
A linha "No commits yet" confirma que nenhum commit foi feito no repositório — o que reforça que o arquivo ainda não foi comitado. A mensagem de ajuda "use \"git rm --cached <file>...\" to unstage" indica como remover o arquivo da staging area, e "use \"git add <file>...\" to update what will be committed" mostra que, para incluir as novas alterações no próximo commit, é necessário executar git add novamente.
A pegadinha desta questão está em reconhecer que um mesmo arquivo pode estar em dois estados ao mesmo tempo: parte das alterações na staging area e parte no diretório de trabalho. Muitos candidatos leem a saída e concluem que o arquivo está apenas na staging area (alternativa D) ou que já foi comitado (alternativa C), sem perceber que a presença simultânea nas duas seções indica alterações não preparadas após a adição.
NÃO CAIA NESSA!
A banca explora a confusão entre os estados do arquivo. O candidato vê "new file" na seção de staged e conclui que o arquivo está pronto para commit, ignorando a seção "Changes not staged for commit" logo abaixo. A presença do arquivo nas DUAS seções é o ponto decisivo: ele foi adicionado à staging area, mas também possui alterações no diretório de trabalho que ainda não foram preparadas. Guarde isso: um arquivo pode estar simultaneamente staged e modified — isso significa que há duas versões dele, e apenas a da staging area será incluída no próximo commit.
1Diretório de trabalho
2git add → staging area
3git commit → repositório
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
Afirma que não há alterações no diretório de trabalho nem arquivos adicionados à staging area. A saída mostra exatamente o oposto: há um arquivo na seção "Changes to be committed" (staging area) e outro na seção "Changes not staged for commit" (diretório de trabalho). A alternativa contraria frontalmente o conteúdo exibido pelo comando.
Alternativa B — ❌ Incorreta
Diz que o comando git status indica que não há arquivos rastreados ou alterações pendentes. A saída mostra alterações pendentes nas duas seções: o arquivo index.html está na staging area (new file) e também possui modificações não preparadas (modified). Além disso, a linha "No commits yet" indica que o repositório está vazio, mas isso não significa ausência de alterações pendentes — pelo contrário, há alterações aguardando commit.
Alternativa C — ❌ Incorreta
Afirma que o arquivo index.html já foi comitado no repositório. A linha "No commits yet" desmente essa afirmação: nenhum commit foi realizado. O arquivo está na staging area, mas ainda não foi consolidado no repositório. A alternativa confunde "adicionado à staging area" com "comitado" — são operações distintas no fluxo do Git.
Alternativa D — ❌ Incorreta
Diz que o arquivo está na staging area e não possui alterações pendentes no diretório de trabalho. A saída mostra o arquivo também na seção "Changes not staged for commit" como modified, o que indica que há alterações no diretório de trabalho que ainda não foram preparadas. A alternativa ignora a segunda seção da saída, que é justamente o ponto central da questão.
Alternativa E — ✅ Correta ⟵ GABARITO
Descreve com precisão a situação: o arquivo index.html foi adicionado à staging area (seção "Changes to be committed", new file), mas também possui alterações adicionais no diretório de trabalho que ainda não foram preparadas para commit (seção "Changes not staged for commit", modified). Essa é a interpretação correta da saída do git status, que mostra o arquivo em dois estados simultâneos.