Pular para o conteúdo principal

As 25 principais perguntas e respostas sobre Git para todos os níveis

Reforce os comandos, conceitos e comparações de Git que mais caem em entrevistas técnicas
Atualizado 2 de jun. de 2026  · 13 min lido

Git é uma ferramenta essencial no kit do desenvolvedor moderno, conhecida por seus poderosos recursos de controle de versão. Criado por Linus Torvalds em 2005 para apoiar o desenvolvimento do kernel do Linux, o Git se tornou a espinha dorsal de inúmeros projetos de software no mundo todo. Sua eficiência e flexibilidade no gerenciamento de versões, aliadas ao forte suporte à colaboração, tornam o Git indispensável para times de todos os tamanhos.

Este artigo foi feito para ajudar você a se preparar para entrevistas técnicas, reunindo as 20 principais perguntas sobre Git, do nível iniciante ao avançado. Seja você novo no Git ou alguém que quer se aprofundar, estas perguntas e respostas vão ajudar a demonstrar sua proficiência e brilhar na entrevista.

Torne-se um engenheiro de dados

Desenvolva habilidades em Python para se tornar um engenheiro de dados profissional.
Comece a usar gratuitamente

Perguntas básicas sobre Git

Se você está começando no Git, é provável que algumas perguntas básicas da entrevista abordem conceitos e usos introdutórios. Se precisa revisar, confira o curso Introduction to Git da DataCamp.

O que é um repositório Git?

Um repositório Git armazena os arquivos de um projeto e seu histórico de revisões, facilitando o controle de versão ao rastrear mudanças ao longo do tempo. Ele pode estar localmente em uma pasta do seu dispositivo ou em uma plataforma online como o GitHub. Isso permite colaborar, voltar a versões anteriores e gerenciar o desenvolvimento do projeto de forma eficiente com comandos como commit, push e pull.

Como o Git funciona?

O Git registra alterações feitas em arquivos e diretórios de um projeto, capturando "snapshots" do estado em evolução. Você pode acompanhar mudanças, criar branches para desenvolvimentos paralelos, fazer merge entre branches e voltar a estados anteriores quando necessário. Ele também incentiva a colaboração e garante um controle de versão eficaz nos projetos de software.

O que é git add?

O comando git add é usado para preparar mudanças para inclusão no próximo commit. Ele seleciona modificações, adições ou exclusões feitas nos arquivos do diretório de trabalho, marcando-as para o próximo snapshot de commit. Observe que esse comando não cria o commit; ele apenas prepara as alterações para a área de staging.

O que é git push?

O comando git push envia o conteúdo do repositório local para um repositório remoto. Ele transfere as mudanças já "commitadas" do repositório local para um servidor remoto, como o GitHub ou o GitLab. Esse comando viabiliza a colaboração ao permitir que você compartilhe suas alterações com outras pessoas no mesmo projeto.

Você pode saber mais sobre Git push e pull neste tutorial específico.

O que é git status?

O comando git status exibe o estado atual do repositório. Ele mostra quais arquivos foram modificados, quais estão preparados para o próximo commit e quais ainda não são rastreados. Isso ajuda a acompanhar o andamento do trabalho e identificar o que precisa ser colocado em staging ou commitado.

O que é um commit no Git?

Um commit representa um snapshot das mudanças feitas nos arquivos do repositório em um momento específico. Ao fazer um commit, você salva o estado atual dos arquivos e pode incluir uma mensagem descritiva explicando o que foi alterado (altamente recomendado).

Cada commit cria um identificador único, permitindo rastrear o histórico de mudanças no repositório. Commits são fundamentais no controle de versão, pois permitem voltar a estados anteriores, revisar o histórico e colaborar com outras pessoas compartilhando atualizações.

Git cheat sheet

Confira o Git Cheat Sheet da DataCamp para ajudar na sua preparação

O que é branching no Git?

Branching é a prática de se desviar da linha principal de desenvolvimento (geralmente chamada de main e, anteriormente, master) para trabalhar em novas funcionalidades, correções ou experimentos sem afetar a base de código principal. Isso permite múltiplas linhas de desenvolvimento paralelas dentro do mesmo repositório.

