-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
d646ed2
commit f89709c
Showing
1 changed file
with
46 additions
and
19 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -14,22 +14,24 @@ imageBanner: 01-git-flow-com-maestria.png | |
|
||
### Git como ferramenta essencial | ||
|
||
Sendo bem simples, é uma ferramenta de versionamento de código que melhora a forma de trabalhar com projetos e aplicações, ajudando na interação entre os desenvolvedores, assim temos um repositório ou local que centraliza toda a aplicação e nele vamos ter inserções de linhas de código através do git, esse repositório é na verdade um servidor onde poderá centralizar seu trabalho, pode ser criado dentro de sua empresa, como explica a [documentação][git-configuracao-servidor], pode usar também através de serviços na internet como [bitbucket][bitbucket], [github][github] e [gitlab][gitlab]. | ||
Sendo bem simples, é uma ferramenta de versionamento de código que melhora a forma de trabalhar com projetos e aplicações, ajudando na interação entre os desenvolvedores, assim temos um repositório ou local que centraliza todos os arquivos da aplicação e nele vamos ter inserções de linhas de código através do git, esse repositório pode também ser um servidor diferente da sua máquina local que facilita a centralização do desenvolvimento, pode ser criado dentro de sua empresa, como explica a [documentação][git-configuracao-servidor], pode usar também através de serviços na internet como [bitbucket][bitbucket], [github][github] e [gitlab][gitlab]. | ||
|
||
[github]: https://github.com | ||
[bitbucket]: https://bitbucket.org | ||
[gitlab]: https://gitlab.com | ||
[git-configuracao-servidor]: https://git-scm.com/book/pt-br/v1/Git-no-Servidor-Configurando-o-Servidor | ||
|
||
Git é uma ferramenta criada e desenvolvida dentro do linux, sendo assim tem diversos tipos de comandos, em outros sistemas existe suporte só que limitado, onde é feito uma virtualização de uma base linux e nela o git será instalado e executado, linux é o sistema mais fácil para começa, mas fica a seu gosto. | ||
Git é uma ferramenta criada e desenvolvida para funcionar na plataforma linux, sendo assim tem diversos tipos de comandos, em outros sistemas existe suporte de forma limitada, onde é feito uma virtualização de uma base linux e nela o git será instalado e executado, linux como plataforma nativa é mais fácil para começa, mas fica a seu gosto. | ||
|
||
O que vamos abordar nesse post são de comandos básicos ao avançado, daí vamos do git ao git flow. As ferramentas que vamos trabalhar nesse projeto serão: | ||
O que vamos abordar nesse post são de comandos básicos ao avançado, daí vamos do git ao git flow. | ||
|
||
As ferramentas que vamos trabalhar nesse projeto serão: | ||
|
||
* Linux (Fedora ou Ubunto). | ||
* Git | ||
* Git Flow | ||
|
||
No seu linux e faça a [instalação do git][instalando-git], vá na pasta do projeto pelo terminal e daí vamos aos comandos básicos: | ||
No linux faça a [instalação do git][instalando-git], vá na pasta do projeto pelo terminal e daí vamos aos comandos básicos: | ||
|
||
[instalando-git]: https://git-scm.com/book/pt-br/v1/Primeiros-passos-Instalando-Git | ||
|
||
|
@@ -41,13 +43,14 @@ No seu linux e faça a [instalação do git][instalando-git], vá na pasta do pr | |
git commit -m “init project” | ||
``` | ||
|
||
Assim o git é iniciado no seu projeto e você cria sua primeira versão através do commit “init project”, agora vamos subir o projeto para um servidor onde virará um repositório: | ||
Assim o git é iniciado no seu projeto e você cria a primeira versão através do commit “init project”. Agora vamos subir o projeto para um servidor onde virará o repositório do projeto: | ||
|
||
```sh | ||
git remote add origin [email protected]:{usuario}/{nomeDoProjeto}.git | ||
|
||
git push -u origin master | ||
``` | ||
|
||
Usando o github como servidor, adicionamos a origem, que é uma url, podendo ser um servidor na sua empresa ou um terceiro como é nosso caso. Para baixar o projeto em outras máquinas, use o comando abaixo: | ||
|
||
```sh | ||
|
@@ -58,51 +61,67 @@ Usando o github como servidor, adicionamos a origem, que é uma url, podendo ser | |
|
||
### Git Flow no dia a dia | ||
|
||
Essa ferramenta seria como um PLUS para o git, atuando em como vamos tratar as tarefas e versões do código, tendo uma separação de pequenas tarefas a grande módulos, desde uma correção de bug a manutenção de partes inteiras de seu sistema. Git flow criada por [Vincent Driessen][vincent], agradeçam esse cara. | ||
Essa ferramenta seria como um PLUS para o git, atuando no tratamento de tarefas e suas versões de código, tendo uma separação de pequenas correções a grande módulos, desde uma correção de bug a manutenção de partes inteiras de um sistema. | ||
|
||
Git flow foi criado por [Vincent Driessen][vincent], agradeçam esse cara. | ||
|
||
[vincent]: https://nvie.com/about | ||
|
||
Como tratamos no começo do post sobre o básico de git e seus comandos, aqui vou explicar como usar e em que ocasições usar, pelo menos dentro da minha esperiência. | ||
Como tratamos no começo do post sobre o básico de git, aqui vou explicar como usar e em que ocasiões usar, pelo menos dentro da minha experiência. | ||
|
||
Para entender como funciona os tipos de abordagens do git flow, como **hotfix** e **feature**, temos que entender primeiro o que é um branch. Quando criamos um projeto e iniciamos com o git, automaticamente é criado uma branch chamada **master**, podemos enteder ela como se fosse um caminho a pecorrer e dentro dele temos as pegadas que podemos chamar de commits, esse conjunto de pegadas dentro de um caminho chamos de branch, e cada uma tem um significado, master no caso é a principal. | ||
Para entender como funciona os tipos de abordagens do git flow, como **hotfix** e **feature**, temos que entender primeiro o que é uma branch. Quando criamos um projeto e iniciamos com o git, automaticamente é criado uma branch chamada **master**, podemos enteder ela como se fosse um caminho a pecorrer e dentro dele temos as pegadas que chamamos de commits, esse conjunto de pegadas dentro de um caminho chamos de branch, e cada uma tem um significado, master no caso é a branch principal, ou nosso código final. | ||
|
||
Vamos iniciar a utilização, primeiro [instale o git flow][instalando-git-flow] no seu linux e na seguência entre no seu terminal, vá até a pasta do projeto onde o git já tenha sido iniciado e execulte o comando abaixo: | ||
Vamos iniciar a utilização da ferramenta, primeiro [instale o git flow][instalando-git-flow] no linux e na seguência entre no terminal, vá até a pasta do projeto, onde o git já tenha sido iniciado e execulte o comando abaixo: | ||
|
||
[instalando-git-flow]: https://danielkummer.github.io/git-flow-cheatsheet/index.pt_BR.html | ||
|
||
```sh | ||
git flow init | ||
``` | ||
|
||
Todas as opções que aparecem ao execultar o comando devem ser aceitas. | ||
Todas as opções que aparecem ao executar o comando de inicialização devem ser aceitas. | ||
|
||
```sh | ||
Which branch should be used for bringing forth production releases? | ||
- master | ||
Branch name for production releases: [master] | ||
Branch name for "next release" development: [develop] | ||
|
||
How to name your supporting branch prefixes? | ||
Feature branches? [feature/] | ||
Release branches? [release/] | ||
Hotfix branches? [hotfix/] | ||
Support branches? [support/] | ||
Version tag prefix? [] | ||
``` | ||
|
||
--- | ||
|
||
#### Hotfix | ||
|
||
Hotfix são mudanças pequenas como correção de bugs, os commits gerados dentro do hotfix vão direto para a branch MASTER quando finalizado, passando da versão de 1.0.0 para 1.0.1 através das tags. | ||
Hotfix são mudanças pequenas como correções de bugs, os commits gerados dentro do hotfix vão direto para a branch MASTER quando finalizado, passando da versão de 1.0.0 para 1.0.1 através das tags. | ||
|
||
```sh | ||
git flow hotfix start <1.0.0 version> | ||
``` | ||
|
||
Após execultar o comando, uma branch é criada do tipo hotfix com o nome informado, particulamente ao hotfix coloco o nome da versão na qual o bug vai ser corrigido. Na seguência faça as correções e no final crio um commit como o comando abaixo: | ||
Após executar o comando, uma branch é criada do tipo hotfix com o nome informado, particulamente ao hotfix coloco o nome da versão na qual o bug vai ser corrigido. Na seguência faça as correções e no final crio um commit como o comando abaixo: | ||
|
||
```sh | ||
git add --all | ||
|
||
git commit -m "update project" | ||
``` | ||
|
||
Commit criado, finalizo o hotfix: | ||
Depois do commit criado, finalize o hotfix: | ||
|
||
```sh | ||
git flow hotfix finish <1.0.0 version> | ||
``` | ||
|
||
Finalizando o hotfix temos uma release sendo feita de forma automática, que será explicado mais a frente o que acontece nesse processo, uma nova versão é criada e envio tudo o que voi feito até mesmo a versão para o servidor do repositório. | ||
|
||
**Observação:** sobre versões, existe um site que explica sobre [versionamento semântico][versionamento], que uma forma de organizar melhor as nomenclaturas de versões da aplicação. | ||
**Observação:** Sobre versões, existe um site que explica sobre [versionamento semântico][versionamento], que é uma forma de organizar melhor as nomenclaturas de versões para sua aplicação. | ||
|
||
[versionamento]: https://semver.org/lang/pt-BR/ | ||
|
||
|
@@ -130,7 +149,7 @@ Faça todas as inserções de código e crie todos os commits necessários para | |
git commit -m "update project" | ||
``` | ||
|
||
Finalizo a feature com o comando abaixo: | ||
Finalize a feature com o comando abaixo: | ||
|
||
```sh | ||
git flow feature finish <nome> | ||
|
@@ -142,9 +161,9 @@ Próximo passo ao finalizar a feature é criar uma release. | |
|
||
#### Release | ||
|
||
É a forma de alinhar todas as branch, nivelando todos os commits nas branch master e develop, como mostrei anteriormente ao criar um hotfix ou feature, uma branch é criada com o nome informado, ao finalizar a branch criada é destruida, só que após isso o processo é diferente para hotfix e feature. | ||
É a forma de alinhar todas as branch, nivelando todos os commits nas branch master e develop, como mostrei anteriormente ao criar um hotfix ou feature, uma branch é criada com o nome informado, ao finalizar a branch é destruida, só que após isso o processo é diferente de hotfix e feature. | ||
|
||
No hotfix, ao finaliza-lo o grupo de commits são mandadas para a MASTER e na feature é mandada para a DEVELOP, assim no primeiro caso não necessitamos de uma release, porque os dados já vão para a branch principal, na feature temos que igualar MASTER e DEVELOP, e criar uma nova versão. | ||
Ao finalizar o hotfix, os commits criados são mandados para a MASTER e DEVELOP, criando uma TAG de versionamento com o nome do hotfix e na feature os commits vai para a DEVELOP, assim necessitando a criação de uma release para alinhar as branchs e no final a criação de uma TAG de versionamento. | ||
|
||
```sh | ||
git flow release start <1.0.0 version> | ||
|
@@ -160,10 +179,18 @@ No hotfix, ao finaliza-lo o grupo de commits são mandadas para a MASTER e na fe | |
|
||
#### Finalizando | ||
|
||
Ao finalizar todo o processo, vamos enviar os dados para o servidor, nas branch **master**, **develop** e com a **tag** criada de versionamento, subindo os commits para o servidor do repositório. | ||
Ao finalizar todo o processo, vamos enviar os dados para algum servidor, nas branch **master**, **develop** e com a **tag** de versionamento, subindo os commits para as branchs especificadas no repositório. | ||
|
||
```sh | ||
git push origin master develop <1.0.0 version> | ||
``` | ||
|
||
Obrigado a todos que leram o post até aqui, deixem suas dúvidas, sugestões de correção e comentários, estarei a disposição. | ||
Obrigado a todos que lerem o post até aqui, deixem suas dúvidas, sugestões de correção e comentários, estarei a disposição. | ||
|
||
#### Links de referência: | ||
|
||
https://git-scm.com/ | ||
|
||
https://rogerdudler.github.io/git-guide/index.pt_BR.html | ||
|
||
https://danielkummer.github.io/git-flow-cheatsheet/index.pt_BR.html |