Como ensinar as pessoas a usar o git

Para o trabalho, tenho que participar de vários projetos, para que eu saiba bem como todos os meus colegas trabalham. Lembro que a empresa começou a usar o Git apenas algumas semanas antes de eu chegar. Nos monitores dos desenvolvedores, em torno de adesivos pendurados com um lembrete: primeiro adicione, depois confirme e depois empurre.


Eles não sabiam o porquê. Os programadores foram instruídos a seguir estritamente as instruções, caso contrário, o problema. Mas os problemas surgiram com tanta frequência que eu decidi organizar um workshop sobre Git.

Idéia


Eu gosto de mapear na minha cabeça. Não digo "mapas mentais" porque é um tipo bem conhecido de diagrama. É sobre algumas imagens, estruturas ou qualquer representação gráfica na mente. Por exemplo, quando criança, aprendi aritmética ao introduzir dados.

Então eu preparei alguns desenhos. Não é necessário observá-los para entender o texto. Há uma explicação para todos.

Além disso, é muito importante ensinar termos a uma pessoa. Caso contrário, ele não entenderá as mensagens do Git. Os desenhos são uma boa maneira.

Sistema de Controle de Versão Distribuído




Na figura, quatro áreas são distribuídas da seguinte maneira:

  • Ambiente de Desenvolvimento:
    • Diretório de trabalho
    • Área intermediária (preparo) ou índice
    • Repositório local
  • Servidor:
    • Repositório remoto

Aqui você pode explicar os benefícios de um sistema de controle de versão distribuído.

Clonagem de Repositório




Ao clonar, os dados de um repositório remoto são movidos para duas áreas:

  • Diretório de trabalho
  • Repositório local

Fazendo alterações no diretório de trabalho




Existem dois tipos de arquivos no diretório de trabalho:

  • Rastreado : arquivos que o Git conhece.
  • Não rastreável : que ainda não foram adicionados, portanto o Git não os conhece.

Atualizar Repositório Remoto




Após preparar as mudanças no diretório de trabalho, elas devem ser adicionadas à área de preparação.

Quando várias alterações se acumulam lá com um objetivo comum, é hora de criar uma confirmação no repositório local com uma mensagem sobre esse objetivo.

Se o repositório local tiver uma ou mais confirmações prontas para compartilhar com o resto do mundo, elas serão enviadas para o repositório remoto .

Neste ponto, podemos falar sobre os vários estados do arquivo no ambiente de desenvolvimento: modificado , intermediário (preparado) e fixo (confirmado).



Além disso, você pode explicar:

  • : git diff
  • : git diff --staged
  • . .


(fetching)




git fetch .

(pulling)




git pull :

  • : fetch
  • : merge

, git pull --rebase. fetch + merge fetch + rebase. , .




, : .

, : , , , .


(Visual SourceSafe, TFS Subversion): , , . , .




, Git .

Hacker News:


Reddit, , «, Git», , , Git Pro Git. , . , . !

, Hacker News, u/cryptoz, Reddit!

Source: https://habr.com/ru/post/pt437000/


All Articles