<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Danilo Silva</title>
    <description>The latest articles on Forem by Danilo Silva (@danilosilvap).</description>
    <link>https://forem.com/danilosilvap</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F85065%2F8b9acee3-d756-492e-8d46-e2dd0f21cd22.jpg</url>
      <title>Forem: Danilo Silva</title>
      <link>https://forem.com/danilosilvap</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/danilosilvap"/>
    <language>en</language>
    <item>
      <title>Git Flow - Releases [pt-BR]</title>
      <dc:creator>Danilo Silva</dc:creator>
      <pubDate>Mon, 29 Aug 2022 22:18:06 +0000</pubDate>
      <link>https://forem.com/danilosilvap/git-flow-releases-pt-br-39ng</link>
      <guid>https://forem.com/danilosilvap/git-flow-releases-pt-br-39ng</guid>
      <description>&lt;p&gt;Vamos aprender para que servem as branches chamadas de releases e como aplicar o uso delas ao lançamento de uma versão no ambiente de produção.&lt;/p&gt;




&lt;h2&gt;
  
  
  Definição
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Releases&lt;/strong&gt; são &lt;em&gt;branches&lt;/em&gt; de preparação de um &lt;u&gt;novo lançamento em produção&lt;/u&gt; e elas permitem pequenas correções de bugs e preparação de metadados para publicação (número da versão, datas de construção, entre outras definições).&lt;/p&gt;

&lt;p&gt;Por convenção elas têm o prefixo &lt;strong&gt;release/&lt;/strong&gt;.&lt;br&gt;
Por exemplo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;release/0.1.0&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Importante ressaltar que as &lt;em&gt;releases&lt;/em&gt; (vamos nos acostumar a chamá-lás assim) são criadas &lt;em&gt;sempre&lt;/em&gt; à partir da &lt;em&gt;branch&lt;/em&gt; &lt;em&gt;develop&lt;/em&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;📌 O &lt;u&gt;momento ideal&lt;/u&gt; para criar uma nova &lt;em&gt;branch&lt;/em&gt; &lt;strong&gt;release&lt;/strong&gt; é quando o desenvolvimento (quase) reflete o estado desejado do novo lançamento. Pelo menos todos os recursos que são direcionados para o lançamento a ser construído devem estar presentes na &lt;em&gt;branch&lt;/em&gt; &lt;strong&gt;develop&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZS0azo9V--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://github.com/DanSilva41/personal-site-blog/raw/main/content/blog/gitflow-releases/images/animate-gitflow-release.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZS0azo9V--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://github.com/DanSilva41/personal-site-blog/raw/main/content/blog/gitflow-releases/images/animate-gitflow-release.gif" alt="Git Flow create release in action" width="358" height="534"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;📝 &lt;em&gt;Descrição da imagem:&lt;/em&gt; &lt;br&gt;&lt;br&gt;
Criação de uma feature a partir da develop &lt;em&gt;(F - Nova feature)&lt;/em&gt; e no final do desenvolvimento da funcionalidade &lt;em&gt;(C - Commit)&lt;/em&gt; é realizada a mesclagem com a develop &lt;em&gt;(M - Merge)&lt;/em&gt;. &lt;br&gt;&lt;br&gt;
Logo após é &lt;strong&gt;criada uma release&lt;/strong&gt; &lt;em&gt;(R - Nova release)&lt;/em&gt;, onde pode haver alteração do número de versão e outras definições e por fim, &lt;strong&gt;a mesclagem com a branch master&lt;/strong&gt; &lt;em&gt;(M - Merge)&lt;/em&gt; e o código atualizado volta a ser integrado também, à &lt;strong&gt;develop&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;


&lt;h2&gt;
  
  
  Releases na prática 😎
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Pré-requisitos
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Ter o GIT instalado&lt;/li&gt;
&lt;li&gt;Qualquer repositório com o fluxo do Git Flow inicializado e configurado.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  1. Criação de releases
&lt;/h3&gt;

&lt;p&gt;Para criar uma release é bem simples:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;git flow releases start &amp;lt;número-versão-proposta&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Com um comando neste padrão, &lt;strong&gt;será criada uma nova branch através da develop&lt;/strong&gt; com o prefixo &lt;em&gt;release/&lt;/em&gt;, seguido do número de versão que você inserir.&lt;br&gt;
Execute:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;git flow release start 0.1.0
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O retorno do comando é uma nova &lt;em&gt;branch&lt;/em&gt; entitulado &lt;strong&gt;release/0.1.0&lt;/strong&gt; e já é realizado &lt;em&gt;checkout&lt;/em&gt; nessa nova &lt;em&gt;branch&lt;/em&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;[saída do console]                                                       
Switched to a new branch 'release/0.1.0'