Cada branch representa uma linha de desenvolvimento separada, com seu próprio conjunto de commits, permitindo que diferentes funcionalidades ou correções sejam desenvolvidas simultaneamente. O branching facilita colaboração, experimentação e organização do projeto, já que as mudanças feitas em uma branch podem ser integradas de volta à base principal quando estiverem prontas e testadas.

O que é um conflito no Git?

Conflitos surgem quando alterações conflitantes são feitas na mesma parte de um arquivo (ou em arquivos) por diferentes contribuintes, geralmente durante um merge ou rebase. O Git não consegue resolver automaticamente esses conflitos, exigindo intervenção manual do usuário para ajustar as discrepâncias.

Para resolver um conflito, abra o arquivo afetado — o Git marcará as seções conflitantes com os marcadores <<<<<<<, ======= e >>>>>>>. Edite o arquivo para manter a versão correta, remova os marcadores e, em seguida:

git add <resolved-file>
git commit
Ferramentas como VS Code, IntelliJ e git mergetool podem tornar esse processo mais visual e fácil de conduzir.

O que é merge no Git?

Merge é uma operação fundamental no Git que facilita a colaboração e a integração de mudanças entre diferentes branches de um projeto. Em resumo, o merge combina as alterações de branches distintos em um único branch, normalmente o branch principal (por exemplo, master ou main).

Um merge integra as mudanças feitas em uma branch com outra, resultando em um novo commit que combina os históricos de ambas. Saiba mais sobre como resolver conflitos de merge no Git neste tutorial dedicado.

Obtenha a certificação para a função de engenheiro de dados dos seus sonhos

Nossos programas de certificação ajudam você a se destacar e a provar que suas habilidades estão prontas para o trabalho para possíveis empregadores.

Obtenha sua certificação
Timeline mobile.png

Perguntas intermediárias sobre Git

O que é um remote no Git?

Um remote é um repositório hospedado em um servidor ou em outro computador para colaboração e compartilhamento de código. Ele funciona como um ponto central onde desenvolvedores podem enviar (push) suas mudanças locais e buscar (pull) alterações feitas por outras pessoas.

Remotes geralmente ficam em plataformas como GitHub, GitLab ou Bitbucket e permitem desenvolvimento distribuído, facilitando o trabalho em equipe ao fornecer um local comum para armazenar e sincronizar o código do projeto entre vários colaboradores.

Como reverter um commit que já foi feito push e está público?

Use o comando git revert <commit-hash> para reverter um commit que já foi enviado ao repositório remoto e está público.

O passo a passo é o seguinte:

1. Identifique o commit para o qual deseja reverter, encontrando seu hash. Você pode usar git log para ver o histórico e localizar o hash desejado.

2. Com o hash em mãos, use git revert seguido do hash para criar um novo commit que desfaz as mudanças introduzidas por aquele commit. Exemplo:

git revert <commit-hash>

3. O Git abrirá um editor de texto para a mensagem do revert. Edite se necessário, salve e feche o editor.

4. Após salvar, o Git criará um novo commit que efetivamente desfaz as mudanças do commit especificado. Esse novo commit entra no histórico, revertendo as alterações do commit original.

5. Por fim, faça push do novo commit para o repositório remoto para tornar o revert público, com o comando:

git push origin <branch-name> 

Ao usar git revert, você cria um novo commit que desfaz as alterações sem alterar o histórico. Essa abordagem é mais segura do que git reset ou git amend, que podem reescrever o histórico e causar problemas para colaboradores que já baixaram as mudanças.

O que é git stash?

git stash é um comando que armazena temporariamente as alterações no diretório de trabalho que ainda não estão prontas para commit. Ele permite salvar suas modificações sem fazer commit no repositório.

Stashing é útil ao trocar de branch quando você não quer fazer commit nem perder suas mudanças. Depois, você pode aplicar as alterações guardadas ao diretório de trabalho ou "pop" para retomá-las e continuar.

O que é git reflog?

git reflog é usado para visualizar os logs de referência, que registram mudanças no ponteiro HEAD e o histórico de commits que foram checados no repositório. Ele fornece uma lista cronológica das ações recentes, incluindo commits, checkouts, merges e resets.

O reflog é útil para recuperar commits ou branches perdidos e entender a sequência de ações realizadas no repositório.

Como fazer uma branch existente rastrear uma branch remota?

