back to posts

August 9, 2020

Iniciando com Git e Github

Explicando o que é Git e Github para quem está começando

Conteúdo

O que é Git?

É uma ferramenta usada para versionamento de projetos.

O que seria versionar projetos?

  • Projetos evoluem, funcionalidades são adicionadas, melhoradas, consertadas;
  • Uma ferramenta de versionamento irá garantir o históricos das alterações;
  • Porém, ele não faz isso sozinho;
  • As pessoas que estão no desenvolvimento do projeto que são responsáveis por registar as mudanças usando o Git;
  • Com isso, é possível ter um histórico de alterações, reverter alterações para um ponto específico "no passado"....

O que é Github?

Github é uma plataforma para hospedagem dos projetos. Muitas vezes temos a necessidade de mostrar nosso código a outras pessoas (ou não, as vezes fazemos só para estudo e que ficam só em nossa máquina), para que o código seja acessível para outras pessoas, normalmente hospedamos ele em algum lugar. Existem plataformas específicas para este propósito, o Github é uma delas.

Existem outras plataformas com o mesmo propósito do Github como por exemplo o GitLab e Bitbucket.

Por que usar o Github?

  • Tem uma interface aparentemente amigável;

  • É bastante popular;

  • Poder seguir pessoas e ver os projetos delas e os quais elas contribuem;

  • Vários projetos de código aberto (Open Source) estão lá;

  • Tem possibilidade de ter projetos (repositórios) tanto publico quanto privados;

  • Pessoas podem realizar contribuições aos seus projetos;

Estando o projeto em algum lugar como o Github, é possível criar uma cópia dele em qualquer* computador e continuar o desenvolvimento, basta manter o código sempre atualizado. Estando público, nem todas as pessoas podem realizar alterações diretas, mas é possível enviar sugestões de alterações e a pessoa dona do projeto pode aprovar aquela alteração e deixar com que faça parte do código original.

Diferença

Após essas duas breves introduções, vemos a diferença do Git para o Github:

  • Git é a ferramenta para o versionar projetos
  • Git mantém histórico
  • Pessoas usam Git para o registro de alterações do projeto
  • Github é o lugar que os projetos ficam
  • Há outras alternativas para o Github
  • Github é popular

Alguns termos comuns

Por ser algo usado por pessoas desenvolvedoras de todo o mundo, a nomenclatura que segue da estrutura é em inglês. Esses são só alguns que escolhi considerando a partir de coisas que falamos num dia a dia de um projeto.

  • Repository: É onde está o código fonte do projeto;
  • README.md: É um arquivo que comumente é utilizado para colocar documentação sobre o projeto, como rodar, como usar, como rodar testes, e qualquer outra informação que possa ser necessária para o entendimento tanto do código quanto to projeto
  • Commit: São os registros das alterações que foram realizadas num projeto.
  • Branch: Literalmente traduzindo, são galhos. Um projeto com git possui uma branch principal (main), onde ficam todos os registros de alterações, sempre que fazemos um commit e push, é para esta branch que eles vão. Porém, podemos criar branchs, ao criar uma branch criamos uma "ramificação" para poder realizar commits de forma que não afete a branch principal, e somente quando estamos "satisfeitos" com a alteração, podemos juntar esta branch com a branch principal.

Como Usar?

  • Download

Para instalar o git é necessário instala-lo na sua máquina.

Esse link do próprio site do git explica como instalar em máquinas com Linux, MacOs e Windows. Porém está em inglês.

https://git-scm.com/book/en/v2/Getting-Started-Installing-Git

  • Terminal

Comumente se usa o "terminal" para utilizar o git, onde você passa os comandos e o computador vai executa-lo. Normalmente os computadores vem com ele, talvez não sejam muito conhecidos para quem não seja da área.

Alguns comandos mais comuns

git clone : O git clone normalmente é seguido de uma URL que vai ser a do projeto que será clonado. O projeto vai estar por exemplo no github e você irá pegar uma cópia dele e rodar no seu computador.