Summary of actions:
- A new branch 'release/0.1.0' was created, bases on 'develop'
- You are now on branch 'release/0.1.0'

Follow-up actions:
- Bump the version number now!
- Start commtting last-minute in preparing your release
- When done, run:

      git flow release finish '0.1.0' 
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Finalização de releases
&lt;/h3&gt;

&lt;p&gt;Após terminar o &lt;strong&gt;preparação da aplicação para ser lançada em produção&lt;/strong&gt;, a &lt;em&gt;branch&lt;/em&gt; estará pronta para ser &lt;strong&gt;finalizada&lt;/strong&gt; e &lt;strong&gt;mesclada&lt;/strong&gt; à &lt;em&gt;develop&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Então você verificou que &lt;strong&gt;está na release, não há nenhum commit a ser feito e nenhum arquivo pendente...&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;git checkout release/0.1.0
git status
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;[saída do console]                         
No ramo release/0.1.0              
nothing to commit, working tree clean
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Para finalizar uma release&lt;/strong&gt;, basta:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;git flow release finish &amp;lt;número-versão-proposta&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;O número da versão da release é opcional quando você já está presente(checkout) nela.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Execute:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;git flow release finish
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Após esta instruçao, &lt;strong&gt;aparecerá a possibilidade de escrever uma mensagem&lt;/strong&gt; que descreverá a versão lançada &lt;em&gt;(nota de versão)&lt;/em&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;
&lt;/span&gt;&lt;span class="gp"&gt;#&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="gp"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;Write a message &lt;span class="k"&gt;for &lt;/span&gt;tag:
&lt;span class="gp"&gt;#&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;0.1.0
&lt;span class="gp"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;Lines starting with &lt;span class="s1"&gt;'#'&lt;/span&gt; will be ignored.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;⚠️ A finalização de uma release marca a &lt;strong&gt;criação de uma tag&lt;/strong&gt; correspondente ao número de versão entitulado na branch release.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Depois de escrever a mensagem, a release &lt;strong&gt;será meclada(merge) à master E à develop&lt;/strong&gt;, em seguida deletada &lt;em&gt;tanto localmente como remotamente&lt;/em&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;Switched to branch 'master'
Your branch is up to date with 'origin/master'.
&lt;/span&gt;&lt;span class="gp"&gt;To &amp;lt;url-repositorito-remoto&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="go"&gt; -  [deleted]                          release/0.1.0
Deleted branch release/0.1.0 (was 713d5ac).

Summary of actions:
- Release branch 'release/0.1.0' has been merged into 'master'
- The release was tagged '0.1.0'
&lt;/span&gt;&lt;span class="gp"&gt;- Release branch 'release/0.1.0' has been locally deleted;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;it has been remotely deleted from &lt;span class="s1"&gt;'origin'&lt;/span&gt;
&lt;span class="go"&gt;- You are now on branch 'master'
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Considerações finais
&lt;/h2&gt;

&lt;p&gt;✅ &lt;em&gt;Para garantir que o repositório remoto estará atualizado baseando no status da sua estação de trabalho local, execute os comandos abaixo:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;EMPURRE (push) as atualizações de todos as branches&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;  git push --all
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;SUBA (push) a tag recentemente criada&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;  git push --tags
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pronto, para trabalhar com releases de forma simples e rápida, é isto!!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;⚡ Nesta &lt;strong&gt;seção sobre Git Flow&lt;/strong&gt; você encontrará explicações e usos práticos sobre &lt;strong&gt;&lt;em&gt;features, hotfixes, tags&lt;/em&gt;&lt;/strong&gt; e muito mais.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;strong&gt;Obrigado por chegar até aqui!&lt;/strong&gt; 😄&lt;/p&gt;

</description>
      <category>gitflow</category>
      <category>git</category>
      <category>versioncontrol</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Git Flow - Hotfixes [pt-BR]</title>
      <dc:creator>Danilo Silva</dc:creator>
      <pubDate>Mon, 29 Aug 2022 22:10:01 +0000</pubDate>
      <link>https://forem.com/danilosilvap/git-flow-hotfixes-pt-br-2d95</link>
      <guid>https://forem.com/danilosilvap/git-flow-hotfixes-pt-br-2d95</guid>
      <description>&lt;p&gt;Continuando nossa jornada sobre GitFlow vamos aprender para que servem as branches chamadas de hotfixes e como aplicar o uso deles em correções urgentes em produção. 😯&lt;/p&gt;




