<?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>DEV Community: Philipe Cairon</title>
    <description>The latest articles on DEV Community by Philipe Cairon (@magominimalista).</description>
    <link>https://dev.to/magominimalista</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%2F908514%2F2f7ff200-afb9-4b49-a94e-b4f492a59262.jpeg</url>
      <title>DEV Community: Philipe Cairon</title>
      <link>https://dev.to/magominimalista</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/magominimalista"/>
    <language>en</language>
    <item>
      <title>Fluxo GIT descomplicado: Parte 2</title>
      <dc:creator>Philipe Cairon</dc:creator>
      <pubDate>Tue, 16 Aug 2022 22:09:00 +0000</pubDate>
      <link>https://dev.to/magominimalista/fluxo-git-descomplicado-parte-2-3dn1</link>
      <guid>https://dev.to/magominimalista/fluxo-git-descomplicado-parte-2-3dn1</guid>
      <description>&lt;p&gt;E se você caiu aqui de paraquedas pode conferir a parte 1 deste artigo aqui: &lt;a href="https://dev.to/magominimalista/fluxo-git-descomplicado-parte-1-pn8"&gt;https://dev.to/magominimalista/fluxo-git-descomplicado-parte-1-pn8&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Dando continuidade a nossos estudos vou falar um pouco mais sobre git para cobrir algumas partes que ficaram a desejar no post anterior. Vamos conversar um pouco mais sobre o assunto e no final eu lanço uma sessão de extras com alguns comandos não abordados. &lt;/p&gt;




&lt;h3&gt;
  
  
  Histórico da master
&lt;/h3&gt;

&lt;p&gt;O histórico da master é muito importante, para mostrar o passo a passo dos eventos. Se tem outras pessoas trabalhando conosco no projeto temos que ter alguns cuidados quando mudamos o histórico de eventos do nosso git pela master. Eu poderia lançar um:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git push --force
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Esse comando seria suficiente para ressincronizar os históricos no nosso servidor. Mas se alguém além de você estiver trabalhando na master a atualização feita por essa pessoa vai se perder. O ideal seria fazer um:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git push --force-with-lease
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O próprio git vai avisar a você se tiver um novo commit para que você baixe a nova atualização antes de rodar novamente o comando.&lt;/p&gt;




&lt;h3&gt;
  
  
  Deixando os commits úteis no seu histórico
&lt;/h3&gt;

&lt;p&gt;Lembrando que tem commits como WIP alguma coisas que não são relevantes para o histórico, apenas apontam um status da aplicação que você estava salvando pra continuar depois etc.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HawJUmba--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/Sf8vhMh/1cc94cd6-fde9-43d1-a51e-fb67b29f03be.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HawJUmba--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/Sf8vhMh/1cc94cd6-fde9-43d1-a51e-fb67b29f03be.jpg" alt="'Exibindo como está o histórico git'" width="691" height="156"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Vamos melhorar nossa histórico removendo os commits indesejados.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git rebase -i master
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--d4VCfoKm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/vPJtQLq/fdabfb6d-91ca-4e34-aaf4-69ce645e4571.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--d4VCfoKm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/vPJtQLq/fdabfb6d-91ca-4e34-aaf4-69ce645e4571.jpg" alt="'Exibindo como fica depois do comando'" width="559" height="548"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Irá aparecer esse documento você digita &lt;code&gt;a&lt;/code&gt; para editar e &lt;code&gt;esq&lt;/code&gt; + &lt;code&gt;:wq&lt;/code&gt; para salvar e sair. Para alterar e deixar uma mensagem diferente você pode trocar onde tem 'pick' por 'squash' ou se preferir não digitar mensagem alguma troque apenas por 'fixup'.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hF65XOgL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/SJ058Mt/804caa1e-6223-40d7-907c-8b23a2bbbba0.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hF65XOgL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/SJ058Mt/804caa1e-6223-40d7-907c-8b23a2bbbba0.jpg" alt="'Como teria sido o squash'" width="880" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ybIij-il--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/2sDgJ8p/08894786-7e79-415b-b858-0ae08854db3f.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ybIij-il--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/2sDgJ8p/08894786-7e79-415b-b858-0ae08854db3f.jpg" alt="'Como teria sido o fixup'" width="880" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--56CP2SKP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/6tsbwMv/09947142-df4a-4abd-9d76-c2380ea05101.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--56CP2SKP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/6tsbwMv/09947142-df4a-4abd-9d76-c2380ea05101.jpg" alt="'Após as alterações digita a mensgem'" width="595" height="473"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--K_E7KIJU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/0VBq14G/5b054518-2a2d-41da-8a63-1893dbb67038.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--K_E7KIJU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/0VBq14G/5b054518-2a2d-41da-8a63-1893dbb67038.jpg" alt="'Finaliza'" width="880" height="229"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No github também tem essa opção quando as alterações realizada não possuem um impacto no histórico é possível incluir no fazer um merge no último commit sem precisar declarar na master caso não seja relevante.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--H8JD9ozD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/ftBvQ0h/37e3aef9-e1be-4d88-9d08-b3216e0ccb0d.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--H8JD9ozD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/ftBvQ0h/37e3aef9-e1be-4d88-9d08-b3216e0ccb0d.jpg" alt="'Mostra como está ficando'" width="880" height="562"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  Fluxo de trabalho
&lt;/h3&gt;