Para fazer uma branch existente rastrear uma branch remota, use o comando git branch com a opção --set-upstream-to ou -u, seguida do nome da branch remota.

A sintaxe é a seguinte:

git branch --set-upstream-to=<remote-name>/<branch-name>

ou

git branch -u <remote-name>/<branch-name>

Perguntas avançadas sobre Git

Como gerenciar múltiplas configurações para projetos diferentes no Git?

Use o comando git config com os flags --global, --system ou --local para ajustar configurações em níveis distintos. Alternativamente, utilize includeIf na configuração do Git para incluir ajustes específicos com base no caminho do repositório.

Como lidar com arquivos grandes no Git?

Arquivos grandes podem prejudicar o tamanho e o desempenho do repositório. Use Git LFS para armazená-los fora do repositório Git, mantendo ponteiros leves no histórico. Isso reduz o tamanho do repo e melhora a performance. O Git LFS integra-se bem aos fluxos de trabalho e suporta diversos provedores de armazenamento.

Para que serve git submodule e como atualizá-lo?

O comando git submodule gerencia dependências externas dentro de um repositório Git. Ele permite incluir repositórios externos como submódulos no repositório principal — útil quando você quer incorporar código de fontes externas mantendo-o separado do código do seu projeto.

Para atualizar um submódulo no Git, siga estes passos:

  1. Navegue até o diretório do submódulo dentro do repositório principal.

  2. Use git fetch para buscar as alterações mais recentes do repositório remoto do submódulo.

  3. Se quiser atualizar para o commit mais recente da branch rastreada pelo submódulo, use git pull.

  4. Como alternativa, para atualizar para um commit ou branch específico, use git checkout seguido do hash ou do nome da branch desejada.

  5. Depois de atualizar o submódulo para o estado desejado, faça um commit no repositório principal para refletir a nova referência do submódulo.

O que é git cherry-pick e quando usá-lo?

git cherry-pick aplica um commit específico de uma branch em outra, sem fazer merge de toda a branch.

git cherry-pick <commit-hash>
 
Um caso comum é "backport" de correção de bug. Digamos que um bug foi corrigido na sua branch main, mas você precisa da mesma correção na branch release — você pode fazer cherry-pick apenas daquele commit em vez de fazer merge de toda a main na release.

Também é útil quando um commit foi feito por engano na branch errada: faça cherry-pick para a branch correta e, depois, reverta onde não deveria estar.

O que é git bisect e para que serve?

git bisect é uma ferramenta de depuração que usa busca binária para encontrar o commit específico que introduziu um bug. Em vez de verificar commits manualmente um a um, você informa ao Git qual commit é "bom" (sem bug) e qual é "ruim" (com bug), e o Git faz checkout de commits intermediários, reduzindo o espaço de busca pela metade a cada passo até achar o culpado.

git bisect start
git bisect bad                # o commit atual tem o bug
git bisect good <commit-hash> # este commit mais antigo estava ok
# O Git faz checkout de um commit intermediário; você testa e então:
git bisect good   # ou git bisect bad
# repita até o Git identificar o primeiro commit ruim
git bisect reset  # volta ao estado original ao terminar

Isso é muito mais rápido do que buscar manualmente em repositórios grandes com centenas de commits.

O que são Git hooks e como usá-los?

Hooks do Git são scripts que executam automaticamente em pontos específicos do fluxo de trabalho. Eles ficam no diretório .git/hooks/ de um repositório e podem ser escritos em qualquer linguagem de script.

Existem dois tipos:

  • Hooks do lado do cliente rodam na sua máquina — por exemplo, pre-commit (executa antes de criar o commit) ou commit-msg (valida o formato da mensagem de commit).

  • Hooks do lado do servidor rodam no servidor remoto — por exemplo, pre-receive (executa antes de aceitar commits enviados).

Um uso comum é um hook pre-commit para rodar automaticamente um linter ou a suíte de testes antes de permitir o commit. Isso reforça padrões de qualidade de código no time.

Atenção: hooks não são copiados ao clonar um repositório, então times que dependem deles costumam compartilhá-los via script separado ou com uma ferramenta como pre-commit (o pacote Python).

Perguntas sobre conceitos de Git que geram confusão

Qual é a diferença entre git fetch e git pull?

A principal diferença entre git fetch e git pull está no que cada um faz e em como atualizam o repositório local.

