Voltar

Explorando o GitHub

Uma abordagem para iniciantes dos princípios da plataforma
12/11/19   |   Nayara Silva
Whatsapp image 2019 11 11 at 23.25.24


Octocat mascote do Github


Visão geral


Antes de começar a usar o Github, é bom relembrarmos o que, em si, é o Git:

Git
é um sistema de versionamento de arquivos muito útil para fazer projetos em grupo, pois ele permite que um mesmo arquivo seja editado por vários usuários ao mesmo tempo, sem que um acabe apagando as anotações do outro. Por isso, ele é bastante usado não apenas na CJR mas em outras empresas de desenvolvimento de software.

Se o Git é o sistema de versionamento, o que é o Github? O Github é um sistema web que, permite que o Git, que é uma aplicação local, seja usado remotamente. Ele também é bastante popular por conter vários projetos open source, sendo utilizado por desenvolvedores de todo o mundo. Além do Github existem outros sistemas similares como o Bitbucket e o Gitlab.

Esse tutorial é especificamente voltado para o uso do Github no Linux.

Primeiros passos


Após a instalação inicial do Git (que você pode conferir no nesse outro artigo nosso, onde explicamos o preparamento do nosso ambiente de desenvolvimento ), a primeira coisa que você tem que fazer é criar uma conta no Github.

Como o Github é um site, você não precisa instalar nada além do git para usá-lo.

Adicionando Email no Github

É possível ter mais de uma conta de email atrelada ao seu github.

Para isso basta que você vá em Settings(Configurações)->Emails->Add email Address.

Assim que você configurar o seu git para utililizar o github com mais facilidade (novamente, você pode conferir isso clicando aqui) você está pronto para começar.

Criando um Repositório


Primeiramente o que é um repositório? Repositório é uma base de dados. De maneira simples, ele é um espaço virtual usado para guardar dados de temática parecida. No Git isso significa que quando você tem vários projetos, cada projeto é guardado em um repositório diferente.

Agora, como criar repositório no Github?

Se o repositório para o qual você quer contribuir já existe, pule esse passo.

Assim que você abre o git você irá se deparar com sua tela inicial, onde, se essa é sua primeira vez, os seus repositórios estarão vazios, no canto esquerdo da tela.

Sua página inicial no Github


Clique em New Repository e você cairá nessa tela:

Criando um novo repositório


Marque a opção Initialize this repository with a README se você quiser clonar imediatamente o repositório para seu computador.

Você receberá o endereço para clonar o repositório.

Clonando o Repositório


Se você não criou um repositório novo, primeiro escolha um repositório a ser clonado. Entrando na pasta desse repositório clique em Clone or Download e copie o caminho para o repositório.

Clonando um repositório do Github


Vá para o seu terminal e digite:
git clone *insira o caminho que você copiou*

Ao entrar na pasta não é necessário rodar o git init pois ele já terá iniciado.

Desenvolvendo


Antes de começar, é preciso explicar o que são Branches.

Dentro de um repositório você pode ter diversas branches. As branches são como ramos de uma árvore. Todas elas pertencem ao mesmo projeto (árvore), mas não necessariamente influenciam uma na outra.

Dessa forma, as branches são utilizadas para desenvolver funcionalidades diferentes em um projeto, sem que elas se interfiram.

Por exemplo, enquanto um membro A está fazendo o css, ele pode criar uma branch chamada “css”, ao mesmo tempo, Membro B pode estar criando tabelas em html em uma branch chamada “tabela”.

Enquanto estiverem em branches diferentes, as tabelas do Membro B não poderão ser afetadas pelo css do Membro A. Para que o css tenha efeito, é necessário fazer o merge das branches.

O merge é basicamente a junção das branches.

Existem duas Branches principais:

Master e Develop

Master:

Essa é a branch criada automaticamente para você pelo Git. Apesar de você poder usar suas branches como preferir, o padrão da CJR é usar a branch Master como branch base. O que isso significa?

Significa não codar na master.

A Master fica reservada para quando o projeto estiver pronto, revisado e funcionando. Nesse ponto, você dará o merge da Develop (que conterá já todas as funcionalidades) na Master para poder de fato rodar o seu programa. Esse método é adotado para evitar causar erros na master e ter sempre uma branch limpa, sem conflitos no caso da necessidade de recomeçar o projeto.

Develop

É a primeira branch criada a partir da Master. Essa branch é usada na CJR para dar o merge das funcionalidades conforme elas forem sendo criadas no projeto.

Assim, essa é a branch que, teoricamente, deve estar mais atualizada. Pra que isso?

Suponha que uma das primeiras funcionalidades seja a página inicial. A segunda funcionalidade, talvez seja uma tabela, que não precise necessariamente da página inicial para funcionar. Então você tem duas branches: “tabela” e “página inicial”.

Agora, você quer exibir na página inicial alguns conteúdos da tabela. De que branch você partiria? Para que a página inicial e a tabela funcionem juntas, você precisa colocá-las em uma mesma branch, ou seja, dar o merge nelas.