&lt;p&gt;Criar branches com significados para trabalhar em uma parte separada do código e depois fazer o &lt;code&gt;merge&lt;/code&gt; com &lt;code&gt;rebase&lt;/code&gt; é muito melhor pois evita conflito no código quando se trabalha com outros. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YUxDDvmy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/0h5jn80/Whats-App-Image-2022-08-16-at-11-45-49.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YUxDDvmy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/0h5jn80/Whats-App-Image-2022-08-16-at-11-45-49.jpg" alt="'Fluxo de trabalho'" width="684" height="543"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;E para nos ajudar com essa tarefas sem precisar ter que ficar decorando os comandos temos uma ferramenta que roda em todos os sistemas operacionais que é o cheatshit do git flow. Você pode conferir a verão em português em: &lt;a href="https://danielkummer.github.io/git-flow-cheatsheet/index.pt_BR.html"&gt;https://danielkummer.github.io/git-flow-cheatsheet/index.pt_BR.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Separei algumas imagens, tamanho é a utilidade e facilidade desta ferramenta&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9zPH7r7l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/zskZcNj/Captura-de-tela-2022-08-16-115711.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9zPH7r7l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/zskZcNj/Captura-de-tela-2022-08-16-115711.png" alt="'Exemplo 1'" width="786" height="457"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KJZwdRzP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/B31c4Qf/Captura-de-tela-2022-08-16-115746.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KJZwdRzP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/B31c4Qf/Captura-de-tela-2022-08-16-115746.png" alt="'Exemplo 2'" width="785" height="476"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  Refazer o código
&lt;/h3&gt;

