🇮🇪 Read in English

Uma breve introdução ao Git e Github

É mês de Hacktoberfest e este é um momento incrível para contribuir com o código aberto (open-source)! No entanto, Git e Github podem ser bastante assustadores, então vamos falar um pouco sobre o básico dessas duas ferramentas extremamente úteis!

Versionamento

Git é um sistema de versionamento que foi projetado com foco em versionamento de código. Basicamente, nos ajuda a lidar com a modificação de arquivos de uma maneira fácil e indolor.

Github, por outro lado, é uma empresa que implementou um sistema que permite que você use git para criar uma versão de seu código enquanto o armazena em sua nuvem. O Github, no entanto, não é a única empresa. Bitbucket e Gitlab são outros exemplos de empresas que possuem sistemas que permitem armazenamento e interação de grupo enquanto você pode fazer tudo usando git!

Agora, imagine por exemplo que você tem um arquivo que é um arquivo Python que tem apenas um laço for simples como este:

for i in range(5):
  print(i)

Aí uma amiga minha decide que o meu código pode melhorar um pouco. O que ela pode fazer é propor uma mudança nele, e se ela fizer isso usando Git e GIthub, a proposta vai se parecer da seguinte forma:

E a parte interessante é que essa mudança está contida em um pequeno pacote chamado commit, que recebe um hash único como identificador. Você também pode adicionar uma mensagem a este pacote, identificando a alteração que foi feita. Na imagem você pode ver no lado direito os primeiros dígitos do commit (1551bd2) e no lado esquerdo a mensagem de commit para essa mudança:

Como cada mudança é um único pacote, é fácil voltar a uma versão anterior ou descobrir quem fez o quê e quando!

Parece simples, mas é uma ferramenta valiosa para o desenvolvimento ao longo do tempo e essencial com grandes grupos. A capacidade de ver as mudanças permite que você compartilhe seu código antes de adicioná-lo à base de código principal, o que permite que as pessoas mantenedoras sugiram mudanças, garantindo a qualidade do código.

Git básico

Existem alguns comandos principais que você deve saber para trabalhar com o git, portanto, vamos examiná-los mais de perto.

Uma pasta principal que contém uma base de código é chamada de repositório. Quando você quiser copiar o código de um repositório que está no site do Github pro seu computador local você usa o comando git clone <url-to-repo>, assim:

$ git clone https://github.com/leportella/git-example.git

E o que está acontecendo na verdade é isso:

Então você pode modificar qualquer arquivo que quiser em seu repositório local (em seu computador), e nenhuma dessas mudanças afetará a base de código ainda. Agora, digamos que você queira adicionar um novo arquivo e enviá-lo de volta ao repositório remoto (no Github). Você primeiro seleciona o arquivo que contém as alterações que deseja fazer usando git add <filename>. Então você pode agrupar todas as mudanças em um único commit. Podemos fazer isso usando git commit -m "<uma mensagem explicando as mudanças>".

A distinção entre add e commit é importante. O add marca os arquivos que serão adicionados ao commit enquanto o commit realmente fecha as mudanças em um único commit e o deixa pronto para ser enviado!

Finalmente, queremos enviar este commit para o site do Github, isto é, de volta para a base de código original! Fazemos isso usando git push. A estrutura geral é assim:

Como cada alteração é guardada em um commit, o repositório pode manter os arquivos e cada commit na mesma ordem em que foram feitos:

No Github isso é apresentado da seguinte forma:

Github

Ao desenvolver no github, no entanto, a primeira coisa que você deve fazer quando estiver trabalhando com um repositório que não é seu, é um fork. Ao fazer um fork de um repositório você basicamente está copiando um repositório da conta Github de outra pessoa para sua conta pessoal.

Isso é necessário porque apenas os contribuidores listados podem adicionar código diretamente ao repositório. Copiar para sua conta é mais seguro porque a única maneira de adicionar código é fazendo um pull request.

Um pull request é a terminologia do Github para a forma que uma pessoa vai sugerir mudanças num código. Depois de enviar o código de volta para a nuvem, você poderá abrir uma solicitação de pull request. Essa solicitação pode ser avaliada pelas pessoas mantenedoras do repositório. As mudanças que mostrei na primeira imagem foram, na verdade, como uma mudança de código é apresentada em uma solicitação de pull!

A figura abaixo mostra como é a interface para Isso é o que parece quando você abre uma solicitação pull. Você pode ver no topo que estou sugerindo adicionar o código para a master.

Esse é um bom padrão: mudanças são propostas e avaliadas, você pode aprender com pessoas mais experientes e todo mundo ganha!

Encontrando problemas pra trabalhar

Uma grande parte do Hacktoberfest é encontrar bugs (defeitos) e recursos para trabalhar em projetos de código aberto. No Github, cada repositório possui uma lista de Issues (problemas). Uma issue é um lugar que conterá informações relatadas por alguém (uma pessoa usuária ou mantenedora) que conterá informações sobre um bug ou um recurso necessário.

Ele também pode conter um label indicando o tipo de problema. Na figura abaixo, você pode ver que Zach propôs uma alteração na documentação do projeto em que [este issue] (https://github.com/jupyterhub/jupyterhub/issues/3097) foi aberto.

Alguns projetos também adicionam rótulos como beginner friendly ou easy para incentivar as pessoas que estão começando no projeto ou em código aberto!

Happy Hacking!

Espero que esse artigo tenha ajudado você a entender um pouquinho melhor este mundo incrível! Git é na verdade uma ferramenta muito poderosa que a maioria das pessoas não conhece muito! Espero que isso a tenha animado o suficiente para pesquisar mais sobre isso 🤓 Eu não falei sobre muitas coisas que são muito interessantes!

Verifique minha wiki sobre git para obter algumas dicas rápidas!

Além disso, você nem sempre precisa contribuir apenas com o código! A documentação é uma parte importante da maioria dos projetos e geralmente algo que muitas pessoas ignoram. Veja esse texto sobre como ajudar sem alterar nenhum código!

Tradução: 1) Esse é o Git. Ele faz rastreamento de trabalhos colaborativos em projetos através de uma linda teoria de grafos distribuída com modelos de árvore. 2) Legal! E como a gente usa ele? 3) Nenhuma ideia. Eu só memorizei uns comandos e eu escrevo eles pra fazer a sincronização. Se você tem erros, você salva o seu trabalho em outro lugar, deleta esse projeto e faz download de uma cópia nova.


Abraço!
Letícia

Comments