As 30 principais perguntas e respostas da entrevista do Git que você precisa saber em 2022

Publicados: 2021-01-04

O Git está crescendo em popularidade. Os desenvolvedores trabalham continuamente para lançar versões mais recentes do aplicativo não beta para corrigir bugs ou melhorar sua funcionalidade. O Git funciona como um controle de versão onde todas as alterações são armazenadas em um repositório central.

Cada desenvolvedor em uma equipe pode visualizar as versões, fazer alterações e carregá-las. Também funciona incrivelmente bem para pessoas que trabalham em equipes remotas ou trabalham em casa. O Git não é usado apenas por desenvolvedores. Mesmo não desenvolvedores da equipe podem usá-lo para obter a versão mais recente ou uma versão específica de um aplicativo e usá-lo para testes ou outros trabalhos.

Onde o Git é uma ferramenta de linha de comando, o Git Hub é o centro, onde os programadores salvam seus projetos e se comunicam com uma equipe.

Assim, ter o conhecimento do Git está em demanda e, com o aumento da demanda, formamos um conjunto de perguntas de entrevista do Git que o ajudariam a garantir um emprego. Para facilitar o entendimento, dividiremos as perguntas da entrevista do GitHub em três seções – Iniciantes, Intermediário e Avançado.

Índice

Perguntas de entrevista Git de nível básico

Q.1) Explique a diferença entre SVN e Git

  • O SVN é uma ferramenta de controle de versão centralizada pertencente à segunda geração, ao contrário do Git, que é uma ferramenta de controle de versão descentralizada pertencente à terceira geração.
  • No SVN, um repositório do lado do servidor salva o histórico de versões. No Git, você pode copiar todo o repositório no seu PC.
  • No SVN, você pode fazer commit apenas quando estiver online, diferente do Git, onde você pode fazer commit mesmo quando estiver offline.
  • As operações de pull e push são mais lentas no SVN em comparação com o Git, onde é mais rápido.
  • No SVN, seu trabalho não é compartilhado até que você o faça, ao contrário do Git, que compartilha automaticamente.

Q.2) O que é Git?

O Git permite que desenvolvedores e membros de uma equipe acompanhem as alterações feitas por qualquer pessoa. Ele também permite que você volte para as versões mais antigas. É um sistema de Controle Distribuído de Versão que ajuda a equipe a saber quem fez as alterações e em qual data e hora. Ele tem seu próprio conjunto de vantagens sobre outros sistemas de controle de versão.

O maior benefício do Git é que ele não depende de um servidor central para salvar todas as versões de um projeto. Os desenvolvedores podem criar clones (cópias) de um repositório em seus próprios sistemas, o que mostra todo o histórico. Este particular ajuda quando há uma interrupção de corte. No Git, há um repositório central em nuvem onde os programadores ou membros da equipe podem confirmar alterações e compartilhar com sua equipe.

Q.3) Qual é a diferença entre GitHub e Git?

Um serviço de hospedagem de repositório Git é chamado de GitHub. Além disso, possui recursos próprios, como uma interface gráfica baseada na web. Além disso, o GitHub também dá acesso além de servir como ferramenta de gerenciamento de um projeto.

Por outro lado, o Git é um sistema de controle de versão de natureza distribuída. É usado principalmente para rastrear quaisquer alterações feitas no aplicativo não beta. Oferece velocidade, suporte e integridade de dados. Os desenvolvedores e outros membros da equipe podem ver quem fez quais alterações e em que data.

Q.4) Quais são as vantagens de usar o Sistema de Controle de Versão?

Ele ajuda a equipe e seus membros porque eles podem trabalhar a qualquer momento, pois o Sistema de Controle de Versão lhes dá a flexibilidade de mesclar as modificações feitas na versão comum sem qualquer aborrecimento.

O histórico mostra todas as versões mais antigas e suas variantes, permitindo que os membros da equipe retornem, se necessário. Os membros da equipe também têm um instantâneo de todo o projeto.