&lt;p&gt;Usar o &lt;code&gt;git rebase&lt;/code&gt; (rebobina seus commits e coloca no topo da sua árvore de commits) e &lt;code&gt;git reset --hard&lt;/code&gt; (literalmente apaga seu último commit) e pode acontecer de você se perder um pouco, então o ideal mesmo é fazer assim:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git reflog
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para ver o que tem acontecido&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git reset HEAD@[{1}
git restore .
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Reseta para um estado anterior e depois restaura o código. Para ver as alterações novamente dá um &lt;code&gt;git reflog&lt;/code&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  Evitando os WIP(s) aqueles passos que não é preciso entrar no nosso histórico de gitlog
&lt;/h3&gt;

&lt;p&gt;Podemos usar o&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git stash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para salva o WIP (Work in progress). Depois dar um&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git stash list
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para visualizar a lista de stashs criada. Para contextualizar melhor, é uma boa prática anotar uma descrição para seus stashes, usando o&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git stash save "mensagem"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Por padrão, &lt;code&gt;git stash pop&lt;/code&gt; vai reaplicar o stash criado mais há pouco tempo: &lt;code&gt;stash@{0}&lt;/code&gt;. Para visualizar as diferenças entre os stashs vamos usar:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git stash show -p
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O menos -p é pra uma visualização completa. Para aplicar um stach&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git stash pop stash@{2}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Esse 2 ai é o indice do stash. Para passar um stach para um novo branch&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git stash branch add-stylesheet stash@{1} 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para limpar um stach específico&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git stash drop stash@{1} 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ou para limpar todos os stachs&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git stash clear
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Nota: Vou deixar um link para ter uma visão melhor do git stash: &lt;a href="https://www.atlassian.com/br/git/tutorials/saving-changes/git-stash"&gt;https://www.atlassian.com/br/git/tutorials/saving-changes/git-stash&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  Extra
&lt;/h3&gt;

&lt;p&gt;Estamos chegando ao final desse tutorial mas temos muita coisa ainda que deixamos passar. São elas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;git diff&lt;/code&gt;- &lt;a href="https://www.atlassian.com/br/git/tutorials/saving-changes/git-diff"&gt;https://www.atlassian.com/br/git/tutorials/saving-changes/git-diff&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;git config&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git config --global user.name "Fulano de Tal"
$ git config --global user.email fulanodetal@exemplo.br
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Criando tags:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git tag -a v1.1.0
git push origin v1.1.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Um brinde para você treinar o seu git e visualizar a forma como ele trabalha sem precisar criar um repositório:
&lt;a href="https://git-school.github.io/visualizing-git/#free"&gt;https://git-school.github.io/visualizing-git/#free&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Aproveitei para testar a ferramenta, um print com os comandos que usei, preferi iniciar pela opção Chery Pick.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QBMGNv1P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/5vFKpH1/8992c740-4bdc-4874-8146-8ccc4f5fb71e.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QBMGNv1P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/5vFKpH1/8992c740-4bdc-4874-8146-8ccc4f5fb71e.jpg" alt="'Exemplo'" width="880" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Gente eu só tenho a agradecer por ter terminado esse estudo, acho que o git é muito mais que isso, tem coisas aqui que não foram abordados ainda, mas esse conteúdo já te permite trabalhar de forma profissional com ele.&lt;/p&gt;

&lt;p&gt;Espero que tenham gostado. &lt;/p&gt;

&lt;p&gt;Att,&lt;/p&gt;

&lt;h4&gt;
  
  
  Sobre o autor:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Philipe Cairon (Mago Minimalista)&lt;/li&gt;
&lt;li&gt;Full Stack Web developer&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Me encontre no Linktree: &lt;a href="https://linktr.ee/magominimalista"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Qfz5Cpa0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://img.shields.io/badge/linktree-39E09B%3Fstyle%3Dfor-the-badge%26logo%3Dlinktree%26logoColor%3Dwhite" alt="'Linktree'" width="110" height="28"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>git</category>
      <category>github</category>
      <category>programming</category>
    </item>
    <item>
      <title>Fluxo GIT descomplicado: Parte 1</title>
      <dc:creator>Philipe Cairon</dc:creator>
      <pubDate>Tue, 16 Aug 2022 06:50:00 +0000</pubDate>
      <link>https://dev.to/magominimalista/fluxo-git-descomplicado-parte-1-pn8</link>
      <guid>https://dev.to/magominimalista/fluxo-git-descomplicado-parte-1-pn8</guid>
      <description>&lt;h3&gt;
  
  
  Esse tutorial é 100% prático.
&lt;/h3&gt;

&lt;p&gt;Suponho que você já tenha o git instalado em seu ambiente de desenvolvimento. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Porque parte 1: Nessa parte vamos aprender tudo que precisamos saber para trabalhar com o git no nosso dia a dia. &lt;/p&gt;

&lt;p&gt;Na parte 2: Vamos ver alguma peculiaridades a mais do git;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  Fluxo 1: Local
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Ok, vamos começar o nosso repositório com o
&lt;/li&gt;
&lt;/ul&gt;

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

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Já trabalhamos na base do nosso projeto então vamos saber como as coisas estão
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Ok! Vamos adicionar isso levando essas mudanças para o nosso repositório local:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git add .
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Esse ponto representa tudo que foi listado, você pode passar apenas um repositório ou arquivo substituindo esse ponto pelo nome da pasta ou arquivo, mas eu não indico isso;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Agora vamos commitar, dizer ao git para criar uma chave para essas adições que estamos fazendo os chamados blobs são um ponto de referência para aquelas alterações do momento
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git commit -a -m "Status inicial da aplicação"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Quer ver o que criamos?
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;tree .git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;vamos ver uma arvore com as chaves dos nossos commits. É interessante depois de pelo menos 2 commits para observar essas mudanças;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Precisa chegar os commits realizados?
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Fluxo 2: Levando para um servidor
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Se você tá levando para o github ou bitbucket as configurações são parecidas então:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git branch -M main
git remote add origin https://github.com/seuusuario/seurepositório.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Adicionei um repositório remoto e depois subi com as atualizações através desse comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git push -u origin main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Em resumo suba uma cópia do branch origin para o main;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Agora se você adicionar ou mudar algum arquivo, repita o FLUXO 1 e depois
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git push
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Se alguém da sua equipe pegou o projeto em outra máquina e atualizou ele você vai usar o comando abaixo para baixar essas atualizações:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git pull
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ou&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git pull --rabase
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Lembrando que o git pull nada mais é que um &lt;code&gt;git fetch origin&lt;/code&gt; com um &lt;code&gt;git merge origin/master&lt;/code&gt;. Se você usar o &lt;code&gt;git pull&lt;/code&gt; sem o rebase fica mais fácil de usar o &lt;code&gt;git revert&lt;/code&gt; depois. O rebase usamos muito quando vamos fazer o merge de um feature pois ele joga adição dessa nova feature para cima do histórico do git e deixa mais organizado (linear). &lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Contudo se tiver algum conflito de informações entre o novo código e o seu, exemplo: alterou uma linha ou mais das quais você já tenha trabalhado antes o git vai te alertar sobre isso, você pode fazer uma revisão do conteúdo, para ver se tá tudo ok. E se desejar sobrescrever as alterações use um
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git merge
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Fluxo 3: Trabalhando com funcionalidades
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Para criar uma nova funcionalidade na aplicação vamos criar um branch novo. Um novo caminho, então para criar um branch novo:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git checkout -b exporta-csv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Seja descritivo, também podemos criar um branch para corrigir um bug ou fazer um hotfix (uma correção) podemos nomear desse modo também&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git checkout -b 'philipe/bug-caracteres'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Para acessar esse novo caminho e começar a trabalhar dentro dele vamos acessa-lo:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git switch exporta-csv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Para ver uma lista de branchs locais:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git branch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;E você terá como saída:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;* exporta-csv
  master
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Depois de trabalhar nessa nova funcionalidade e testar, vamos adicionar ela em nossa branch master.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git switch master
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ou&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git merge exporta-csv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Nota: se abrir o vim editor depois disso, use &lt;code&gt;esq&lt;/code&gt; e depos &lt;code&gt;:wq&lt;/code&gt;, para fechar;&lt;/p&gt;

&lt;p&gt;Obs: Enquanto você trabalha no seu branch, outros desenvolvedores podem atualizar o branch main com o seu branch. Isso significa que seu branch não está mais atualizado em relação ao branch main e tem conteúdo em falta. Você pode fazer merge do branch main em seu branch executando checkout do seu branch e usando o mesmo comando git merge.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git checkout &amp;lt;branch name&amp;gt;
git merge main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;E agora atualizar em nosso servidor (lembrando que essas mudanças no código já deveriam ser atualizadas no servidor antes, trabalhando local e subindo para a nuvem). Repete o FLUXO 1 +
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git push --set-upstream origin philipe/bug-caracteres
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ou&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git push --set-upstream origin exporta-csv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Obs: Se você criar um branch no seu repositório local, o repositório remoto ignorará a existência desse branch. Antes de poder fazer push do código do branch para o repositório remoto, você deve definir o repositório remoto como o branch upstream usando o comando git push. Simultaneamente, esse comando define o branch upstream e envia o conteúdo do branch para o repositório remoto.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git push --set-upstream origin &amp;lt;branch name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Temos mais um detalhe. Depois de fazer um merge em nossa nova feature (branch) é legar reescrever o histórico do git para que os nossos merges venham pra cima quando usarmos o git log, e fazemos isso assim:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git rebase master
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Fluxo 4: Visualizando detalhes no nosso sistema git
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Para ver os caminho git criado em seu repositório:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cat .git/refs/heads/master
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cat .git/refs/heads/exporta-csv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Para ver em uma linha detalhes dos commits
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git log --decorate --oneline --graph --all
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Fluxo 5: Indo e voltando
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Para editar o título do último commit realizado
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git commit --amend
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Ok, agora para voltar ao estado de um determinado commit você vai usar o git log para pegar o hash de um commit para onde deseja voltar e depois é só usar o código:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git reset 25469779d814fcc740e1c29c3baf810e0f43ce25
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Obs: Se você tá trabalhando com muitas pessoas ou na master do seu repositório o ideal é usar o git revert passando o ponto de onde você deseja reverter.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Para reverter:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git log --decorate --oneline --graph --all
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para analizar para onde você deseja reverte, copia o primeiro código da linha de onde você deseja reverter. Ex.: 2546977, não confunda com o hash *please.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git revert 2546977
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Fazendo assim o histórico não é comprometido na master. Lembre-se a master é sagrada. Não podemos comprometer seu histórico. No github na sua pull request tem um botão de revert e ele ará abrir um novo pull request para executar esse revert. Falaremos mais sobre github no fluxo 6.&lt;/p&gt;




&lt;h3&gt;
  
  
  Fluxo 6: Usando o github
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Pelo terminal você pode criar um repositório no github usando:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;hub create meu-novo-projeto
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Use as issues do seu github para que as pessoas possam reportar problemas;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7Eg9XNkr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/X2C4SQx/Captura-de-tela-2022-08-16-004200.png" alt="'issues do github'" width="880" height="298"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3oRedNm9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/yntyFNs/Captura-de-tela-2022-08-16-004729.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3oRedNm9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/yntyFNs/Captura-de-tela-2022-08-16-004729.png" alt="'Abrindo issue do Github'" width="880" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Organize, se preciso crie labels e personalize as já existentes, você encontra esse recurso nas opções laterais da issue;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8z43sP7a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/z2rnqLf/Captura-de-tela-2022-08-16-005412.png" alt="'Na lateral da issue tem as opções'" width="291" height="513"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zgzTLvWY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/98nmPHd/Captura-de-tela-2022-08-16-005216.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zgzTLvWY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/98nmPHd/Captura-de-tela-2022-08-16-005216.png" alt="'Criando/Personalizando uma label'" width="880" height="294"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Dica: Crie também um lable para WIP (Working in progress) que serve pra sinalizar que você ainda está trabalhando no código. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Crie pull requests no código, vá até o arquivo que deseja fazer um pull request, ao invés de dar um commit direto, crie um pull request conforme as imagens abaixo, ele vai te dar um resumo e você pode lançar essa pull request;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--En7yqmxJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/Mk2Dy26/Captura-de-tela-2022-08-16-010431.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--En7yqmxJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/Mk2Dy26/Captura-de-tela-2022-08-16-010431.png" alt="'Passo 1'" width="880" height="412"&gt;&lt;/a&gt; &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rWJCUiKo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/qMH70dB/Captura-de-tela-2022-08-16-010809.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rWJCUiKo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/qMH70dB/Captura-de-tela-2022-08-16-010809.png" alt="'Passo 2'" width="880" height="292"&gt;&lt;/a&gt; &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6P90xU_A--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/wMw3pRm/Captura-de-tela-2022-08-16-011140.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6P90xU_A--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/wMw3pRm/Captura-de-tela-2022-08-16-011140.png" alt="'Passo 3'" width="880" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ao abrir a minha pull request, vemos que o boot da versel (host CI/CD) já atualizou o diretório e logo abaixo eu posso fazer um merge para atualizar o nosso diretório principal e por fim finalizar essa pull request se for o caso. Lembrando que o ideal na criação da nossa pull request é criar uma descrição do problema para que tudo fique bem documentado;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--E6Xczwcm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/tC0hxH4/59737d01-8e70-4198-b9ad-a20398fcd64c.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--E6Xczwcm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/tC0hxH4/59737d01-8e70-4198-b9ad-a20398fcd64c.jpg" alt="'Parte 1'" width="880" height="423"&gt;&lt;/a&gt; &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rk3eNHB---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/tLzgpY2/ec3844db-396e-4458-8746-95150cea055a.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rk3eNHB---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/tLzgpY2/ec3844db-396e-4458-8746-95150cea055a.jpg" alt="'Parte 2'" width="880" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Dica: Adiciona no repositório .git um template para as issues e para os pull requests. Vou deixar esse link de referência: &lt;a href="https://github.com/facebook/react/blob/main/.github/ISSUE_TEMPLATE/bug_report.md"&gt;https://github.com/facebook/react/blob/main/.github/ISSUE_TEMPLATE/bug_report.md&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Use plugins para te ajudar com essa experiência dos pull requests e themas. Vou indicar esses dois: Octotree: &lt;a href="https://chrome.google.com/webstore/detail/octotree-github-code-tree/bkhaagjahfmjljalopjnoealnfndnagc"&gt;https://chrome.google.com/webstore/detail/octotree-github-code-tree/bkhaagjahfmjljalopjnoealnfndnagc&lt;/a&gt;, e Octotree Theme: &lt;a href="https://chrome.google.com/webstore/detail/octotree-theme/meagmbmaaljhgdcglcmflnnglpokldcj"&gt;https://chrome.google.com/webstore/detail/octotree-theme/meagmbmaaljhgdcglcmflnnglpokldcj&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Abri os dois aqui para uma melhor compreensão&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ufhXlBMg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/gWLZWLd/Captura-de-tela-2022-08-16-020539.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ufhXlBMg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/gWLZWLd/Captura-de-tela-2022-08-16-020539.png" alt="'Octotree e Octotree Theme juntos'" width="880" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Depois de fazer um merge da nossa fixure do nosso pull request com o nosso master temos a opção de reverter&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SKKsRMTD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/2jF2qcD/Captura-de-tela-2022-08-16-024453.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SKKsRMTD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/2jF2qcD/Captura-de-tela-2022-08-16-024453.png" alt="'Repare o nosso botão de reverter'" width="880" height="423"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Espero que tenham gostado desse post, comentem e me sigam nas minhas redes sociais, quero muito com esse projeto passar conteúdo de qualidade e no Medium conteúdo mais focado para Stackholders com um formato mais simples.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Confira a parte 2 em: &lt;a href="https://dev.to/magominimalista/fluxo-git-descomplicado-parte-2-3dn1"&gt;https://dev.to/magominimalista/fluxo-git-descomplicado-parte-2-3dn1&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Att,&lt;/p&gt;

&lt;h4&gt;
  
  
  Sobre o autor:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Philipe Cairon (Mago Minimalista)&lt;/li&gt;
&lt;li&gt;Full Stack Web developer&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Me encontre no Linktree: &lt;a href="https://linktr.ee/magominimalista"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Qfz5Cpa0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://img.shields.io/badge/linktree-39E09B%3Fstyle%3Dfor-the-badge%26logo%3Dlinktree%26logoColor%3Dwhite" alt="'Linktree'" width="110" height="28"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>git</category>
      <category>tutorial</category>
      <category>beginners</category>
      <category>github</category>
    </item>
  </channel>
</rss>