&lt;h2&gt;
  
  
  Definição
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Hotfixes&lt;/strong&gt; são &lt;em&gt;branches&lt;/em&gt; usados para &lt;u&gt;resolver rapidamente as mudanças necessárias na branch principal&lt;/u&gt; &lt;em&gt;(master)&lt;/em&gt;. São destinados para a realização de alguma(s) &lt;u&gt;correção(ões) crítica(s) encontrada(s) em produção&lt;/u&gt;.&lt;/p&gt;

&lt;p&gt;Por convenção elas têm o prefixo &lt;strong&gt;hotfix/&lt;/strong&gt;.&lt;br&gt;
Por exemplo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;hotfix/1.0.1&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Importante ressaltar que as &lt;em&gt;hotfixes&lt;/em&gt; (vamos nos acostumar a chamá-lás assim) são criadas &lt;em&gt;sempre&lt;/em&gt; à partir da &lt;em&gt;branch&lt;/em&gt; &lt;em&gt;master&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3zTlfif7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://github.com/DanSilva41/personal-site-blog/raw/main/content/blog/gitflow-hotfixes/images/animate-gitflow-hotfix.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3zTlfif7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://github.com/DanSilva41/personal-site-blog/raw/main/content/blog/gitflow-hotfixes/images/animate-gitflow-hotfix.gif" alt="Git Flow create hotfix in action" width="276" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;📝 &lt;em&gt;Descrição da imagem:&lt;/em&gt; &lt;br&gt;&lt;br&gt;
Após haver uma versão em produção &lt;em&gt;(master)&lt;/em&gt;, é &lt;strong&gt;criada uma hotfix&lt;/strong&gt; &lt;em&gt;(H - Nova hotfix)&lt;/em&gt; onde há correções imediatas do código a partir do branch principal e por fim, &lt;strong&gt;a mesclagem com a branch master&lt;/strong&gt; &lt;em&gt;(M - Merge)&lt;/em&gt; e o código atualizado volta a ser integrado também, à &lt;strong&gt;develop&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;


&lt;h2&gt;
  
  
  Hotfixes na prática 😎
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Pré-requisitos
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Ter o GIT instalado&lt;/li&gt;
&lt;li&gt;Qualquer repositório com o fluxo do Git Flow inicializado e configurado.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  1. Criação de hotfixes
&lt;/h3&gt;

&lt;p&gt;Para criar uma hotfix é bem simples:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;git flow hotfix start &amp;lt;número-versão-proposta-de-correção&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Com um comando neste padrão, &lt;strong&gt;será criada uma nova branch através da develop&lt;/strong&gt; com o prefixo &lt;em&gt;hotfix/&lt;/em&gt;, seguido do número de versão que você inserir.&lt;br&gt;
Execute:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;git flow hotfix start 1.0.1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O retorno do comando é uma nova &lt;em&gt;branch&lt;/em&gt; entitulado &lt;strong&gt;hotfix/1.0.1&lt;/strong&gt; e já é realizado &lt;em&gt;checkout&lt;/em&gt; nessa nova &lt;em&gt;branch&lt;/em&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;[saída do console]                                                       
Switched to a new branch 'hotfix/1.0.1'

Summary of actions:
- A new branch 'hotfix/1.0.1' was created, bases on 'master'
- You are now on branch 'hotfix/1.0.1'

Follow-up actions:
- Bump the version number now!
- Start commtting last-minute in preparing your hotfix
- When done, run:

      git flow hotfix finish '1.0.1' 
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Finalização de hotfixes
&lt;/h3&gt;

&lt;p&gt;Após finalizar as &lt;strong&gt;correções urgentes no código que está em produção&lt;/strong&gt;, a &lt;em&gt;branch&lt;/em&gt; estará pronta para ser &lt;strong&gt;finalizada&lt;/strong&gt; e &lt;strong&gt;mesclada&lt;/strong&gt; tanto na &lt;em&gt;master&lt;/em&gt; quanto na &lt;em&gt;develop&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Então você verificou que &lt;strong&gt;está na hotfix, não há nenhum commit a ser feito e nenhum arquivo pendente...&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;git checkout hotfix/1.0.1
git status
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;[saída do console]                         
No ramo hotfix/1.0.1              
nothing to commit, working tree clean
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Para finalizar uma hotfix&lt;/strong&gt;, basta:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;git flow hotfix finish &amp;lt;número-versão-proposta&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;O número da versão da hotfix é opcional quando você já está presente(checkout) nela.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Execute:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;git flow hotfix finish
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Após esta instruçao, &lt;strong&gt;aparecerá a possibilidade de escrever uma mensagem&lt;/strong&gt; que descreverá a versão lançada &lt;em&gt;(nota de versão)&lt;/em&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;
&lt;/span&gt;&lt;span class="gp"&gt;#&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="gp"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;Write a message &lt;span class="k"&gt;for &lt;/span&gt;tag:
&lt;span class="gp"&gt;#&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;1.0.1
&lt;span class="gp"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;Lines starting with &lt;span class="s1"&gt;'#'&lt;/span&gt; will be ignored.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;⚠️ A finalização de uma hotfix marca a &lt;strong&gt;criação de uma tag&lt;/strong&gt; correspondente ao número de versão entitulado na branch hotfix.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Depois de escrever a mensagem, a hotfix &lt;strong&gt;será meclada(merge) à master E à develop&lt;/strong&gt;, em seguida deletada &lt;em&gt;tanto localmente como remotamente&lt;/em&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;Switched to branch 'master'
Your branch is up to date with 'origin/master'.
&lt;/span&gt;&lt;span class="gp"&gt;To &amp;lt;url-repositorito-remoto&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="go"&gt; -  [deleted]                          hotfix/1.0.1
Deleted branch hotfix/1.0.1 (was 713d5ac).

