Primeiros passos em versionamento de código com Git e Github
Tags: github, beginners
Published: 2021-08-19 20:22:28

Olá!

Nesse post vou apresentar um tutorial para guiar iniciantes em seus primeiros passos com versionamento de código, utilizando o software Git e a plataforma Github.

# Introdução

Antes de fazer, precisamos conhecer alguns conceitos, para entendermos o que estamos fazendo.

## O que é versionamento de código?

Antes de mais nada, precisamos entender o que é versionamento de código. Vamos a um exemplo:

Imagine que você está escrevendo um programa e precisa editar um arquivo, porém, você quer manter uma cópia da versão anterior desse arquivo como segurança. Desse modo, você pode retomar seu arquivo da versão anterior, caso algo em sua alteração dê errado, ou por algum motivo você queira voltar para a versão anterior.

Vamos supor que o seu arquivo se chame `main.py`. Você já construiu bastante coisa, e não gostaria de perder seu progresso caso algo de errado. Por isso, você cria uma cópia desse arquivo, a chama de `main_estavel.py`, e continua editando o arquivo `main.py`.

Isso é versionamento de código :)
Você está criando versões do seu código, mesmo que não sendo da melhor forma, mas está.

## E qual o problema de versionar código criando cópias físicas para cada alteração?

Imagine que você continuou trabalhando nesse mesmo programa por mais alguns dias e foi criando várias cópias desse arquivo. Quando você olha para sua pasta, ela está assim:

![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bl3hegd6buzfvwryyvyr.png)

Alguns dias depois, você volta a mexer nesse mesmo projeto e se depara com alguns problemas:

- Você não sabe mais qual é a versão mais recente do arquivo
- Você não sabe qual a diferença entre cada versão do arquivo
- Você não sabe em qual delas está aquela alteração específica que você fez

etc.

Agora imagine isso em um sistema de grande porte, com centenas de arquivos e pastas, mantido por uma equipe de vários desenvolvedores. Alguns desses desenvolvedores já até saíram da empresa, e não se tem mais contato com eles. E imagine que todo esse sistema foi versionado dessa forma, criando cópias de segurança de cada arquivo. Complexo, não é?

## A solução para seus problemas

E se eu disser que esse problema é um problema comum? E que existe uma ferramenta que facilita a vida de pessoas desenvolvedoras ao redor do mundo, ajudando a resolver esse problema?

Essa ferramenta existe, e ela se chama ✨[Git](https://git-scm.com/)✨

# O que é Git?

De acordo com o [site oficial](https://git-scm.com/), Git é uma ferramenta de versionamento, projetada para suportar de pequenos a grandes projetos com velocidade e eficiência.

Na prática, as pessoas desenvolvedoras têm o Git instalado em seus computadores e o utilizam para versionar o código de um programa em um repositório, integrando seu trabalho com o de seus colegas de equipe.

## Plataformas baseadas em Git

É comum em equipes que utilizam Git para versionar código, que esse código seja centralizado em um local que pode ser um servidor próprio, ou uma **plataforma baseada em git**. Vale destacar que a larga maioria prefere utilizar plataformas baseadas em git, que são programas que poupam o esforço de configurar de um servidor git, além de apresentarem diversas outras funcionalidades.

Algumas plataformas baseadas em Git mais populares, utilizadas nas empresas e em demais projetos de software, são:

- [Github](https://github.com/)
- [Gitlab](https://about.gitlab.com/)
- [Bitbucket](https://bitbucket.org/product/)

Cada uma delas apresenta ferramentas que vão além do versionamento de código. Nesse tutorial iremos utilizar o Github

# Mão na massa (prática)

### Crie uma conta no github
Para utilizar o Github, é necessário criar uma conta no Github. Para isso, acesse https://github.com/, crie uma conta e realize o login.

Vídeo: https://youtu.be/rP_S7UmbXUk
No vídeo acima, realizo os seguintes passos:

1. Baixando o Git no site oficial (https://git-scm.com/)
2. Configurando o Git
```sh
git config --global user.name "Seu Nome"
git config --global user.email "exemplo@seuemail.com.br"
```
3. Criar um novo repositório remoto
4. Criar um novo repositório local
  - Clonar um repositório
  - Criar arquivos e enviá-los para o Github
  - Alterar arquivos e enviá-los para o Github
  - Baixar alterações do Github

5. Criar um repositório para um projeto já existente
  - Fazer de uma pasta um repositório
  - Configurar o repositório local para utilizar o repositório remoto
  - Enviar os arquivos para o Github
  - Enviar alterações para o Github

### Outros links
GIT Tutorial Para Iniciantes - https://www.hostinger.com.br/tutoriais/tutorial-do-git-basics-introducao
Git - Guia prático - Sem complicação - https://rogerdudler.github.io/git-guide/index.pt_BR.html
ADICIONAR À FILA
Workshop de Git e GitHub na prática - https://www.youtube.com/watch?v=Gzx45zj69h4&t=3s