<?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: Amanda Rover</title>
    <description>The latest articles on DEV Community by Amanda Rover (@amandarover).</description>
    <link>https://dev.to/amandarover</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%2F46975%2Fcab380ed-230e-4106-ad23-07cd49832905.jpeg</url>
      <title>DEV Community: Amanda Rover</title>
      <link>https://dev.to/amandarover</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/amandarover"/>
    <language>en</language>
    <item>
      <title>Hacks e boas práticas de git</title>
      <dc:creator>Amanda Rover</dc:creator>
      <pubDate>Mon, 18 Jan 2021 18:50:53 +0000</pubDate>
      <link>https://dev.to/amandarover/hacks-e-boas-praticas-de-git-424m</link>
      <guid>https://dev.to/amandarover/hacks-e-boas-praticas-de-git-424m</guid>
      <description>&lt;p&gt;Assim como várias áreas na programação, precisamos sempre manter as boas práticas de desenvolvimento. Eu trouxe um compilado de boas práticas de git e um &lt;em&gt;hack&lt;/em&gt; que aprendi ao longo dos anos que trabalho como desenvolvedora.&lt;/p&gt;

&lt;h1&gt;
  
  
  Commit message
&lt;/h1&gt;

&lt;p&gt;A mensagem de commit é a coisa mais importante no versionamento do git.&lt;br&gt;
O commit tem que descrever o que o código faz pois ele salva momentos, ou seja, o histórico do código. É possível acessar uma versão de código específico e fazer uma nova alteração, por isso o commit é geralmente escrito começando com um verbo no presente do indicativo, indicando que aquilo &lt;strong&gt;acontece&lt;/strong&gt; naquele commit.&lt;/p&gt;

&lt;p&gt;Exemplo:&amp;nbsp;&lt;br&gt;
"Arruma o problema de duplicidade"&lt;br&gt;
"Refatora o método x"&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EXf2JEAw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/uea84jn0pgy6jhn7csai.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EXf2JEAw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/uea84jn0pgy6jhn7csai.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tente sempre ser direto/a e sucinto/a quando for fazer seu commit.&lt;br&gt;
As mensagens devem ser claras para poder identificar rapidamente o que é feito naquele commit. Esse também é um dos motivos pelo qual devemos commitar poucas alterações do código de cada vez.&lt;/p&gt;

&lt;h1&gt;
  
  
  Adding changes
&lt;/h1&gt;

&lt;p&gt;Um dos primeiros comandos que se aprende com o git é o &lt;code&gt;git add&amp;nbsp;.&lt;/code&gt;. Eu achava que minha vida estava completa com esse comando, porém depois que conheci o &lt;code&gt;git add -p&lt;/code&gt; meus commits mudaram (pra melhor).&lt;br&gt;
Esse comando permite que você adicione pequenas partes da implementação do código e também mostra um preview do que será adicionado (pra quem não usa VSCode, ou ferramentas que é possível ver o diff, é uma vantagem importante).&lt;/p&gt;

&lt;p&gt;Output do comando &lt;code&gt;git add&amp;nbsp;-p&lt;/code&gt;:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XkRSMPbh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/9yw56zlfqq71ps0930ju.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XkRSMPbh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/9yw56zlfqq71ps0930ju.png" alt="Output do comando 'git add&amp;nbsp;-p'"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Quando usamos esse comando, abre um input pedindo o que deve ser feito com esse &lt;em&gt;hunk&lt;/em&gt;. Acionando o comando&amp;nbsp;&lt;code&gt;?&lt;/code&gt;, ele mostra todas as opções possíveis e a descrição do comando.&lt;/p&gt;

&lt;p&gt;Descrição dos subcomandos do &lt;code&gt;git add&amp;nbsp;-p&lt;/code&gt;:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CJ6fvxFa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/rxca627l2uvmtgybihdy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CJ6fvxFa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/rxca627l2uvmtgybihdy.png" alt="Descrição dos subcomandos do 'git add&amp;nbsp;-p'"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Uma possibilidade que o &lt;code&gt;add -p&lt;/code&gt; tem, é separar o &lt;em&gt;hunk&lt;/em&gt; em pedaços. Por exemplo no código acima, podemos separar usando o comando &lt;code&gt;s&lt;/code&gt;&amp;nbsp;, assim será possível adicionar apenas um método &lt;em&gt;index&lt;/em&gt; commit.&lt;/p&gt;