O comando git fetch busca alterações do repositório remoto e atualiza as branches de rastreamento remoto (por exemplo, origin/master) no repositório local, mas não altera seu diretório de trabalho nem faz merge com a branch atual. Assim, você pode revisar as mudanças do remoto sem afetar seu trabalho local.

O comando git pull também busca alterações do remoto, mas vai além: ele faz fetch e já mescla (merge) na branch atual em um único passo. Essencialmente, é um git fetch seguido de git merge para incorporar as mudanças do remoto à branch em uso.

O que o git reset faz?

O comando git reset redefine o HEAD atual para um estado específico. Isso significa que pode ser usado para desfazer mudanças, tirar arquivos do staging ou mover o ponteiro HEAD para outro commit. Existem três modos principais de git reset:

  • --soft: move o HEAD para um commit específico, mantendo as mudanças no staging. Os arquivos continuam modificados no diretório de trabalho, permitindo re-comitar.
  • --mixed: move o HEAD para um commit específico e retira as mudanças do staging. Os arquivos permanecem modificados no diretório de trabalho, mas não estão preparados para commit.
  • --hard: move o HEAD e descarta todas as mudanças no diretório de trabalho e na área de staging. Use com cautela, pois apaga definitivamente alterações não commitadas.

Importante: nunca use git reset --hard em commits que já foram enviados para uma branch remota compartilhada. Isso reescreve o histórico e causará sérios problemas para quem já puxou esses commits. Para commits públicos, use git revert.

Qual a diferença entre git push --force-with-lease e git push --force?

O git push --force-with-lease é uma forma mais cautelosa de forçar o push do que git push --force, pois evita sobrescrever acidentalmente mudanças que outras pessoas já fizeram no remoto.

Com git push --force, você vai forçar o push independentemente de alguém ter atualizado a branch desde seu último fetch, o que pode causar perda de trabalho de outros desenvolvedores.

git push --force-with-lease é mais seguro. Ele verifica se a branch remota foi atualizada por outros desde seu último fetch. Se foi, o push é rejeitado, impedindo que você sobrescreva mudanças de terceiros sem querer.

O que é git rebase e como difere de git merge?

Tanto o git rebase quanto o git merge integram mudanças de uma branch em outra, mas de formas diferentes.

  • git merge combina os históricos de duas branches criando um novo "merge commit". Isso preserva todo o histórico de quando as branches divergiram e se reuniram, útil para trilhas de auditoria e transparência no time.

  • git rebase move ou reproduz commits de uma branch sobre outra, produzindo um histórico linear e limpo, sem merge commits. O log fica mais fácil de ler, mas o histórico é reescrito. Por isso, a regra de ouro é: nunca faça rebase em uma branch na qual outras pessoas estejam trabalhando.

Qual a diferença entre git clone e git fork?

Clonar cria uma cópia local de um repositório remoto na sua máquina. Você continua conectado ao mesmo repositório e pode fazer push de volta (se tiver permissão).

git clone https://github.com/user/repo.git
Fazer fork cria uma cópia no servidor do repositório de outra pessoa na sua própria conta — normalmente no GitHub ou GitLab. Você é dono do fork e pode fazer push livremente. Quando as mudanças estiverem prontas, você abre um pull request para o repositório original.

O fork é o fluxo padrão para contribuir com projetos open source quando você não tem acesso de escrita direto ao repositório original.

Como se preparar para uma entrevista sobre Git

Apresentar seu conhecimento e experiência com Git na entrevista é crucial para demonstrar sua proficiência em controle de versão e colaboração em times de desenvolvimento.

Confira algumas dicas para se preparar e comunicar suas habilidades com Git de forma clara:

Domine os fundamentos do Git

Garanta uma base sólida nos fundamentos: repositórios, branching, merging, commits e comandos básicos como pull, push, clone e commit. Esse conhecimento será a base da conversa na entrevista. Também ajuda entender bem princípios essenciais de controle de versão e as diferenças entre o Git e outros sistemas.

Por fim, familiarize-se com metodologias de Git, como Git Flow, GitHub Flow e GitLab Flow. Avalie prós e contras de cada abordagem e quando elas são mais vantajosas.

Nosso guia completo de Git é um ótimo ponto de partida para revisar os fundamentos.

Coloque a mão na massa

