Hacks do Github - Branches
Tags: braziliandevs, github, beginners, programming
Published: 2022-06-09 15:31:19

![Branches](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9q54g9184n31ewb613ox.png)

O Github é cheio de funcionalidades e o mais utilizado isso vocês já sabem... mas dessa vez venho trazer "hacks" da plataforma que vão otimizar e melhorar sua experiência.

⚠️ **Importante:** Os prints que serão exibidos para exemplificar podem estar diferentes da interface do seu GitHub, por que sou muito adepto a extensões que melhoram a usabilidade e que ajudam no meu dia a dia. Partindo desse ponto peço que dê uma olhada [nesse artigo](https://dev.to/jhonywalkeer/extensoes-para-navegador-turbinando-sua-experiencia-no-github-538) antes 

Quando você cria uma nova feature para o seu projeto, normalmente você também cria uma nova branch, e depois faz merge com a branch principal. Depois de um tempo, fica notória a necessidade de comparar as alterações que foram feitas.Na página do seu repositório, você pode ver todas as branches clicando no link Branches:

![Github Branch](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6sx20s3n96mf2wz1ml2w.png)

Ao clicar nessa opção temos a lista com todas as branches do projeto. Por aqui, conseguimos acessar a página de comparação de branches ou deletar uma branch apenas com o clique de um botão.

![List Branches](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7p1by60d42ainkrcab4j.png)
 

## Comparando branches
 
Para comparar alterações feitas em branches diferentes, você pode fazer direto pela URL, acessando:

```
https://github.com/{user}/{repo}/compare/{range}
```
Onde, no `{range}`, você troca pela branch principal, seguida de 3 pontos, e logo após, o nome da branch que você quer comparar. Por exemplo: nesse caso, quero ver quais alterações existem na branch `repeat`, que ainda não tem na `master`:

```
https://github.com/{user}/{repo}/compare/master...repeat
```
![Repeat](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n6hx62fzqnwjldkp28e2.png)

Fazendo isso, se for possível, eu já vou ver um botão de **Pull Request**, para que eu possa enviar a sugestão de fazer merge direto na `master`. Consigo ver também os **commits** de quem fez as alterações e quais arquivos foram alterados

## Comparando a mesma branch por data

Também é possível comparar a mesma branch, mas com uma data anterior:

```
https://github.com/{user}/{repo}/compare/master@{30.days.ago}...master
```

![30 days](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dstk6bsu5cuafabi6re1.png)
 
Acessando a URL acima, conseguimos ver quais foram as alterações que ocorreram nos últimos 30 dias na branch `master`! Isso pode ser útil para você preencher o seu `changelog`, pois dá pra saber todas as mudanças feitas nesse período de tempo

Podemos usar também com o formato de data - `YYYY-DD-MM`:

```
https://github.com/{user}/{repo}/compare/master@{2014.25.12}...master
```

## Visualizações diff e patch

Você ainda pode usar as comparações nos formatos `diff` e `patch`, colocando essa “extensão” no final da URL:

```
https://github.com/{user}/{repo}/compare/master@{2014.25.12}...master.diff
https://github.com/{user}/{repo}/compare/master@{2014.25.12}...master.patch
```
## Comparando branches de repositórios forkados

Agora, você forkou um projeto, criou uma nova branch e desenvolveu uma nova feature, ou arrumou um bug. Como fazer a comparação com o repositório original?

```
https://github.com/{user}/{repo}/compare/{user-original-repo}:{branch}...{own-branch}
```

Onde:

- `{user-original-repo}` é o usuário do repositório original e `{branch}` que vem logo após ele, é a branch no repositório original;
- `{own-branch}` é a branch no seu repositório, que você quer comparar.

Claro que, para todas essas ações, você tem botões na interface do Github que facilitam a navegação. Mas, em alguns momentos, é muito mais fácil digitar direto na URL do que clicar em um botão.

Fontes onde pesquisei esse conteúdo:

- https://docs.github.com/pt/get-started