Assim, para evitar problemas, cada funcionalidade nova que é inserida, revisada e está funcionando bem é enviada em um primeiro momento para develop. Dessa forma, você também pode verificar como as funcionalidades trabalham juntas e consertar possíveis conflitos e erros.

Atualizando seu repositório


Para atualizar o seu repositório local de forma que ele siga as mais novas mudanças do repositório do time utilize:
git pull

Criando uma branch

Após se certificar que seu repositório está atualizado, escolha uma branch. Você pode trocar de branches usando o comando
git checkout nome-da-branch

Agora, dentro da sua branch base, utilize o comando
git checkout -b nome-da-nova-branch

Isso criará uma nova branch com todas as funcionalidade da branch que você usou como base.

Adicionando e enviando arquivos


Depois que você tiver modificado a sua nova branch com novos arquivos, ou simplesmente editado arquivos existentes, está na hora de passar isso para o repositório online.
git status

O comando acima te permite ver quais arquivos foram modificados no seu repositório local.
git add <arquivos…>

Dica útil:

Se você tem muitos arquivos para enviar, ao invés de escrever o nome deles um por um, utilize:

git add .

Isso adiciona todos os arquivos modificados.

O “git add” te permite adicionar arquivos em um Index. O que é o index?

O index é uma área temporária onde seus arquivos estão contidos antes de serem enviados ao github. Por que isso é importante? Para enviar os arquivos do seu index para o seu repositório remoto você precisa fazer o que chamamos de commit.

O commit é a confirmação de que você quer mesmo enviar suas mudanças, porém ele ainda não as envia para o repositório. Ele as envia para o HEAD. A HEAD é um espaço local que guarda todos os seus commits, de forma que você não precisa enviar um commit por vez para o repositório do Github.

O commit ainda é acompanhado de um comentário que permite aos outros entenderem o que você fez com suas mudanças.

git commit -m “comente aqui”

Se você não comentar o commit será cancelado.

Agora, antes de enviar seus commits para o repositório, verifique, no site do Github, se há branches com os mesmos nomes que suas branches locais. Se não houver, crie-as no site.

Para isso basta clicar em “branch” e no espaço de pesquisar digitar o nome da sua branch.

Se sua branch não existir, dê um enter nesse espaço e ela será criada.

Criando branch no repositório do Github



Agora você pode, efetivamente, enviar suas modificações:
git push Push

Esse comando envia todas as suas mudanças para as respectivas branches.


Dica útil:

Às vezes você não quer enviar as mudanças que vocẽ fez em todas as branches de uma vez. Se esse é o caso entre dentro da branch que você quer enviar e use o comando:

git push origin nome-da-branch


Pronto. Você aprendeu a criar e clonar um repositório, adicionar e se mover entre as branches, e enviar arquivos para seu repositório!

Fork


Outra função interessante do Github é o fork.

Um fork significa você copiar um repositório no próprio github. Esse repositório não irá para o seu computador diretamente. A cópia do repositório ficará atrelada ao seu perfil.

Dessa forma você pode fazer as mudanças que quiser no repositório sem afetar o repositório original.

Por exemplo, ao entrar em um repositório, quando você vai no canto direito da página você clica em Fork

Fazendo um Fork — Github


Clicando em Fork, você já copiou o repositório.


Perceba que o primeiro repositório pertence ao diogoqds e o segundo ao NayRSilva. A partir desse momento, ao clonar o repositório de NayRSilva e enviar os commits para ele, nenhuma mudança será feita no repositório de diogoqds.

Você pode pedir que o repositório de origem aceite algumas de suas mudanças. Para fazer isso você precisa fazer um Pull Request.

Pull Request


O Pull Request é, como o nome traduzido diz, um pedido para que você dê o pull em um repositório do Github que não é seu. Quando você fizer esse pedido, o commit que você enviou será revisado por um dos donos do repositório que pode aceitar ou não as suas mudanças.

Você pode dar dois tipos de Pull Request. Um Request para arquivos que você quer commitar direto do seu computador ao repositório e um Request entre forks. Os dois começam da mesma maneira.

Basta clicar em New Pull Request logo ao lado do campo seletor de Branches.

Novo Pull Request



Você cairá em uma página semelhante a essa, porém listando as suas mudanças.


Perceba que existem duas opções: Base fork e Head fork.

Base fork é para onde as mudanças serão mandadas. Head fork é de onde elas vieram.

O mesmo acontece com a branch. Base é pra onde vai, Head da onde veio. Preste atenção para qual branch você está mandando os seus commits.

No caso da imagem acima, já estamos fazendo a comparação entre forks. É possível ver isso pois ele oferece opção de Base e Head fork. Se essas opções não estiverem disponíveis basta clicar em “compare across forks” para habilitá-las. Caso elas estejam habilitadas, mas você queira fazer o request apenas do seu computador para o repositório, clicando em “compare across forks” também as desabilita.

Esse é o básico que a CJR supõe que você precisa saber para começar a se aventurar pelo Github. Esperamos que nossas dicas e explicações tenham sido úteis.

Sobre o autor:

Nayara Silva
Consultora de Imagem e Publicidade

Oi, eu sou a Nayara! Gosto muito de desenhar :)