Os membros da equipe precisam comentar quando fazem alguma modificação, o que ajuda os outros a entender quais mudanças exatas estão tornando o projeto mais organizado. Ninguém tem que esperar por uma explicação. Os membros da equipe sabem exatamente quem mudou a versão e por quê.

Se houver uma falha infeliz do servidor, um VCS distribuído como o Git permite que você tenha o histórico completo do seu projeto, pois pode ser baixado em seu desktop.

Q.5) Qual linguagem é usada no Git?

A linguagem que o Git usa é a linguagem 'C' porque a velocidade que o GIT requer pode ser satisfeita pela linguagem 'C', pois reduz os tempos de execução, ao contrário de outras linguagens de alto nível.

Q.6) Conte-nos algumas funções de hospedagem do repositório Git

  • Github
  • Gitlab
  • SourceForge
  • Bitbucket
  • GitEnterprise

Q.7) Como você se compromete com o Git?

Para escrever uma mensagem de commit, você precisa escrever o comando “git commit -a”.

O -a nos comandos de linha de comando git para confirmar o conteúdo mais recente de todos os arquivos rastreados que foram alterados. Você pode usar o comando “git add <file>” antes de git commit -a se os novos arquivos precisarem ser confirmados pela primeira vez.

Q.8) Como você pode corrigir um commit quebrado?

Você pode usar o comando “git commit –amend” para corrigir um commit quebrado. Ao executar este comando, ele corrige a mensagem de confirmação quebrada no editor.

Leia: Principais perguntas da entrevista do Nagios

Q.9) O que significa um repositório no Git?

É um lugar onde o Git salva todos os arquivos. O Git tem a capacidade de armazenar arquivos tanto no repositório remoto quanto no local.

Q.10) Como você pode criar um repositório?

Criar um repositório é simples no Git. Você precisa criar um diretório para o projeto, se ainda não tiver feito isso. Em seguida, você precisa executar o comando “git init”. Este comando cria o diretório git no diretório do projeto.

Q.11) Explique 'repositório vazio' no Git?

Um repositório Git vazio geralmente é usado como um repositório remoto que você compartilha com os membros da sua equipe ou outras pessoas. Não há árvore de trabalho dentro dele porque não há trabalho feito dentro do repositório remoto. Em outros arquivos, não há arquivos dentro deste, que você editará. Ao contrário, um diretório de trabalho contém um subdiretório .git com todo o histórico de versões e também uma árvore de trabalho.

Q.12) O que você quer dizer com 'conflito' no git?

Normalmente, o Git gerencia todas as mesclagens usando seus recursos de mesclagem automática. Mas pode haver um conflito se duas ramificações separadas obtiverem edições exatamente na mesma linha de um arquivo. Também pode acontecer quando um arquivo é excluído de uma ramificação, mas foi editado em outra. Estes são obrigados a acontecer quando você está trabalhando em um ambiente de equipe.

Q.13) O que é git is-tree?

'git is-tree' representa um objeto de árvore que compreende o modo e o nome do item, bem como o valor SHA-1 da árvore ou de um blob.

Perguntas da entrevista Git de nível intermediário

Q. 14) Como você resolve um conflito se ele surgir no Git?

Você pode resolver conflitos no Git das seguintes maneiras:

  1. Determine quais arquivos causaram o aumento do conflito.
  2. Resolva o conflito fazendo alterações nesse arquivo específico.
  3. Adicione esses arquivos novamente pelo comando git add.
  4. Use o comando git commit para confirmar o arquivo.

Q.15) Se um commit já foi enviado e tornado público, como você o reverte no Git?

Existem dois métodos em que você pode fazer isso, dependendo da situação:

  1. Você pode removê-lo completamente ou corrigir o arquivo incorreto em um novo commit e, em seguida, enviá-lo de volta ao repositório remoto. Este é o método mais comumente usado para corrigir esse problema. Depois de fazer as alterações relevantes no arquivo, usando o comando git commit -m “commit message”, você o confirma no repositório remoto.
  2. Alternativamente, você pode criar um novo commit que desfaça todas as modificações que foram feitas no commit incorreto. Você pode fazer isso usando o comando git revert <name of bad commit>