Summary of actions:
- Hotfix branch 'hotfix/1.0.1' has been merged into 'master'
- The hotfix was tagged '1.0.1'
- Hotfix branch 'hotfix/1.0.1' has been locally deleted
- You are now on branch 'develop'
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Considerações finais
&lt;/h2&gt;

&lt;p&gt;✅ &lt;em&gt;Para garantir que o repositório remoto estará atualizado baseando no status da sua estação de trabalho local, execute os comandos abaixo:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;EMPURRE (push) as atualizações de todas as branches&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;  git push --all
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;SUBA (push) a tag recentemente criada&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;  git push --tags
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pronto, para trabalhar com hotfixes de forma simples e rápida, é isto!!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;⚡ Nesta &lt;strong&gt;seção sobre Git Flow&lt;/strong&gt; você encontrará explicações e usos práticos sobre &lt;strong&gt;&lt;em&gt;features, releases, tags&lt;/em&gt;&lt;/strong&gt; e muito mais.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;strong&gt;Obrigado por chegar até aqui!&lt;/strong&gt; 😄&lt;/p&gt;

</description>
      <category>gitflow</category>
      <category>git</category>
      <category>versioncontrol</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Git Flow - Features [pt-BR]</title>
      <dc:creator>Danilo Silva</dc:creator>
      <pubDate>Mon, 29 Aug 2022 22:07:32 +0000</pubDate>
      <link>https://forem.com/danilosilvap/git-flow-features-pt-br-254l</link>
      <guid>https://forem.com/danilosilvap/git-flow-features-pt-br-254l</guid>
      <description>&lt;p&gt;Vamos aprender para que servem as branches chamadas de features e como aplicar o uso delas ao desenvolvimento.&lt;/p&gt;




&lt;h2&gt;
  
  
  Definição
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt; são &lt;em&gt;branches&lt;/em&gt; para o desenvolvimento de uma funcionalidade específica, por convenção elas têm o prefixo &lt;strong&gt;&lt;em&gt;feature/&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;feature/cadastro-pessoa&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Importante ressaltar que as &lt;em&gt;features&lt;/em&gt; (vamos nos acostumar a chamá-lás assim) são criadas &lt;em&gt;sempre&lt;/em&gt; à partir da &lt;em&gt;branch&lt;/em&gt; &lt;em&gt;develop&lt;/em&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;📌 O &lt;u&gt;conceito de feature&lt;/u&gt; é aplicado entendendo que &lt;strong&gt;em cada uma&lt;/strong&gt; será realizado o desenvolvimento de &lt;strong&gt;uma tarefa/história/demanda&lt;/strong&gt;, sendo assim ser possível organizar o fluxo de desenvolvimento por tarefas concluídas e terem suas criações e/ou alterações sempre presentes na develop (&lt;em&gt;branch&lt;/em&gt; principal de desenvolvimento).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VsobgjGb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://github.com/DanSilva41/personal-site-blog/raw/main/content/blog/gitflow-features/images/animate-gitflow-feature.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VsobgjGb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://github.com/DanSilva41/personal-site-blog/raw/main/content/blog/gitflow-features/images/animate-gitflow-feature.gif" alt="Git Flow create feature in action" width="446" height="299"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;📝 &lt;em&gt;Descrição da imagem:&lt;/em&gt; &lt;br&gt;&lt;br&gt;
Criação de uma feature a partir da develop &lt;em&gt;(F - Nova feature)&lt;/em&gt; e no final do desenvolvimento da funcionalidade &lt;em&gt;(C - Commit)&lt;/em&gt; é realizada a mesclagem com a develop &lt;em&gt;(M - Merge)&lt;/em&gt;.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Features na prática 😎
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Pré-requisitos
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Ter o GIT instalado&lt;/li&gt;
&lt;li&gt;Qualquer repositório com o fluxo do Git Flow inicializado e configurado.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  1. Criação de features
&lt;/h3&gt;

