Perguntas da entrevista do Github
Armazém local: uma pasta construída no
armazém remoto local : um
sistema de controle de versão distribuído de pasta embutido em um servidor na Internet
1. Dois armazéns com extratos, um armazém local no computador e um armazém remoto O servidor tem um warehouse remoto
2. Quando enviamos os arquivos, vamos enviá-los primeiro ao warehouse local e, em seguida, enviá-los do warehouse local para o warehouse remoto na rede quando houver uma rede.
3. GIT é um sistema de controle de versão distribuído típico
P. Qual é a diferença entre Git e GitHub
- Git
- Git é um sistema de controle de versão distribuído usado para rastrear alterações no código-fonte durante o desenvolvimento de software. Ajuda a coordenar o trabalho entre os programadores, mas pode ser usado para rastrear alterações em qualquer conjunto de arquivos. Os principais objetivos do Git são velocidade, integridade de dados e suporte para fluxos de trabalho não lineares distribuídos.
- GitHub
- GitHub é um serviço de hospedagem de repositório Git e também adiciona muitos de seus próprios recursos. O GitHub fornece uma interface gráfica baseada na web. Ele também fornece controle de acesso e algumas funções de colaboração para cada projeto, ferramentas básicas de gerenciamento de tarefas.
P. O que é Git
- Git é um sistema de controle de versão distribuído (DVCS). Ele pode rastrear as alterações do arquivo e permite que você reverta para qualquer versão específica das alterações.
- Cada desenvolvedor pode "clonar" uma cópia do repositório e ter um histórico completo do projeto em seu disco rígido, então, quando o servidor cair, todos os dados de recuperação de que você precisa estão no repositório Git local de seu colega de equipe .
- Também existe um repositório central na nuvem para o qual os desenvolvedores podem enviar alterações e compartilhá-las com outros membros da equipe.Como mostrado na figura, todos os colaboradores estão enviando alterações para o "repositório remoto".
P. Em que idioma o Git está escrito?
- Git usa a linguagem C. Git é rápido, e a linguagem C torna isso possível reduzindo a sobrecarga de tempo de execução associada a linguagens de alto nível.
P. Alguns comandos básicos no Git e explicam seu uso
comando | uso |
---|---|
$ git clone | Clone um armazém remoto |
$ git init | Inicialize o repositório local |
$ git add. | Acompanhe todos os arquivos alterados |
$ git status | Verifique o status |
$ git commit -m “mensagem de confirmação” | Envie todos os documentos atualizados |
$ git branch | Ver filial |
$ git branch | Criar filial |
$ git checkout | Mudar de ramo |
$ git merge | Juntar ramo |
P. Quais são os comandos enviados no Git?
- O comando de envio de gravação é git commit
- Se você precisar enviar um novo arquivo pela primeira vez, pode usar git add antes de git commit -a
P. O que o objeto de envio inclui?
O objeto commit contém os seguintes componentes
-
Um conjunto de arquivos que representam o status do projeto em um determinado momento
-
Referência ao objeto pai do commit
-
Nome SHAI, uma string de 40 caracteres, identificação exclusiva do objeto enviado
P. Qual é a função da configuração do Git?
- Git usa seu nome de usuário para associar commits a identidades. O comando Git config pode ser usado para alterar sua configuração Git, incluindo seu nome de usuário.
- Suponha que você queira fornecer um nome de usuário e uma ID de e-mail para associar um envio a uma identidade, para que você possa saber quem fez um envio específico.
- git config -global user.name "Seu nome": Este comando adicionará o nome de usuário.
- git config –global user.email “Seu endereço de e-mail” : Este comando adicionará o ID do e-mail.
P. O que é um repositório no Git?
- O repositório no Git é onde o Git armazena todos os arquivos. Git pode armazenar arquivos em um repositório local ou um repositório remoto.
Q. Como criar um repositório no Git
- Para criar um repositório, primeiro crie um diretório para o projeto (se esse diretório não existir) e, em seguida, execute o comando git init . Ao executar este comando, um diretório .git será criado no diretório do projeto.
Q. Descreva a seguinte estratégia de filial que você usa
-
Ramo funcional
- O modelo de ramo de recurso mantém todas as alterações em um recurso específico dentro do ramo. Quando a funcionalidade for totalmente testada e verificada por meio de testes automatizados, o branch será mesclado com o servidor principal.
-
Ramificação de tarefas
- Neste modelo, cada tarefa é implementada em sua própria ramificação e a chave da tarefa é incluída no nome da ramificação. É fácil ver qual código implementa qual tarefa, basta procurar a chave da tarefa no nome do branch.
-
Ramificação de lançamento
- Assim que o branch de desenvolvimento tiver recursos de lançamento suficientes, você pode clonar o branch para formar um branch de lançamento. A criação deste branch iniciará o próximo ciclo de lançamento, portanto, nenhum novo recurso pode ser adicionado depois disso, apenas correções de bugs, geração de documentação e outras tarefas orientadas ao lançamento devem ser incluídos neste branch. Assim que estiver pronto para ser lançado, a versão será incorporada ao servidor mestre e marcada com um número de versão. Além disso, ele também deve mesclar o progresso que foi feito desde seu lançamento de volta ao branch de desenvolvimento.
P. Se o branch foi mesclado no master, por que meios você pode saber?
- Para saber se um branch foi mesclado com o master, você pode usar o seguinte comando:
- git branch --merged Lista os branches que foram integrados ao branch atual. `
git branch –no-merged
Ele lista as ramificações que ainda não foram mescladas.
P. O que é "conflito" no Git
- O Git pode lidar com a maioria das mesclagens por conta própria usando seu recurso de mesclagem automática. Um conflito ocorre quando duas ramificações separadas editam a mesma linha em um arquivo ou quando um arquivo é excluído em uma ramificação, mas editado em outra ramificação. Ao trabalhar em um ambiente de equipe, é mais provável que ocorram conflitos.
P. Como resolver conflitos no Git
- Identifique o arquivo que está causando o conflito
- Faça as alterações necessárias no arquivo para evitar conflitos novamente
- Adicione esses arquivos por meio do comando git add
- Finalmente, use o comando git commit para enviar os arquivos alterados