Leia: Perguntas e respostas da entrevista ágil

Q.16) O que é SubGit?

É uma ferramenta que permite a migração do SVN para o Fit. Ele cria um espelho Git gravável de um repositório Subversion local ou remoto e faz uso tanto do Subversion quanto do Git enquanto você quiser. Você pode usar o SubGit para criar um espelho Git-SVN bidirecional de um repositório Subversion existente. Você também pode fazer uma importação única do Subversion para o Git rapidamente.

Q.17) Qual é a diferença entre o comando git pull e o comando git fetch?

O comando Git pull recupera todas as novas alterações ou confirmações de uma ramificação precisa de seu repositório central e atualiza sua ramificação de destino em seu repositório local.

O comando Git fetch é usado para algo semelhante, mas tem uma pequena diferença. Quando você busca, ele recupera todos os novos commits de uma ramificação precisa e a salva em uma nova ramificação em seu repositório local. Se você deseja refletir essas mudanças em seu branch de destino, você deve chamar o git merge.

Assim, Git pull = git fetch + git merge.

Q.18) O que é 'índice' ou 'área de teste' no Git?

A área intermediária onde as alterações podem ser formatadas ou revisadas antes da confirmação é chamada de índice ou área de teste no Git.

Q.19) O que é git stash? Como você aplica isso?

Há momentos em que um trabalho precisa ser pausado, pois você precisa trabalhar em alguma outra ramificação como prioridade. O trabalho pela metade não pode ser comprometido, pois não está nesse estágio completo, mas você deseja voltar e trabalhar nele em pouco tempo. Para resolver esse problema, git slash oferece ajuda.

Ele o salva em uma pilha de alterações inacabadas que você pode concluir e confirmar mais tarde. Para voltar a este trabalho, tudo o que você precisa fazer é chamar o git stash para aplicar o comando. Ele busca seu trabalho de onde você o deixou para seu diretório de trabalho.

P. 20) Como o git diff é diferente do 'git status'?

'git diff' é quase semelhante a 'git status'; a única diferença que ambos têm é que o primeiro revela as diferenças entre vários commits. '

Q.21) Como 'git remote' é diferente de 'git clone'?

Se você deseja criar uma entrada em sua configuração do git que mencione um nome para uma URL específica, você usa 'git remote add'. Por outro lado, 'git clone' cria um novo repositório git copiando um existente localizado na URL.

Leia: Principais perguntas e respostas da entrevista do React

Q.22) Descreva as estratégias de ramificação

Cada empresa tem suas próprias estratégias de ramificação. Aqui estão alguns dos mais populares:

  • Ramificação de recurso – Um modelo de ramificação de recurso salva todas as alterações feitas para um recurso específico dentro de uma ramificação. Somente após testes completos, esse branch é mesclado com seu master.
  • Ramificação de lançamento – Uma vez que a ramificação de desenvolvimento atingiu um ponto em que está pronta para o lançamento; você pode cloná-lo ou copiá-lo para formar uma ramificação de lançamento. Após a clonagem, nenhum novo recurso é adicionado a ele. Você só pode corrigir bugs, documentá-los ou realizar atividades relacionadas à sua melhoria para o lançamento. Uma vez testado, ele é mesclado com seu mestre e obtém um número de versão. Além disso, ele deve ser mesclado de volta à ramificação de desenvolvimento, que pode ter avançado desde que o lançamento foi feito.
  • Ramificação de tarefas – Neste modelo, cada tarefa é executada em sua ramificação individual com a chave de tarefa mantida no nome da ramificação. Fica claro para ver qual código executa qual tarefa procurando a chave da tarefa no nome da ramificação.

Q.23) Explique o fluxo de trabalho do Gitflow?