&lt;p&gt;Para criar uma feature é bem simples:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;git flow feature start &amp;lt;nome-funcionalidade-ou-tarefa&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Com um comando neste padrão, &lt;strong&gt;será criada uma nova branch através da develop&lt;/strong&gt; com o prefixo &lt;em&gt;feature/&lt;/em&gt;, seguido do nome que você inserir.&lt;br&gt;
Execute:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;git flow feature start cadastrar-pessoa
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O retorno do comando é uma nova &lt;em&gt;branch&lt;/em&gt; entitulado &lt;strong&gt;feature/cadastrar-pessoa&lt;/strong&gt; e já é realizado &lt;em&gt;checkout&lt;/em&gt; nessa nova &lt;em&gt;branch&lt;/em&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;[saída do console]                                                       
Switched to a new branch 'feature/cadastrar-pessoa'

Summary of actions:
- A new branch 'feature/cadastrar-pessoa' was created, bases on 'develop'
- You are now on branch 'feature/cadastrar-pessoa'

Now, start committing on your feature. When done, use:
    git flow feature finish cadastrar-pessoa
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Finalização de features
&lt;/h3&gt;

&lt;p&gt;Após terminar o desenvolvimento da funcionalidade, ser feito N commits, a &lt;em&gt;branch&lt;/em&gt; estará pronta para ser finalizado e mesclado à develop.&lt;/p&gt;

&lt;p&gt;Então você verificou que &lt;strong&gt;está na feature, não há nenhum commit a ser feito e nenhum arquivo pendente...&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;git checkout feature/cadastrar-pessoa
git status
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;[saída do console]                         
No ramo feature/cadastrar-pessoa                  
nothing to commit, working tree clean
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Para finalizar uma feature&lt;/strong&gt;, basta:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;git flow feature finish &amp;lt;nome-funcionalidade-ou-tarefa&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;O nome da feature é opcional quando você já está presente(checkout) nela.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Execute:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;git flow feature finish
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Após esta instruçao, a &lt;strong&gt;feature será meclada(merge) à develop&lt;/strong&gt; e, deletada &lt;em&gt;tanto localmente como remotamente&lt;/em&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;Switched to branch 'develop'
Already up to date.
Deleted branch feature/cadastrar-pessoa (was 713d5ac).

Summary of actions:
- The feature branch 'feature/cadastrar-pessoa' was merged into 'develop'
- Feature branch 'feature/cadastrar-pessoa' has been locally deleted
- You are now on branch 'develop'
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pronto, para trabalhar com features de forma simples e rápida, é isto!!&lt;/p&gt;




&lt;h2&gt;
  
  
  Considerações finais
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;Resumo de comandos&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Criar nova feature&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;  git flow feature start &amp;lt;nome-funcionalidade-ou-tarefa&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Finalizar feature&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;  git flow feature finish
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;⚡ Nesta &lt;strong&gt;seção sobre Git Flow&lt;/strong&gt; você encontrará explicações e usos práticos sobre &lt;strong&gt;&lt;em&gt;releases, hotfixes, tags&lt;/em&gt;&lt;/strong&gt; e muito mais.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;strong&gt;Obrigado por chegar até aqui!&lt;/strong&gt; 😄&lt;/p&gt;

</description>
      <category>gitflow</category>
      <category>git</category>
      <category>versioncontrol</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Git Flow - Configuração inicial [pt-BR]</title>
      <dc:creator>Danilo Silva</dc:creator>
      <pubDate>Mon, 29 Aug 2022 22:03:49 +0000</pubDate>
      <link>https://forem.com/danilosilvap/git-flow-configuracao-inicial-pt-br-ac0</link>
      <guid>https://forem.com/danilosilvap/git-flow-configuracao-inicial-pt-br-ac0</guid>
      <description>&lt;p&gt;De forma simples e fácil, vamos aprender a configurar qualquer repositório GIT para utilizar o fluxo do Git Flow na prática! Vamos lá?&lt;/p&gt;




&lt;h2&gt;
  
  
  Resumo
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Iremos &lt;strong&gt;criar uma pasta&lt;/strong&gt; em nosso computador (em qualquer diretório que preferir)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inicializaremos um repositório GIT&lt;/strong&gt; (partirei do pressuposto que você também já sabe como funciona um repositório)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Aplicaremos as configurações&lt;/strong&gt; do fluxo &lt;em&gt;Git Flow&lt;/em&gt; neste repositório.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Mão na massa 😄
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Pré-requisitos
&lt;/h3&gt;