&lt;p&gt;Output mostrado quando usado o comando&amp;nbsp;&lt;code&gt;s&lt;/code&gt;:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sk4qyMrH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/qfnhpuhwi5snebd2gjcx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sk4qyMrH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/qfnhpuhwi5snebd2gjcx.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sempre recomendo usar esse comando. Ele também é bom pra quando você flui muito no desenvolvimento e esquece de commitar alguns momentos de código. Eu percebo que poucas pessoas conhecem esse comando e acho ele um dos mais importantes.&lt;/p&gt;

&lt;h1&gt;
  
  
  Commitei mas esqueci de uma parte, e agora?&amp;nbsp;--amend!
&lt;/h1&gt;

&lt;p&gt;Agora imagine você commitando uma mudança, porém, mais pra frente, percebe que está faltando uma parte importante do código, e sem ele, o código não funciona. Um dos objetivos de manter o versionamento de código é ter a segurança de que cada versão do seu código esteja funcionando corretamente. Por isso é importante commitar versões do código que são funcionais. Então seria interessante adicionar essa alteração no commit anterior para passar a ser um commit de uma versão funcional do código.&lt;/p&gt;

&lt;p&gt;Então, você não precisa fazer um commit com o nome "Arruma o método index parte 2" ou até deletar o commit anterior pra unificar as alterações em um novo commit.&lt;br&gt;
Existe uma forma fácil de unificar as alterções usando o comando &lt;code&gt;--amend&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Então você já commitou uma parte do código mas ainda não deu push. Para adicionar a parte que falta no mesmo commit, basta adicionar as alterações (&lt;code&gt;git add&amp;nbsp;.&lt;/code&gt;) e depois usar o comando &lt;code&gt;git commit --amend&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Adicionei a alteração que faltava e vou acionar o comando &lt;code&gt;git commit&amp;nbsp;--amend&lt;/code&gt;:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yFC23zVv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/8wkrqcnz1sjvff5im9iv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yFC23zVv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/8wkrqcnz1sjvff5im9iv.png" alt="Adicionei a alteração que faltava e vou acionar o comando 'git commit&amp;nbsp;--amend'"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ele vai abrir uma tela de texto no terminal, e lá é possível alterar a mensagem do commit anterior. Nesse caso, queremos só adicionar essas mudanças novas e manter a mensagem, então basta apenas sair e salvar dessa tela usando o ctrl+r (equivale ao comando Exit).&lt;/p&gt;

&lt;p&gt;Tela de texto no terminal que aparece quando acionamos o comando &lt;code&gt;git commit - amend&lt;/code&gt;:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wCK718hs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/mfr5bdj88nfxma2tb6za.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wCK718hs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/mfr5bdj88nfxma2tb6za.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Assim, podemos ver que a alteração adicionada faz parte do commit anterior pois existe apenas um commit com a mesma mensagem.&lt;/p&gt;

&lt;p&gt;output do comando &lt;code&gt;git log&lt;/code&gt; mostra apenas um commit com as alterações:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0AbH6cH9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/m5cg3d9rsc5f3370s4zf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0AbH6cH9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/m5cg3d9rsc5f3370s4zf.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Porém, não é recomendado usar esse &lt;em&gt;hack&lt;/em&gt; caso o commit anterior já tenha sido feito o push, pois será criado dois commits com o mesmo nome.&lt;/p&gt;

&lt;p&gt;Esse foi um pequeno compilado de &lt;em&gt;hacks&lt;/em&gt; e boas práticas de git que aprendi ao longo dos anos. xD&lt;br&gt;
E vocês? Qual é o comando ou as boas práticas que vocês não vivem mais sem? Qual é o &lt;em&gt;hack&lt;/em&gt; que vocês acham super importante ter no dia-a-dia de desenvolvimento?&lt;/p&gt;

</description>
      <category>git</category>
      <category>github</category>
      <category>gitcommands</category>
      <category>bestpractices</category>
    </item>
  </channel>
</rss>
