Segredos do Github - Branches

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.

Existe uma forma fácil de fazer isso com o Github? Adivinha? ;)

Na página do seu repositório, você pode ver todas as branches clicando no link Branches:

Clicando nesse link, você tem a lista com todas as branches do seu projeto. Por aqui, você consegue acessar a página de comparação de branches ou deletar uma branch com o clique de um botão.

Comparando branches

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

1
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:

1
https://github.com/{user}/{repo}/compare/master...repeat

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 marge direto na master. Consigo ver também os commits de quem fez as alterações e quais arquivos foram alterados :D

Comparando a mesma branch por data

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

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

Acessando a URL acima, eu consigo 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 que foram feitas nesse período de tempo :D

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

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

Agora eu sei tudo que foi alterado desde o natal de 2014 :D

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:

1
2
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?

Simples! Só fazer assim:

1
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.

No caso do Odin, que eu forkei, eu quero comparar a minha master, com a master do projeto original. Eu posso fazer assim:

1
https://github.com/fdaciuk/odin/compare/wpbrasil:master...master

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 xD

Era isso! Até a próxima :D

Sobre o #1postperday: https://blog.da2k.com.br/2014/12/31/um-post-por-dia/

Tem alguma sugestão para os próximos posts do #1postperday? Deixe ela aqui: https://github.com/fdaciuk/fdaciuk.github.io/issues/1