{"subject_id":"3a3cc48d009981abaea1f06d55085244","topico":"Git: estados, merge × rebase, revert × reset, fetch × pull, Git Flow × trunk-based","stems":["Julgue os itens seguintes, no que se refere a contêineres e gerência de configuração de softwares.","Acerca dos modelos de versionamento semântico e dos padrões de branches, julgue os itens a seguir.","Acerca de princípios do DevOps, automação de builds e deploys, CI/CD, versionamento, branches, merge e pipelines, julgue os itens a seguir.","Julgue os seguintes itens, acerca do GIT.","No que se refere a single sign‐on, Git e Keycloak, julgue os itens subsequentes.","Julgue os itens seguintes, relativos a RabbitMQ, PostgreSQL e Git.","Em relação à ferramenta de versionamento Git, julgue o item a seguir.","Julgue os próximos itens, relativos a H2, Keycloak, Webhooks, Git, CD (continuous delivery) e CI (continuous integration).","A respeito de DevOps, GIT e testes de software, julgue os itens a seguir.","Julgue o próximo item, relativo a GIT.","Julgue os itens a seguir, em relação a práticas DevOps, CD (continuous delivery) e CI (continuous integration).","Acerca das tecnologias que atendem a PDPJ-Br, julgue os próximos itens.","No que se refere aos conceitos de gestão de configuração, julgue os itens subsequentes.","A respeito de Git e Github, julgue os próximos itens.","No que se refere a Git e Github, julgue o item a seguir.","A respeito de ferramentas de controle de versão e ferramentas de integração contínua, julgue os itens subsequentes.","A respeito do Gitlab, julgue os itens a seguir.","Quanto ao uso de Git para versionamento, julgue os itens subsequentes.","No que diz respeito a ferramentas de desenvolvimento, julgue os itens a seguir.","Acerca de infraestrutura de TI, julgue os itens subsequentes."],"questions":[{"id":"1553755e6ab5","number":24,"stem":0,"statement":"O comando git append --files permite adicionar todos os arquivos e alterações da pasta atual ao ambiente de preparação do repositório Git.","answer":"E","source":{"slug":"TCE_RS_25","ano":2025},"explanation":{"verdict_reason":"Não existe git append. O comando que leva arquivos e alterações do diretório de trabalho para o ambiente de preparação, o índice, é o git add, usado com o ponto ou com a opção -A para abranger tudo o que mudou.","distortion_type":"troca_de_termo","distorted_span":"git append --files","corrected_statement":"O comando git add -A permite adicionar todos os arquivos e alterações da pasta atual ao ambiente de preparação do repositório Git.","concept":"git add leva ao índice (staging area)","citation":null,"trap_note":"Ambiente de preparação, área de estágio e staging area são o mesmo índice, e só um comando escreve nele: add. O nome ao lado é que precisa ser conferido."}},{"id":"a35f7e2d7f60","number":68,"stem":1,"statement":"No GitFlow, branches do tipo hotfix devem ser criadas a partir da branch main e, após corrigir o problema, mescladas tanto em main quanto em develop para garantir sincronização.","answer":"C","source":{"slug":"TJ_PA_25_SERVIDOR","ano":2025},"explanation":{"verdict_reason":"A hotfix corrige o que está em produção, e produção é a main: por isso ela nasce da main e não da develop. Ao terminar, precisa ser mesclada nas duas branches permanentes, porque se voltasse só para a main a correção se perderia na próxima entrega saída da develop. Origem e destinos estão corretos.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"GitFlow: hotfix sai da main e volta para main e develop","citation":null,"trap_note":"No GitFlow, a origem da branch temporária diz o que ela corrige: feature e release saem da develop; hotfix sai da main. Toda correção urgente termina nas duas permanentes."}},{"id":"c790a9ca7cba","number":69,"stem":2,"statement":"No Git, o cherry-picking permite que se adicione um commit de certa branch ao último commit de outra branch, sem que se inclua o restante dos commits da branch de origem.","answer":"E","source":{"slug":"STM_25","ano":2025},"explanation":{"verdict_reason":"O cherry-pick não anexa o commit escolhido ao último commit de outra branch: ele reaplica aquela mudança sobre a branch em que se está, criando um commit novo, com hash próprio, porque o pai passa a ser outro. A direção também está trocada, já que o comando puxa o commit para a branch corrente em vez de empurrá-lo para outra.","distortion_type":"troca_de_termo","distorted_span":"ao último commit de outra branch","corrected_statement":"No Git, o cherry-picking permite que se adicione um commit de certa branch como um novo commit no topo da branch em que se está, sem que se inclua o restante dos commits da branch de origem.","concept":"Cherry-pick reaplica o commit na branch atual, com hash novo","citation":null,"trap_note":"Todo comando que reaplica uma mudança em outro ponto do grafo, cherry-pick, rebase e revert, gera commit novo: o pai mudou, logo o hash muda."}},{"id":"21f41ac8d63d","number":70,"stem":2,"statement":"Se a execução do comando git blame -L 5,5 example.txt gerasse f4c2d3b1 (John Doe 2023- 04-15 14:20:22 +0300 5), então o id do usuário que realizou o commit seria f4c2d3b1.","answer":"E","source":{"slug":"STM_25","ano":2025},"explanation":{"verdict_reason":"Na saída do git blame, o primeiro campo é o hash do commit que introduziu a linha; em seguida vêm o autor, entre parênteses, a data e o número da linha. Nesse exemplo, f4c2d3b1 identifica o commit, e o usuário é John Doe.","distortion_type":"atribuicao_errada","distorted_span":"o id do usuário que realizou o commit seria f4c2d3b1","corrected_statement":"Se a execução do comando git blame -L 5,5 example.txt gerasse f4c2d3b1 (John Doe 2023- 04-15 14:20:22 +0300 5), então o identificador do commit seria f4c2d3b1, e o autor da linha seria John Doe.","concept":"No blame, o primeiro campo é o hash do commit, não o usuário","citation":null,"trap_note":"Sequência hexadecimal curta no Git é sempre hash de objeto. Usuário aparece como nome ou e-mail, nunca como código hexadecimal."}},{"id":"f24aad6e5d76","number":71,"stem":2,"statement":"Equipes de DevOps monitoram continuamente o ciclo de vida do desenvolvimento, desde o planejamento até a implantação, e utilizam o Git para reiniciar os contêineres automaticamente em caso de falha.","answer":"E","source":{"slug":"STM_25","ano":2025},"explanation":{"verdict_reason":"O Git é sistema de controle de versão distribuído: versiona código e coordena a colaboração. Reiniciar contêineres automaticamente quando um falha é função do orquestrador, como o Kubernetes, ou da política de reinício do próprio runtime de contêineres. A primeira metade do item descreve DevOps corretamente; a função atribuída ao Git é de outra ferramenta.","distortion_type":"atribuicao_errada","distorted_span":"utilizam o Git para reiniciar os contêineres automaticamente em caso de falha","corrected_statement":"Equipes de DevOps monitoram continuamente o ciclo de vida do desenvolvimento, desde o planejamento até a implantação, e utilizam o Git para versionar o código, cabendo ao orquestrador reiniciar os contêineres automaticamente em caso de falha.","concept":"Git versiona; orquestrador mantém contêiner em execução","citation":null,"trap_note":"Em item de cadeia DevOps, confira se a ferramenta citada está na etapa certa: versionamento, integração contínua, entrega, orquestração e monitoramento são papéis distintos."}},{"id":"4abdd019dedf","number":88,"stem":3,"statement":"A execução do comando git rebase remove commits recentes e reposiciona o ponteiro do branch para um commit anterior, sem que haja alterações no histórico de commits.","answer":"E","source":{"slug":"SUSEP_25","ano":2025},"explanation":{"verdict_reason":"Remover commits recentes movendo o ponteiro da branch para um commit anterior é o git reset. O git rebase faz o oposto do que o item afirma: ele retira os commits da branch, reaplica-os sobre outra base e gera commits novos, com hashes novos, ou seja, reescreve o histórico.","distortion_type":"troca_de_termo","distorted_span":"git rebase remove commits recentes e reposiciona o ponteiro do branch","corrected_statement":"A execução do comando git reset remove commits recentes e reposiciona o ponteiro do branch para um commit anterior, alterando o histórico de commits da branch.","concept":"reset move o ponteiro; rebase reescreve o histórico","citation":null,"trap_note":"A frase sem que haja alterações no histórico nunca combina com rebase: reescrever o histórico é a definição do comando e a razão de não se rebasear o que já foi publicado."}},{"id":"43e74a524ef7","number":89,"stem":3,"statement":"A execução do comando git commit --amend substitui o último commit local por um novo; recomenda-se utilizar esse comando apenas antes do envio do commit ao repositório remoto por meio do git push, para que se evite a reescrita do histórico compartilhado com outros colaboradores.\n\ndefault:\n  image: 'ruby:2.4'\n  before_script:\n    - echo Hello World\nvariables:\n  DOMAIN: example.com\n  WEBHOOK_URL: https://my-webhook.example.com\nbuild ruby 1/2:\n  stage: build\n  inherit:\n    default: [image]\n    variables: [WEBHOOK_URL]\n  script:\n    - echo \"ruby1\"\nbuild ruby 2/2:\n  stage: build\n  script:\n    - echo \"ruby2\"","answer":"C","source":{"slug":"SUSEP_25","ano":2025},"explanation":{"verdict_reason":"O commit --amend não edita o último commit: ele grava outro em seu lugar, com hash diferente. Enquanto esse commit existe só no repositório local, substituí-lo é inofensivo; depois do push, o commit original já está no histórico dos outros, e trocá-lo obriga todo mundo a reescrever o que já tem. Daí a recomendação de usar o amend antes do envio.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"amend substitui o último commit local e por isso precede o push","citation":null,"trap_note":"A regra vale para todo comando que reescreve histórico, amend, rebase e reset: antes do push, é assunto seu; depois, é problema de todos."}},{"id":"2a14b0ddb696","number":93,"stem":4,"statement":"O comando git fetch origin branchSTM busca, ao ser executado, todos os dados no repositório remoto ainda não conhecidos pelo usuário, o qual poderá, depois de obter esses dados, fazer o merge.","answer":"C","source":{"slug":"STM_25","ano":2025},"explanation":{"verdict_reason":"O git fetch baixa do repositório remoto os objetos e as referências que o repositório local ainda não tem, sem alterar o diretório de trabalho nem a branch atual. Justamente por não integrar nada, ele deixa o merge como passo seguinte a critério do usuário.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"fetch baixa sem integrar; o merge vem depois","citation":null,"trap_note":"fetch mais merge é igual a pull. Quando o item separa os dois passos, é sinal de que está descrevendo fetch corretamente."}},{"id":"102af12fdcf7","number":117,"stem":5,"statement":"A execução dos comandos Git a seguir, na sequência em que aparecem, é suficiente para enviar o arquivo app22.html do repositório local para o repositório remoto, com todas as alterações realizadas localmente.\n\ngit status\ngit add app22.html\ngit commit -m \"Versão 22 do aplicativo\"","answer":"E","source":{"slug":"STM_25","ano":2025},"explanation":{"verdict_reason":"A sequência apresentada leva o arquivo do diretório de trabalho para o índice, com o add, e do índice para o repositório local, com o commit. Nada nela atravessa a rede: para que a alteração chegue ao repositório remoto falta o git push. O commit conclui o trabalho local, não o envio.","distortion_type":"escopo_ampliado","distorted_span":"é suficiente para enviar o arquivo app22.html do repositório local para o repositório remoto","corrected_statement":"A execução dos comandos Git a seguir, na sequência em que aparecem, seguida do comando git push, é suficiente para enviar o arquivo app22.html do repositório local para o repositório remoto, com todas as alterações realizadas localmente.","concept":"add vai ao índice, commit ao repositório local, push ao remoto","citation":null,"trap_note":"Percorra a sequência marcando a área que cada comando alcança. Se nenhum comando da lista fala com o servidor, a conclusão sobre o repositório remoto é falsa."}},{"id":"594f4e30c3c3","number":56,"stem":6,"statement":"A execução do comando git push pdpjJE main fará que a versão local do projeto de nome pdpjJE seja sincronizada para a versão mais recente do repositório remoto; enquanto a execução do comando git pull pdpjJE main fará que as alterações locais feitas no projeto de nome pdpjJE sejam enviadas para o repositório remoto.","answer":"E","source":{"slug":"CPNUJE_24","ano":2024},"explanation":{"verdict_reason":"As duas descrições estão trocadas de lugar. O git push envia para o repositório remoto os commits que existem apenas no repositório local; o git pull faz o caminho inverso, buscando no remoto o que há de novo e mesclando no ramo atual.","distortion_type":"inversao","distorted_span":"git push pdpjJE main fará que a versão local do projeto de nome pdpjJE seja sincronizada para a versão mais recente do repositório remoto","corrected_statement":"A execução do comando git push pdpjJE main fará que as alterações locais feitas no projeto de nome pdpjJE sejam enviadas para o repositório remoto; enquanto a execução do comando git pull pdpjJE main fará que a versão local do projeto seja sincronizada para a versão mais recente do repositório remoto.","concept":"push envia ao remoto; pull traz do remoto","citation":null,"trap_note":"Desenhe a seta antes de ler o verbo: push empurra para fora, pull puxa para dentro. A banca gira o par inteiro e deixa o resto da frase intacto."}},{"id":"74bd94b1b6c6","number":67,"stem":7,"statement":"O comando Git a seguir, ao ser executado, copiará todo o conteúdo do repositório local para o repositório remoto git, e, por padrão, fará a mesclagem com a branch master.\n\ngit clone --bare -l /home/projetox/\n.git/pub/projetox","answer":"E","source":{"slug":"STJ_24","ano":2024},"explanation":{"verdict_reason":"O git clone cria uma cópia do repositório no destino informado; com --bare, cria um repositório sem diretório de trabalho, próprio para servir de repositório central. Ele não envia conteúdo para repositório remoto nem executa mesclagem alguma: enviar do local para o remoto é git push.","distortion_type":"troca_de_termo","distorted_span":"copiará todo o conteúdo do repositório local para o repositório remoto","corrected_statement":"O comando Git a seguir, ao ser executado, criará no destino informado uma cópia sem diretório de trabalho (bare) do repositório local, sem enviar conteúdo a repositório remoto e sem mesclar com a branch master.","concept":"clone --bare cria cópia; quem envia ao remoto é push","citation":null,"trap_note":"Clone escreve no destino que você indicou, não no servidor. Sempre que o item disser que um comando enviou algo ao remoto, procure push no enunciado."}},{"id":"a0915d14a4e4","number":69,"stem":8,"statement":"Considerando-se que o código git branch mpgo-cebraspe foi executado no GIT, é correto afirmar que o resultado será a criação de uma nova branch chamada mpgo-cebraspe.","answer":"C","source":{"slug":"MP_GO_24_SERVIDOR","ano":2024},"explanation":{"verdict_reason":"O git branch seguido de um nome cria um ponteiro novo apontando para o commit atual. Ele apenas cria: não muda o HEAD nem o diretório de trabalho, o que exigiria checkout ou switch, ou o atalho checkout -b.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"git branch <nome> cria a branch sem mudar para ela","citation":null,"trap_note":"Criar e mudar são dois atos. Item que diga que git branch <nome> passou a trabalhar na nova branch acrescenta um efeito que o comando não tem."}},{"id":"4121cfb53021","number":72,"stem":9,"statement":"git branch -D test A execução do comando precedente excluirá a branch test caso todos os commits tenham sido realizados; porém, se a master estiver em estado de check-out, a exclusão será cancelada.\n\nsteps:\n    - name: Checkout code\n    uses: actions/checkout@v2","answer":"E","source":{"slug":"TRF6_24","ano":2024},"explanation":{"verdict_reason":"O que impede a exclusão de uma branch é ela própria estar em check-out, e não outra branch estar. Com a master em check-out, apagar test é exatamente o caso normal e permitido. Além disso, o -D maiúsculo força a exclusão mesmo havendo commits não mesclados, condição que só o -d minúsculo respeita.","distortion_type":"inversao","distorted_span":"se a master estiver em estado de check-out, a exclusão será cancelada","corrected_statement":"git branch -D test A execução do comando precedente excluirá a branch test ainda que haja commits não mesclados; porém, se a própria branch test estiver em estado de check-out, a exclusão será cancelada.","concept":"Só não se apaga a branch em que se está; -D força a exclusão","citation":null,"trap_note":"Em opção de letra repetida, a maiúscula costuma ser a versão forçada da minúscula: -d recusa, -D apaga assim mesmo."}},{"id":"c942e9b62d6a","number":72,"stem":10,"statement":"Em um processo de merge de códigos de duas branches, é possível que apareçam conflitos, os quais podem ser resolvidos manualmente pelos desenvolvedores.","answer":"C","source":{"slug":"STJ_24","ano":2024},"explanation":{"verdict_reason":"Quando as duas branches alteram as mesmas linhas do mesmo arquivo, o Git não tem como decidir qual versão prevalece: ele marca a região conflitante no arquivo e interrompe a mesclagem. A resolução é uma decisão humana, feita editando o arquivo e concluindo o merge.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"Conflito de merge é resolvido manualmente pelo desenvolvedor","citation":null,"trap_note":"O Git automatiza a integração enquanto as mudanças não se sobrepõem. Item que afirme resolução automática de conflito, ou impossibilidade de resolvê-lo, está errado nas duas pontas."}},{"id":"ccc9b808e16c","number":74,"stem":11,"statement":"No Git, o comando git historic apresenta uma relação de todos os commits feitos em um repositório.","answer":"E","source":{"slug":"CNJ_24","ano":2024},"explanation":{"verdict_reason":"Não existe comando git historic. Quem apresenta a relação dos commits do repositório é o git log, com suas opções de formatação e filtro. O nome inventado soa plausível justamente porque descreve bem a função pedida.","distortion_type":"troca_de_termo","distorted_span":"git historic","corrected_statement":"No Git, o comando git log apresenta uma relação de todos os commits feitos em um repositório.","concept":"git log lista os commits","citation":null,"trap_note":"Antes de julgar o efeito, confirme que o comando existe. A banca inventa nomes verossímeis como historic e append, e o erro está no nome, não na função descrita."}},{"id":"8a1f2c909681","number":88,"stem":12,"statement":"O comando get clone incorpora as alterações de um repositório remoto no ramo atual.","answer":"E","source":{"slug":"MPO_24","ano":2024},"explanation":{"verdict_reason":"Incorporar as alterações de um repositório remoto no ramo atual é o git pull, que combina o fetch com o merge. O clone não incorpora nada a um ramo existente: ele cria a cópia inicial do repositório. Some-se a isso que get clone sequer é comando do Git.","distortion_type":"troca_de_termo","distorted_span":"get clone incorpora as alterações de um repositório remoto","corrected_statement":"O comando git pull incorpora as alterações de um repositório remoto no ramo atual.","concept":"pull incorpora no ramo atual; clone cria a cópia inicial","citation":null,"trap_note":"Incorporar no ramo atual pressupõe que o ramo já existe, logo o comando não pode ser o que cria o repositório. A frase entrega o comando antes do nome."}},{"id":"2670af7ecbbe","number":104,"stem":13,"statement":"O comando merge é limitado à combinação de duas branches, sendo verificadas as sequências em comum entre elas, o que dá origem a um novo commit.","answer":"C","source":{"slug":"TRF6_24","ano":2024},"explanation":{"verdict_reason":"O merge integra duas pontas de desenvolvimento: localiza o ancestral comum das duas branches, compara o que cada uma fez desde ele e, quando as duas divergiram, grava um commit de mesclagem com dois pais. A restrição a duas branches e a criação de um commit novo descrevem o comportamento padrão do comando.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"Merge combina duas branches pelo ancestral comum e gera commit novo","citation":null,"trap_note":"Merge preserva as duas linhas e acrescenta um commit; rebase apaga a bifurcação reescrevendo os commits. Guarde a diferença pelo que sobra no histórico."}},{"id":"8d2418271a5a","number":104,"stem":14,"statement":"No Git, cada desenvolvedor pode trabalhar em sua própria branch, que é uma ramificação do código principal, para depois juntá-la a este por meio do comando merge.","answer":"C","source":{"slug":"STJ_24","ano":2024},"explanation":{"verdict_reason":"O fluxo descrito é o uso normal de ramificação: cada desenvolvedor cria sua branch a partir da linha principal, trabalha isolado e, terminado o trabalho, integra de volta com merge, que combina as duas linhas pelo ancestral comum.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"Ramificar para isolar e mesclar para integrar","citation":null,"trap_note":"Branch isola, merge integra. O item só fica falso quando dá à branch outra natureza, como cópia de repositório, ou quando atribui a integração a outro comando."}},{"id":"4187309d5fa3","number":104,"stem":15,"statement":"O comando git cherry-pick <commit-hash> permite aplicar um commit específico de uma branch a outra branch, reaplicando o commit na branch atual com um novo hash, sem a necessidade de mesclar toda a branch de origem.","answer":"C","source":{"slug":"CPNUJE_24","ano":2024},"explanation":{"verdict_reason":"O cherry-pick toma a mudança introduzida por um commit específico e a reaplica sobre a branch em que se está. Como o commit resultante tem outro pai, recebe hash próprio, e o restante da branch de origem permanece de fora, o que é exatamente o uso do comando quando não se quer mesclar a branch inteira.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"Cherry-pick reaplica um commit na branch atual com novo hash","citation":null,"trap_note":"Cherry-pick é a alternativa cirúrgica ao merge: um commit, e não a branch. Se o item mantiver o hash original ou trouxer o histórico junto, está errado."}},{"id":"b17cad36f660","number":105,"stem":13,"statement":"No Git, uma branch é uma cópia local de um repositório remoto, com todos os arquivos e as configurações iguais aos originais.","answer":"E","source":{"slug":"TRF6_24","ano":2024},"explanation":{"verdict_reason":"No Git, uma branch é apenas um ponteiro móvel para um commit dentro do próprio repositório, e é por isso que criá-la custa quase nada. A cópia local de um repositório remoto, com todos os arquivos e configurações, é o que o git clone produz.","distortion_type":"troca_de_termo","distorted_span":"uma branch é uma cópia local de um repositório remoto","corrected_statement":"No Git, uma branch é um ponteiro móvel para um commit do repositório, e não uma cópia local de um repositório remoto.","concept":"Branch é ponteiro para commit, não cópia de repositório","citation":null,"trap_note":"Se a definição oferecida faz a branch custar caro, ela está errada. Branch barata é consequência direta de ser um ponteiro de poucos bytes."}},{"id":"1f61a2470105","number":82,"stem":16,"statement":"O Gitlab suporta MR (merge request) que é capaz de mesclar a branch de origem com uma branch alvo.","answer":"C","source":{"slug":"DATAPREV_23","ano":2023},"explanation":{"verdict_reason":"O merge request é o recurso do GitLab que formaliza o pedido de integração: indica-se a branch de origem e a branch alvo, a equipe revisa e discute, e a aprovação dispara a mesclagem da origem no alvo. É o equivalente ao pull request do GitHub.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"Merge request mescla branch de origem em branch alvo","citation":null,"trap_note":"MR e PR são recursos de plataforma, com revisão e aprovação; merge é comando do Git. A banca troca os dois níveis com frequência."}},{"id":"5d6acba99778","number":78,"stem":17,"statement":"Para atualizar e sincronizar os dados no repositório do arquivo de nome codigo1, deve ser utilizado o seguinte comando. git init codigo1","answer":"E","source":{"slug":"SERPRO_21","ano":2021},"explanation":{"verdict_reason":"O git init cria um repositório novo, ou reinicializa um existente, no diretório indicado: ele não conversa com repositório remoto nenhum. Atualizar e sincronizar o conteúdo local com o que está no remoto é o git pull, que busca os objetos e mescla no ramo atual.","distortion_type":"troca_de_termo","distorted_span":"git init codigo1","corrected_statement":"Para atualizar e sincronizar os dados no repositório do arquivo de nome codigo1, deve ser utilizado o seguinte comando. git pull codigo1","concept":"init cria repositório; pull atualiza e sincroniza","citation":null,"trap_note":"Decida o comando pela seta: init não move nada entre local e remoto. Sincronizar exige um comando que atravesse a rede, isto é, fetch, pull, push ou clone."}},{"id":"ea9491ca79b4","number":79,"stem":17,"statement":"O comando git checkout é capaz de copiar completamente um repositório para um diretório local.","answer":"E","source":{"slug":"SERPRO_21","ano":2021},"explanation":{"verdict_reason":"Copiar um repositório inteiro para um diretório local, com histórico e referências, é o git clone. O git checkout atua dentro do repositório que já existe: move o HEAD para outra branch ou commit e restaura arquivos no diretório de trabalho.","distortion_type":"troca_de_termo","distorted_span":"git checkout é capaz de copiar completamente um repositório","corrected_statement":"O comando git clone é capaz de copiar completamente um repositório para um diretório local.","concept":"clone copia o repositório; checkout troca de branch","citation":null,"trap_note":"Copiar repositório completo é sempre clone. Checkout nunca cria repositório: ele só existe dentro de um."}},{"id":"ee1d1a167285","number":80,"stem":17,"statement":"A execução do comando git stash sem argumentos por padrão é similar à execução do comando git stash show, na medida em que ambas mostram as alterações armazenadas por este comando.","answer":"E","source":{"slug":"SERPRO_21","ano":2021},"explanation":{"verdict_reason":"O git stash sem argumentos equivale ao git stash push: ele guarda as alterações do diretório de trabalho e do índice na pilha de stash e devolve a árvore limpa. Quem exibe o conteúdo já guardado é o git stash show. Um grava, o outro mostra, e os dois não são equivalentes.","distortion_type":"troca_de_termo","distorted_span":"similar à execução do comando git stash show","corrected_statement":"A execução do comando git stash sem argumentos por padrão é similar à execução do comando git stash push, na medida em que ambas guardam as alterações do diretório de trabalho e do índice.","concept":"git stash guarda; git stash show exibe o que foi guardado","citation":null,"trap_note":"Nos subcomandos do stash, separe gravar de consultar: push guarda, list enumera, show detalha, pop e apply restauram. O comando sem argumento é sempre o que grava."}},{"id":"4bd4c8293b48","number":112,"stem":18,"statement":"Para obter uma cópia de um repositório Git existente, é correto utilizar o comando git clone <url>.","answer":"C","source":{"slug":"SLU_DF_19","ano":2019},"explanation":{"verdict_reason":"Obter uma cópia de um repositório que já existe é o caso de uso declarado do git clone: ele baixa todo o histórico, cria o diretório de trabalho e configura o endereço de origem como remoto.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"git clone <url> obtém a cópia de um repositório existente","citation":null,"trap_note":"Duas situações, dois comandos: repositório novo começa com init; repositório que já existe se obtém com clone."}},{"id":"a97234e3b644","number":91,"stem":19,"statement":"O comando git clone, seguido do caminho do repositório, pode ser usado para criar uma cópia desse repositório para o diretório atualmente em uso em uma máquina Linux.","answer":"C","source":{"slug":"EBSERH_18_ADMINISTRATIVO","ano":2018},"explanation":{"verdict_reason":"O git clone seguido do caminho ou da URL do repositório cria, no diretório corrente, uma cópia completa com histórico, referências e diretório de trabalho, e registra a origem como remoto. Vale tanto para caminho local quanto para endereço de rede.","distortion_type":"correto","distorted_span":null,"corrected_statement":null,"concept":"clone cria a cópia local do repositório no diretório atual","citation":null,"trap_note":"Clone aceita caminho de sistema de arquivos, não só URL. Item que restrinja o clone a repositório remoto está estreitando o comando."}}]}