&lt;p&gt;O &lt;strong&gt;Git Flow&lt;/strong&gt; não é uma ferramenta padrão do &lt;strong&gt;Git&lt;/strong&gt;, e por esse motivo precisamos antes de tudo realizar a instalação do plugin.&lt;/p&gt;

&lt;p&gt;No Github tem o &lt;a href="https://github.com/nvie/gitflow/wiki/Installation"&gt;passo a passo&lt;/a&gt; de como instalar em todos os ambientes.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Criando pasta
&lt;/h3&gt;

&lt;p&gt;No diretório desejado, execute os comandos:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;mkdir app-gitflow        // criação de pasta
cd app-gitflow           // acessando pasta criada
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Inicializando um repositório git
&lt;/h3&gt;

&lt;p&gt;Dentro da pasta criada, execute o comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;git init
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Configurando o fluxo Git Flow
&lt;/h3&gt;

&lt;p&gt;Por padrão, o Git Flow não vem configurado em um repositório GIT, logo vamos executar o &lt;strong&gt;comando principal&lt;/strong&gt; e em seguida, você vai perceber o quão simples é configurar e ver este fluxo apto para uso.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;git flow init
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ao executar este comando é iniciada um pequena série de definições feitas através do console.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5t3wK9Bj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://github.com/DanSilva41/personal-site-blog/raw/main/content/blog/gitflow-configuration/images/git-flow-init.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5t3wK9Bj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://github.com/DanSilva41/personal-site-blog/raw/main/content/blog/gitflow-configuration/images/git-flow-init.gif" alt="Git Flow init in action" width="538" height="362"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Vamos entender cada item configurado, &lt;strong&gt;se liga&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Primeiro, a definição das branches principais&lt;/span&gt;
&lt;span class="nx"&gt;No&lt;/span&gt; &lt;span class="nx"&gt;branches&lt;/span&gt; &lt;span class="nx"&gt;exist&lt;/span&gt; &lt;span class="nx"&gt;yet&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt; &lt;span class="nx"&gt;Base&lt;/span&gt; &lt;span class="nx"&gt;branches&lt;/span&gt; &lt;span class="nx"&gt;must&lt;/span&gt; &lt;span class="nx"&gt;be&lt;/span&gt; &lt;span class="nx"&gt;created&lt;/span&gt; &lt;span class="nx"&gt;now&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;

&lt;span class="c1"&gt;// 1. Defina qual o nome da branch que armazenará o código de produção&lt;/span&gt;
&lt;span class="nx"&gt;Branch&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="nx"&gt;production&lt;/span&gt; &lt;span class="nx"&gt;releases&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;master&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; 
&lt;span class="c1"&gt;// Por padrão, o GIT sugere que seja: master&lt;/span&gt;
&lt;span class="c1"&gt;// Basta apertar ENTER&lt;/span&gt;

&lt;span class="c1"&gt;// 2. Defina qual o nome da branch de desenvolvimento principal&lt;/span&gt;
&lt;span class="nx"&gt;Branch&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;next release&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;development&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;develop&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="c1"&gt;// Por padrão, o GIT sugere que seja: develop&lt;/span&gt;
&lt;span class="c1"&gt;// Basta apertar ENTER&lt;/span&gt;

&lt;span class="c1"&gt;// Agora, a definição das branches de apoio&lt;/span&gt;
&lt;span class="nx"&gt;How&lt;/span&gt; &lt;span class="nx"&gt;to&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="nx"&gt;your&lt;/span&gt; &lt;span class="nx"&gt;supporting&lt;/span&gt; &lt;span class="nx"&gt;branch&lt;/span&gt; &lt;span class="nx"&gt;prefixes&lt;/span&gt;&lt;span class="p"&gt;?&lt;/span&gt;

&lt;span class="c1"&gt;// 3. Defina o prefixo das branches features&lt;/span&gt;
&lt;span class="nx"&gt;Feature&lt;/span&gt; &lt;span class="nx"&gt;branches&lt;/span&gt;&lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;feature&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="c1"&gt;// Por padrão, o GIT sugere que seja: feature/&lt;/span&gt;
&lt;span class="c1"&gt;// Basta apertar ENTER&lt;/span&gt;

&lt;span class="c1"&gt;// 4. Defina o prefixo das branches bugfixs&lt;/span&gt;
&lt;span class="nx"&gt;Bugfix&lt;/span&gt; &lt;span class="nx"&gt;branches&lt;/span&gt;&lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;bugfix&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="c1"&gt;// Por padrão, o GIT sugere que seja: bugfix/&lt;/span&gt;
&lt;span class="c1"&gt;// Basta apertar ENTER&lt;/span&gt;