Quanto mais você usa o Git, mais consolida seu conhecimento. A prática regular aumenta sua familiaridade com comandos e procedimentos. Tente incorporar o Git ao seu dia a dia. Experimente criar branches, fazer merge e resolver conflitos.

Se não souber por onde começar para ganhar experiência prática, participar de projetos open source no GitHub é uma ótima forma de vivenciar ferramentas e fluxos de colaboração utilizados no mercado.

Aprenda problemas comuns e como solucioná-los

Usando Git, é inevitável encontrar problemas. Entre os mais comuns estão conflitos de merge, estado de HEAD destacado, reverter mudanças e recuperar commits perdidos. Diagnosticar issues no Git melhora sua habilidade de troubleshooting e aprofunda o entendimento dos mecanismos internos da ferramenta.

Ao investigar ativamente e analisar mensagens de erro, você entende melhor o funcionamento do Git e desenvolve proficiência para identificar e resolver problemas com eficiência. Essa postura proativa reduz riscos e aumenta sua confiança na gestão de fluxos de controle de versão.

Pratique entrevistas simuladas

Entrevistas simuladas ajudam a identificar lacunas no seu conhecimento de Git e na comunicação, direcionando melhor sua preparação.

Elas também oferecem oportunidades valiosas para aprimorar a resolução de problemas ao lidar com cenários realistas e exercícios relacionados ao Git. Essa prática aumenta a confiança e melhora sua capacidade de articular o raciocínio durante a entrevista.

Conclusão

Git é um sistema de controle de versão poderoso e amplamente utilizado para gerenciar mudanças no código, colaborar e manter o histórico do projeto. Familiaridade com Git é essencial em entrevistas técnicas, pois demonstra domínio de ferramentas e fluxos de trabalho fundamentais, evidencia habilidades de colaboração e mostra sua capacidade de gerenciar código em ambientes de equipe.

Além disso, entender conceitos e comandos do Git viabiliza práticas eficientes de versionamento, garantindo integridade do código, continuidade do projeto e processos de desenvolvimento mais ágeis. Assim, o conhecimento de Git é valioso para quem busca trilhar uma carreira de sucesso em engenharia e desenvolvimento de software.

Para continuar aprendendo, confira estes recursos:

Aprenda hoje os fundamentos do Git

Para iniciantes: Controle de versão principal usando o Git.

Kurtis Pykes 's photo
Author
Kurtis Pykes
LinkedIn
Tópicos

Continue sua jornada com Git hoje mesmo!

Programa

Engenheiro de dados Em Python

40 h
Adquira habilidades sob demanda para ingerir, limpar e gerenciar dados com eficiência, além de programar e monitorar pipelines, destacando você no campo da engenharia de dados.
Ver detalhesRight Arrow
Iniciar curso
Ver maisRight Arrow
Relacionado

blog

As 45 principais perguntas da entrevista sobre PostgreSQL para todos os níveis

Está se candidatando a um emprego que exige fluência em PostgreSQL? Prepare-se para o processo de entrevista com esta lista abrangente de perguntas sobre o PostgreSQL
Javier Canales Luna's photo

Javier Canales Luna

15 min

blog

40 perguntas e respostas de entrevistas sobre programação em R para todos os níveis

Saiba quais são as 40 perguntas fundamentais de entrevistas sobre programação em R e suas respostas para todos os níveis de experiência: perguntas de nível básico, intermediário e avançado.
Elena Kosourova's photo

Elena Kosourova

15 min

a great interview

blog

50 perguntas essenciais de entrevista sobre Power BI para todos os níveis

Explore as perguntas que você pode encontrar em entrevistas para vagas com Power BI — seja iniciante, intermediário ou avançado.
Joleen Bothma's photo

Joleen Bothma

15 min

Git

blog

O que é Git? Manual completo do Git

Saiba mais sobre o sistema de controle de versão mais conhecido e por que é uma ferramenta de colaboração indispensável para cientistas de dados e programadores.
Summer Worsley's photo

Summer Worsley

14 min

blog

As 31 principais perguntas e respostas de entrevistas com analistas de negócios para todos os níveis

Explore perguntas comuns de entrevistas com analistas de negócios e suas respostas para todos os níveis de experiência.
Austin Chia's photo

Austin Chia

15 min

Ver maisVer mais