Documentação: https://git-scm.com/docs/git-clone

git log: Mostra todo histórico de alterações que aconteceram no projeto, com autor, data e hora, código que identifica unicamente o commit e mensagem que foi colocada para aquele commit.

Documentação: https://git-scm.com/docs/git-log

git status : Vai mostrar o status atual do código no seu computador, caso tenha sido feita alguma alteração em algum arquivo é aqui que você pode saber.

Documentação: https://git-scm.com/docs/git-status

git add: Adiciona arquivos alterados e que vão ser versionados naquele momento, os arquivos ficam numa área chamada "Stage".

Documentação: https://git-scm.com/docs/git-add

git commit -m "mensagem que vai descrever quais foram as alterações realizadas no projeto" : Pega todos os arquivos que foram adicionados,

e registra as alterações que houveram. O Git cria um identificador único para cada commit e normalmente contém uma mensagem escrita pela pessoa que realizou a alteração explicando as mudanças que ocorreram.

Documentação: https://git-scm.com/docs/git-commit

git push : Irá atualizar o repositório original com as alterações que foram realizadas e registradas nos commits. Ao invés de as mudanças estarem apenas no seu computador, elas vão para o repositório.

Documentação: https://git-scm.com/docs/git-push

git pull: Atualiza o código que está em sua máquina com mudanças que ocorreram no repositório original, caso mais de uma pessoa esteja mexendo no código é preciso usar esse comando para que seu código esteja sempre atualizado com as mudanças que foram feitas por outras pessoas.

Documentação: https://git-scm.com/docs/git-pull

E vários outros.

⭐️ Criei esse processo ilustrado nessa parte Extra: Ilustrando minimamente o fluxo de versionamento

Reflexão sobre o que vem pela frente

  • Git é usado por muitas empresas que trabalham com desenvolvimento de software;
  • Lidar com Git num time em que várias pessoas mexem no código é bem diferente que do que em um projeto onde só tem você mexendo no código;
  • Só com a prática que se consegue entender melhor sobre o git, dependendo das necessidades e problemas do dia a dia de uma pessoa desenvolvedora;
  • Problemas acontecem o tempo inteiro e só com o tempo vamos conseguindo entender melhor o que fazer para resolver;
  • Trabalhando em times, o Git não é para procurar culpados. Em um time saudável, quando problemas acontecem as pessoas não devem procurar quem fez a besteira para culpa-la. Devem tentar encontrar o problema e entrar em acordo para uma possível solução. E após isso pode ser conversado como o problema poderia ter sido evitado, se houve alguma falha em algum processo;
  • Quando se está num time, começando um projeto novo é sempre bom definir acordos de como vai ser a estratégia dos commits. Se as alterações vão sempre para a branch principal, se vai ser necessário criar branch para cada feature nova, padrões de mensagem de commit.. E muuuuitas outras coisas que podem ser discutidas.

Referência

https://git-scm.com/docs

~🌟~

Bem.. é isso. 😉

Essa semana fiz um mini roadmap pra uma pessoa para iniciar os estudos com frontend, me empolguei um pouco e fiz um repositório com essa "jornada" de forma bem simples.

E com isso hoje deu vontade de postar sobre Git/Github. É bom que além de exercitar um pouco como eu explico o que são ambos de forma escrita, talvez dê pra ajudar alguém.

💡 Para quem está começando, eu indico esse Curso Udemy: Git e Github para iniciantes que tem no Udemy do Willian Justen.

Em outubro começa o Hacktoberfest, e pra quem esteja iniciando e queira participar é bom que já aprende um pouco antes sobre Git e Github para poder contribuir com projetos Open Source. 😊

Espero que possa ajudar alguém.

Até a próxima. 🤙🏽

⭐ Extra: Ilustrando minimamente o fluxo de versionamento

Fiz um fluxo que passa entre fases de:

  • clonar o projeto
  • ver o histórico
  • ver alterações novas
  • adicionar alterações para stage
  • commitando alterações
  • enviando alterações para a origem

back to posts