&lt;span class="c1"&gt;// 5. Defina o prefixo das branches releases&lt;/span&gt;
&lt;span class="nx"&gt;Release&lt;/span&gt; &lt;span class="nx"&gt;branches&lt;/span&gt;&lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;release&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="c1"&gt;// Por padrão, o GIT sugere que seja: release/&lt;/span&gt;
&lt;span class="c1"&gt;// Basta apertar ENTER&lt;/span&gt;

&lt;span class="c1"&gt;// 6. Defina o prefixo das branches hotfixs&lt;/span&gt;
&lt;span class="nx"&gt;Hotfix&lt;/span&gt; &lt;span class="nx"&gt;branches&lt;/span&gt;&lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;hotfix&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="c1"&gt;// Por padrão, o GIT sugere que seja: hotfix/&lt;/span&gt;
&lt;span class="c1"&gt;// Basta apertar ENTER&lt;/span&gt;

&lt;span class="c1"&gt;// 6. Defina o prefixo das branches supports&lt;/span&gt;
&lt;span class="nx"&gt;Support&lt;/span&gt; &lt;span class="nx"&gt;branches&lt;/span&gt;&lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;support&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="c1"&gt;// Por padrão, o GIT sugere que seja: support/&lt;/span&gt;
&lt;span class="c1"&gt;// Basta apertar ENTER&lt;/span&gt;

&lt;span class="c1"&gt;// 7. Defina o prefixo para cada versão gerada através de tags&lt;/span&gt;
&lt;span class="nx"&gt;Version&lt;/span&gt; &lt;span class="nx"&gt;tag&lt;/span&gt; &lt;span class="nx"&gt;prefix&lt;/span&gt;&lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
&lt;span class="c1"&gt;// Basta apertar ENTER&lt;/span&gt;

&lt;span class="c1"&gt;// 7. Indique a pasta onde ficará os scripts(ganchos) personalizados do repositório&lt;/span&gt;
&lt;span class="nx"&gt;Hooks&lt;/span&gt; &lt;span class="nx"&gt;and&lt;/span&gt; &lt;span class="nx"&gt;filters&lt;/span&gt; &lt;span class="nx"&gt;directory&lt;/span&gt;&lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;diretorio&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="sr"&gt;/app-gitflow/&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;git&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;hooks&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="c1"&gt;// Por padrão, o GIT sugere a configuração padrão, alocada dentro da própria pasta&lt;/span&gt;
&lt;span class="c1"&gt;// Basta apertar ENTER&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;✅ Pronto, simples e rápido, já temos um modelo para &lt;strong&gt;aplicarmos em qualquer repositório&lt;/strong&gt; durante o desenvolvimento de qualquer projeto ou aplicação!&lt;/p&gt;

&lt;p&gt;⚡️ &lt;em&gt;Dica rápida&lt;/em&gt; &lt;br&gt;&lt;br&gt;
Você deve ter percebido que não precisamos configurar nenhum prefixo ao executar o &lt;strong&gt;comando principal&lt;/strong&gt;, bastou &lt;strong&gt;ENTER&lt;/strong&gt; a cada linha.&lt;br&gt;
Para pular essas configurações e configurar o fluxo de forma padrão, execute o comando principal com a flag &lt;strong&gt;-d&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;git flow init -d
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Considerações finais
&lt;/h2&gt;

&lt;p&gt;Ainda nesta &lt;em&gt;série sobre Git Flow&lt;/em&gt; você encontrará explicações e usos práticos de cada conjuntos de &lt;em&gt;branches&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Recomendo que você explore cada uma delas pois, logo, você vai sentir que está &lt;em&gt;dominado o ciclo de desenvolvimento de uma aplicação, de ponta-a-ponta, e ter total capacidade de ajudar sua equipe de  desenvolvimento!&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Obrigado por chegar até aqui!&lt;/strong&gt; 😄&lt;/p&gt;

</description>
      <category>gitflow</category>
      <category>git</category>
      <category>versioncontrol</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Git Flow - "Era uma vez..." [pt-BR]</title>
      <dc:creator>Danilo Silva</dc:creator>
      <pubDate>Mon, 29 Aug 2022 21:58:48 +0000</pubDate>
      <link>https://forem.com/danilosilvap/git-flow-era-uma-vez-pt-br-4e92</link>
      <guid>https://forem.com/danilosilvap/git-flow-era-uma-vez-pt-br-4e92</guid>
      <description>&lt;p&gt;Vamos aprender sobre este fluxo que tem gerado sucesso em muitos times de desenvolvimento de software!&lt;/p&gt;