O Gitflow armazena o histórico de um projeto específico empregando duas ramificações paralelas de longa duração que são mestres e desenvolvidas:

  • Mestre – Isso está pronto para ser ramificado. Tudo é testado e aprovado neste ramo.
  • Hotfix – essas ramificações são usadas para corrigir rapidamente as versões de produção. Eles são quase como suas ramificações de recursos e ramificações de lançamento; além disso, eles são baseados em master ao invés de desenvolver.
  • Desenvolver – Todas as ramificações de recursos são mescladas nesta ramificação. Estes são os que passam por testes. Somente após testes rigorosos, ele se funde com o branch master.
  • Recurso – cada novo recurso deve ficar em sua própria ramificação, que é então enviada para a ramificação pai, que é a ramificação de desenvolvimento.

P. 24) Como descobrir se uma ramificação é mesclada com a master?

Os comandos a seguir ajudam você a saber se eles estão mesclados ou não:

git branch –merged – Lista todos os branches que foram mesclados no branch atual. Você pode então ver se é ou não.

git branch –no-merged – Alternativamente, você pode usar este comando para verificar todos os branches que não estão mesclados com seu branch master.

Q.25) Como você pode remover um arquivo do git sem excluí-lo do seu sistema de arquivos?

Você precisa ser cauteloso ao adicionar arquivos ao Git para não acabar adicionando arquivos errados. O comando git rm irá removê-lo da área de teste e do sistema de arquivos, então você precisa usar o comando git reset.

Você pode usar git reset filename ou echo filename >> .gitingore

Q.26) Explique rebase e merge no Git?

Você usa o comando rebase para integrar edições de uma ramificação em outra. Ele é usado como uma alternativa ao comando de mesclagem. É uma alternativa ao comando “merge”. É diferente do merge, pois reescreve o histórico de commits para fornecer uma sucessão direta e organizada de commits.

Perguntas da entrevista Git de nível avançado:

Q.27) Como você compacta os últimos N commits em um único commit?

Existem duas maneiras de compactar os últimos N commits em um único commit, que são:

Se você deseja criar uma nova mensagem de commit desde o início, você pode usar o seguinte comando:

git reset –soft HEAD~N &&git commit

Se você quiser simplesmente editar a nova mensagem de commit com uma concatenação das mensagens de commit existentes, então você precisa buscar essas mensagens e passá-las para o Git commit usando o comando:

git reset –soft HEAD~N &&git commit –edit -m”$(git log –format=%B –reverse .HEAD@{N} )”

Q.28) Quais são as etapas para integrar o Jenkins ao Git?

Etapa 1: você precisa clicar no painel do Jenkins para gerenciar o botão do Jenkins.

Passo 2: Clique no botão gerenciar plugins.

Passo 3: Na página Plugins, você precisa selecionar o plugin GIT. Clique em instalar sem reiniciar. O plugin é baixado automaticamente, dependendo da velocidade da sua Internet.

Q.29) Explique o que é Git bisect, e como você o usa para chegar à fonte de um bug?

Usando o Git bisect, você pode descobrir qual commit causou o bug usando a pesquisa binária. O comando para Git bisect é git bisect <subcommand> <options>

um algoritmo de busca binária, este comando encontra qual commit causou o bug em primeiro lugar. O Git bisect escolhe um commit entre os dois endpoints onde o bug foi introduzido. Você precisa Você pode determinar entre um bom commit e um ruim. Ele continua filtrando, até que o commit exato seja encontrado.

Q.30) Explique um git reflog?

O comando 'reflog' ajuda a acompanhar cada edição que foi feita nas referências de um repositório. Mantém um histórico de dados das ramificações e ainda mantém uma tag para aquelas criadas localmente ou fora dela .

Este comando deve ser executado no repositório que tinha o branch ausente. No caso de uma situação de repositório remoto, você precisa executar o comando reflog no sistema do programador que possui a ramificação.

Obtenha diplomas de Engenharia de Software das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.

Conclusão

Esperamos que as perguntas da entrevista do Git Hub ajudem você a conseguir o emprego dos seus sonhos. Estas são as perguntas mais comuns do Git pelo entrevistador. Desejamos-lhe o melhor para a sua entrevista!

Prepare-se para uma carreira do futuro

Inscreva-se agora para Mestrado em Engenharia de Software