&lt;h2&gt;
  
  
  Teoria
&lt;/h2&gt;

&lt;p&gt;É muito comum vermos desenvolvedores utilizando somente uma &lt;em&gt;branch&lt;/em&gt; para fazer commits em projetos pessoais. Isto não é errado, é muito tranquilo de se controlar tudo em uma &lt;em&gt;branch&lt;/em&gt; quando se está desenvolvendo sozinho, mas o cenário muda bastante quando temos que interagir com mais desenvolvedores, seja em um projeto de código aberto(opensource) ou privado.&lt;/p&gt;

&lt;p&gt;Nessas horas é importante que se tenha total controle do que está sendo produzido por sua equipe, onde, ao mesmo tempo são corrigidas falhas, implementadas novas funcionalidades e o ideal é ter o seu código de produção com total funcionamento entregue ao cliente.&lt;/p&gt;

&lt;p&gt;É aí que o &lt;a href="https://nvie.com/posts/a-successful-git-branching-model/"&gt;Fluxo Git Flow&lt;/a&gt; nos ajuda, olhe a imagem abaixo para entender melhor:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9IRwFizQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/DanSilva41/personal-site-blog/main/content/blog/gitflow-theory/images/git-flow-in-action.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9IRwFizQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/DanSilva41/personal-site-blog/main/content/blog/gitflow-theory/images/git-flow-in-action.png" alt="Git Flow In Action" width="875" height="1159"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O &lt;strong&gt;Git Flow&lt;/strong&gt; é um modelo de conjunto de instruções que você e/ou equipes de desenvolvimento podem seguir para organizar as &lt;em&gt;branches&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;É importante ressaltar que o Git Flow são &lt;strong&gt;orientações&lt;/strong&gt; e &lt;strong&gt;não regras&lt;/strong&gt;, ou seja, você não precisa seguir 100% ao pé da letra, acho bacana e até saudável que pensemos em adaptações de acordo com a equipe de desenvolvimento e o modelo de trabalho.&lt;/p&gt;

&lt;h3&gt;
  
  
  As branches principais
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;master&lt;/strong&gt; deve ser a principal &lt;em&gt;branch&lt;/em&gt; onde o código-fonte sempre reflete um estado pronto que, quando versionado, será publicado em produção.&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;develop&lt;/strong&gt; sempre deve conter o código mais atual, ou seja, o que está sendo desenvolvido no momento. Isto é possível fazendo com que as &lt;em&gt;branches&lt;/em&gt; de features sejam criados através dela e no fim de seu ciclo, todo o código produzido seja mesclado &lt;em&gt;(merge)&lt;/em&gt; na &lt;strong&gt;develop&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Quando o código-fonte na &lt;strong&gt;develop&lt;/strong&gt; atinge um ponto estável e está pronto para ser liberado, todas as alterações devem ser mescladas &lt;em&gt;(merge)&lt;/em&gt; na &lt;strong&gt;master&lt;/strong&gt; de alguma forma e marcadas com um número de release &lt;em&gt;(tag)&lt;/em&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 Iremos nos aprofundar mais detalhadamente sobre os conceitos de branches e tags nos próximos posts.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  As branches de apoio
&lt;/h3&gt;

&lt;p&gt;Junto as principais &lt;em&gt;branches&lt;/em&gt;, master e develop, há diversas &lt;em&gt;branches&lt;/em&gt; de apoio para &lt;em&gt;auxiliar&lt;/em&gt; o desenvolvimento paralelo entre os membros da equipe, &lt;em&gt;facilitar&lt;/em&gt; o rastreamento de recursos, &lt;em&gt;preparar&lt;/em&gt; releases de produção e ajudar a &lt;em&gt;corrigir instantaneamente problemas de produção (hotfix)&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ou seja:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;feature&lt;/strong&gt;: para novas implementações&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;release&lt;/strong&gt;: para finalizar releases e tags&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;hotfix&lt;/strong&gt;: para resolver problemas críticos em produção que não podem esperar uma nova release&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;⚡ Para saber como configurar o fluxo do Git Flow em um repositório e como criar as branches de apoio de forma dinâmica, navegue pelas publicações com a &lt;em&gt;tag&lt;/em&gt; &lt;strong&gt;gitflow&lt;/strong&gt;. &lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;strong&gt;Obrigado por chegar até aqui!&lt;/strong&gt; 😄&lt;/p&gt;

</description>
      <category>gitflow</category>
      <category>git</category>
      <category>versioncontrol</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
