<?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: Isa Giongo</title>
    <description>The latest articles on DEV Community by Isa Giongo (@isagiongo).</description>
    <link>https://dev.to/isagiongo</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%2F183150%2Ffd043e87-30bf-4e11-91fe-5ce6d39b6bc2.png</url>
      <title>DEV Community: Isa Giongo</title>
      <link>https://dev.to/isagiongo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/isagiongo"/>
    <language>en</language>
    <item>
      <title>Do Zero: git add -p - Qual é a desse comando simples e muito útil?</title>
      <dc:creator>Isa Giongo</dc:creator>
      <pubDate>Sat, 26 Dec 2020 18:31:48 +0000</pubDate>
      <link>https://dev.to/devgirls/do-zero-git-add-p-qual-e-a-desse-comando-simples-e-muito-util-3k40</link>
      <guid>https://dev.to/devgirls/do-zero-git-add-p-qual-e-a-desse-comando-simples-e-muito-util-3k40</guid>
      <description>&lt;p&gt;Se você está iniciando agora nos estudos e/ou carreira de desenvolvimento de software, provavelmente já deve ter &lt;strong&gt;criado seu GitHub&lt;/strong&gt; e &lt;strong&gt;iniciando o versionamento&lt;/strong&gt; dos seus projetos &lt;strong&gt;usando o Git&lt;/strong&gt;, certo?&lt;/p&gt;

&lt;p&gt;Se a resposta é "&lt;strong&gt;Ainda não&lt;/strong&gt; 😔", fique tranquila! &lt;a href="https://dev.to/devgirls/do-zero-git-github-como-criar-primeiro-repositorio-e-subir-seu-primeiro-projeto-4ce3"&gt;Aqui tem um tutorialzinho básico&lt;/a&gt; pra criar seu primeiro repositório no GitHub, versionar seu projeto e subir ele pro novo repositório, criando sua vitrine para expor seus projetos e estudos sobre programação.&lt;/p&gt;

&lt;p&gt;Agora, se a resposta é "&lt;strong&gt;Claro! Já estou apanhando do Git!&lt;/strong&gt;", você está no lugar certo!&lt;/p&gt;

&lt;p&gt;Hoje, esse tutorial tem por objetivo falar um pouco sobre um dos comandos mais básicos do Git, o &lt;strong&gt;&lt;em&gt;git add&lt;/em&gt;&lt;/strong&gt;, porém abordando uma variante que vai te surpreender: o parâmetro "&lt;strong&gt;&lt;em&gt;-p&lt;/em&gt;&lt;/strong&gt;".&lt;/p&gt;

&lt;p&gt;O comando "&lt;strong&gt;&lt;em&gt;git add&lt;/em&gt;&lt;/strong&gt;" é muito famoso por "adicionar conteúdo" (propor uma mudança qualquer, seja ela alterar, adicionar ou remover um conteúdo) de um arquivo local ao índice ou staging area, que terá a mudança confirmada, posteriormente, com o comando "&lt;strong&gt;&lt;em&gt;git commit&lt;/em&gt;&lt;/strong&gt;", e finalmente enviada ao repositório remoto pelo "&lt;strong&gt;&lt;em&gt;git push&lt;/em&gt;&lt;/strong&gt;". &lt;/p&gt;

&lt;p&gt;Então, &lt;em&gt;resumindo bem rasamente&lt;/em&gt;, esse conjunto de comandos, iniciado pelo git add, são os responsáveis por "&lt;strong&gt;salvar&lt;/strong&gt;" nossas alterações no projeto:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Fiz uma alteração local em um ou mais arquivos&lt;/li&gt;
&lt;li&gt;Vou &lt;strong&gt;propor essa mudança&lt;/strong&gt;, com o comando git add, adicionando ela no índice(staging area).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Confirmo que quero realizar essa mudança&lt;/strong&gt; com git commit, fazendo uma "captura/&lt;strong&gt;instantâneo&lt;/strong&gt;" daquele estado do projeto, incluindo as mudanças propostas pelo git add.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Envio&lt;/strong&gt; com git push esse "instantâneo" do meu &lt;strong&gt;repositório local&lt;/strong&gt; para o &lt;strong&gt;repositório remoto&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Bom, mas o foco desse artigo é te dizer para que serve o tal do -p junto com o git add, então vamos ao que interessa!&lt;/p&gt;

&lt;p&gt;Para introduzir o assunto, quero confessar que passei seis meses trabalhando como desenvolvedora e vários outros meses apenas estudando e sempre utilizava o git add da seguinte forma:&lt;br&gt;
&lt;a href="https://i.giphy.com/media/a9xhxAxaqOfQs/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/a9xhxAxaqOfQs/giphy.gif" alt="gif triste"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;git add .&lt;/em&gt;&lt;/strong&gt; que adicionava todos os arquivos/diretórios alterados (criados, modificados, deletados) à proposição de mudança do index.&lt;br&gt;
&lt;strong&gt;&lt;em&gt;git add meu_arquivo.java&lt;/em&gt;&lt;/strong&gt; que adicionava apenas arquivos ou diretórios especificados por mim&lt;/p&gt;

&lt;p&gt;E um belo dia, pareando com um colega de time, vi que ele utilizava o &lt;strong&gt;&lt;em&gt;git add -p&lt;/em&gt;&lt;/strong&gt; e que dessa forma conseguia, posteriormente, &lt;strong&gt;"organizar" melhor seus commits em etapas&lt;/strong&gt;, agrupando alterações que tinham relação uma com as outras, o que no fim das contas produzia uma &lt;em&gt;Pull Request&lt;/em&gt; muito mais fácil de analisar, mesmo que contivesse muitas alterações.&lt;br&gt;
&lt;a href="https://i.giphy.com/media/XR9Dp54ZC4dji/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/XR9Dp54ZC4dji/giphy.gif" alt="gif michael the office"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O parâmetro &lt;strong&gt;&lt;em&gt;-p&lt;/em&gt;&lt;/strong&gt; passado após o comando &lt;strong&gt;&lt;em&gt;git add&lt;/em&gt;&lt;/strong&gt;, é de "&lt;em&gt;patch&lt;/em&gt;" ou "&lt;em&gt;fragmento&lt;/em&gt;" em português, e permite que você selecione &lt;strong&gt;interativamente&lt;/strong&gt; os "&lt;strong&gt;&lt;em&gt;pedaços&lt;/em&gt;&lt;/strong&gt;" que deseja &lt;strong&gt;adicionar ao índice&lt;/strong&gt; e revise as &lt;strong&gt;diferenças&lt;/strong&gt; antes de adicionar essas alterações.&lt;/p&gt;

&lt;p&gt;Dessa forma, é possível adicionar aos poucos, agrupando para o commit, as alterações relacionadas e que façam sentido estar no mesmo commit.&lt;/p&gt;

&lt;p&gt;A cada fragmento de alteração exibido (com as diferenças), é possível realizar algumas ações, dentre as quais, estão as que considero mais úteis, listadas abaixo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;y&lt;/strong&gt; - adicione este pedaço de alteração&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;n&lt;/strong&gt; - não adicione&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;d&lt;/strong&gt; - não adicione este, nem os remanescentes do arquivo&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;a&lt;/strong&gt; - adicione este e os outros pedaços restantes do arquivo &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;q&lt;/strong&gt; - interrompe a adição, mantendo o que já foi adicionado&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Na imagem seguinte temos os arquivos modificados em minha branch. Quero apenas adicionar os pedaços do arquivo &lt;strong&gt;&lt;em&gt;TotalizerController.java&lt;/em&gt;&lt;/strong&gt;, observando as diferenças que realizei.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LXB3ILVi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/mgsxayyd2xl6mz2tjlei.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LXB3ILVi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/mgsxayyd2xl6mz2tjlei.png" alt="resultado comando git status"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ao rodar o comando &lt;strong&gt;&lt;em&gt;git add -p&lt;/em&gt;&lt;/strong&gt; temos o seguinte:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Hk8DFVXd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/rf1cw09hc8f33pcivuqx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Hk8DFVXd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/rf1cw09hc8f33pcivuqx.png" alt="resultado comando git add -p"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Na primeira linha vemos o comando git diff e o &lt;strong&gt;nome do arquivo que está sendo "comparado"&lt;/strong&gt; naquele momento.&lt;/li&gt;
&lt;li&gt;Em verde, vemos a &lt;strong&gt;linha que foi adicionada&lt;/strong&gt; neste arquivo. Se fosse uma linha removida, veríamos ela em vermelho.&lt;/li&gt;
&lt;li&gt;E por último, vemos as &lt;strong&gt;opções disponíveis&lt;/strong&gt; que foram citadas acima.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No vídeo abaixo, demonstro como &lt;strong&gt;ignorar&lt;/strong&gt; algumas alterações (utilizando a opção - &lt;strong&gt;n&lt;/strong&gt;) para que não entrem no commit específico que quero fazer de alterações no controller. Dessa forma, vou &lt;strong&gt;adicionar&lt;/strong&gt; (com a opção &lt;strong&gt;y&lt;/strong&gt;) apenas os pedaços que tenham ligação com essa alteração, e em seguida, &lt;strong&gt;interromper&lt;/strong&gt; a adição (com a opção &lt;strong&gt;q&lt;/strong&gt;) quando já tiver colocado no index os pedaços que quero commitar.&lt;/p&gt;

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

&lt;p&gt;Viu como pode ser fácil organizar em commits distintos, agrupando as alterações de forma lógica, mesmo que tenhamos feito muitas mudanças? &lt;br&gt;
&lt;a href="https://i.giphy.com/media/4MY6xgrmYYsCX6srMQ/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/4MY6xgrmYYsCX6srMQ/giphy.gif" alt="magic"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>git</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Do Zero: Pareamento a distância? O CodeTogether pode deixar essa tarefa mais agradável!</title>
      <dc:creator>Isa Giongo</dc:creator>
      <pubDate>Thu, 06 Aug 2020 11:20:57 +0000</pubDate>
      <link>https://dev.to/devgirls/do-zero-pareamento-a-distancia-o-codetogether-pode-deixar-essa-tarefa-mais-agradavel-4aci</link>
      <guid>https://dev.to/devgirls/do-zero-pareamento-a-distancia-o-codetogether-pode-deixar-essa-tarefa-mais-agradavel-4aci</guid>
      <description>&lt;p&gt;Indo na linha dos &lt;strong&gt;plugins para IDE's&lt;/strong&gt; que muito nos facilitam, hoje trago um pequeno post sobre o &lt;strong&gt;&lt;em&gt;CodeTogether&lt;/em&gt;&lt;/strong&gt;! (dá uma olhada abaixo no primeiro artigo dessa série, sobre o incrível &lt;strong&gt;Sonarlint&lt;/strong&gt;)&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__link"&gt;
  &lt;a href="/devgirls" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__org__pic"&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F2744%2F35cd982a-9e56-42eb-9476-8390563c4918.png" alt="Dev Girls"&gt;
      &lt;div class="ltag__link__user__pic"&gt;
        &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F183150%2Ffd043e87-30bf-4e11-91fe-5ce6d39b6bc2.png" alt=""&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/devgirls/do-zero-sonarlint-para-que-serve-esse-plugin-e-por-que-voce-nao-vai-mais-viver-sem-ele-31fg" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Do Zero: Sonarlint - para que serve esse plugin e por que você não vai mais viver sem ele&lt;/h2&gt;
      &lt;h3&gt;Isa Giongo for Dev Girls ・ Jul 28 '20&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#productivity&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#codequality&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#java&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;
 

&lt;p&gt;Esse plugin emergiu na lista de necessidades a partir desse momento de isolamento social 😷, onde é preciso que cada um esteja em sua casa, porém ainda estamos em times e seguimos com a necessidade e a vontade de parear (Se você ainda não sabe o que é ou como funciona o pareamento - ou ainda pensa que pode ser desperdício de tempo -, da uma olhada &lt;a href="https://aelian.com.br/guia-de-programacao-em-par/" rel="noopener noreferrer"&gt;aqui&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;O &lt;strong&gt;&lt;em&gt;CodeTogether&lt;/em&gt;&lt;/strong&gt; promete ser uma ferramenta de colaboração muito superior à experiência de parear apenas compartilhando a tela através das ferramentas conhecidas de vídeo-chamada, como o Hangouts, Meet, Zoom, Teams e etc, pois permite a &lt;strong&gt;real interação&lt;/strong&gt; de ambas as partes envolvidas na tarefa.&lt;/p&gt;

&lt;p&gt;Vamos para a prática então! &lt;/p&gt;

&lt;p&gt;Primeiramente, é necessário que uma das pessoas que irá parear tenha uma &lt;strong&gt;conta no CodeTogether&lt;/strong&gt; e &lt;strong&gt;instale o plugin&lt;/strong&gt; na sua IDE.&lt;/p&gt;

&lt;h4&gt;
  
  
  Registro
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://www.codetogether.com/register/" rel="noopener noreferrer"&gt;Clique aqui&lt;/a&gt; e preencha as informações obrigatórias que são &lt;strong&gt;&lt;em&gt;username&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;em&gt;email&lt;/em&gt;&lt;/strong&gt; e &lt;strong&gt;&lt;em&gt;senha&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fwswo1m617zyruu741ic9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fwswo1m617zyruu741ic9.png" alt="Registro CodeTogether"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Download e Instalação
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://www.codetogether.com/download/" rel="noopener noreferrer"&gt;Aqui&lt;/a&gt; você vai fazer o download do &lt;strong&gt;&lt;em&gt;CodeTogether&lt;/em&gt;&lt;/strong&gt; de acordo com sua IDE (no momento, está disponível para Eclipse, IntelliJ e VsCode).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Para instalar no &lt;strong&gt;Eclipse&lt;/strong&gt;, basta estar com o ele aberto e arrastar o botão &lt;strong&gt;&lt;em&gt;Drag to Eclipse IDEs&lt;/em&gt;&lt;/strong&gt; para dentro do Eclipse. O Eclipse Marketplace será iniciado e só você só precisa clicar em &lt;strong&gt;&lt;em&gt;Install&lt;/em&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F8nte3fpk6qy6t6usohcv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F8nte3fpk6qy6t6usohcv.png" alt="botão arrastar eclipse"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Para instalar no &lt;strong&gt;IntelliJ&lt;/strong&gt;, basta clicar em &lt;strong&gt;&lt;em&gt;Download for Jetbrains IDEs&lt;/em&gt;&lt;/strong&gt;. Um arquivo &lt;em&gt;&lt;em&gt;.zip&lt;/em&gt;&lt;/em&gt; será baixado, e no IntelliJ você vai fazer o seguinte caminho: &lt;strong&gt;&lt;em&gt;File&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;em&gt;Settings...&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;em&gt;Plugins&lt;/em&gt;&lt;/strong&gt; e nos três pontinho perto de &lt;em&gt;&lt;em&gt;Installed&lt;/em&gt;&lt;/em&gt;, você vai clicar em &lt;strong&gt;&lt;em&gt;Install Plugin from Disk...&lt;/em&gt;&lt;/strong&gt; e selecionar o arquivo .zip que você baixou do site do &lt;strong&gt;&lt;em&gt;CodeTogether&lt;/em&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F80cs7t1oozcz15ddz6y5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F80cs7t1oozcz15ddz6y5.png" alt="install intelliJ"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Utilização
&lt;/h4&gt;

&lt;p&gt;Para iniciar o pareamento, são três etapas: &lt;strong&gt;iniciar o compartilhamento&lt;/strong&gt;, com o "Start Sharing", depois &lt;strong&gt;copiar o link&lt;/strong&gt; de acesso em "Copy Invite URL" e por fim, a pessoa que irá parear, &lt;strong&gt;acessar esse link&lt;/strong&gt; no seu navegador.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No IntelliJ, basta ir no menu &lt;strong&gt;&lt;em&gt;View&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;em&gt;Tool Windows&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;em&gt;CodeTogether&lt;/em&gt;&lt;/strong&gt;. Uma "janela" se abrirá na lateral direita da IDE. Clique em &lt;strong&gt;&lt;em&gt;Start Sharing&lt;/em&gt;&lt;/strong&gt; e em &lt;strong&gt;&lt;em&gt;Copy Invite URL&lt;/em&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fznbis0snbhp3mj8ao0l4.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fznbis0snbhp3mj8ao0l4.gif" alt="utilizar codeTogether intelliJ"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No Eclipse, basta clicar no menu &lt;strong&gt;&lt;em&gt;Help&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;em&gt;CodeTogether&lt;/em&gt;&lt;/strong&gt; e &lt;strong&gt;&lt;em&gt;Start Sharing&lt;/em&gt;&lt;/strong&gt;. Uma "janela" vai se abrir na direita da sua IDE e basta clicar em &lt;strong&gt;&lt;em&gt;Copy Invite URL&lt;/em&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fdayx1xr1q6g727r0lhi4.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fdayx1xr1q6g727r0lhi4.gif" alt="utilizar codetogether Eclipse"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Acesso ao código do host
&lt;/h4&gt;

&lt;p&gt;Ao receber o link da pessoa que instalou o plugin do &lt;strong&gt;&lt;em&gt;CodeTogether&lt;/em&gt;&lt;/strong&gt; em sua IDE, basta acessá-lo de qualquer navegador. &lt;/p&gt;

&lt;p&gt;A primeira tela, oferece as opções de &lt;strong&gt;tema preferido&lt;/strong&gt; (Ligth ou Dark, para cada IDE) e também de &lt;strong&gt;atalhos de teclado&lt;/strong&gt;, afinal você não tem que ser obrigada a aguentar aquele tema branco e apático que seu colega acha lindo!😆&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fuz7ttdwjbo1sm3uqy07y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fuz7ttdwjbo1sm3uqy07y.png" alt="opções tema e atalhos"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Na sequência, vamos &lt;strong&gt;informar nosso nome&lt;/strong&gt;, pois essa informação ficará visível para a pessoa que está pareando conosco.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fra6ymim0nzm8csjugzfe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fra6ymim0nzm8csjugzfe.png" alt="nome par"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Visualização do convidado através do navegador
&lt;/h4&gt;

&lt;p&gt;A partir daí, começaremos a ter &lt;strong&gt;visualização&lt;/strong&gt; e &lt;strong&gt;acesso ao código&lt;/strong&gt; como se estivéssemos pareando lado a lado, diretamente na IDE de origem, inclusive com as facilidades como o &lt;strong&gt;auto-complete&lt;/strong&gt; da IDE, facilitando a busca por classes, a nomear variáveis, e também os &lt;strong&gt;atalhos&lt;/strong&gt; que estamos acostumados a utilizar no dia a dia para aumentar a produtividade.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F0lwbqrbyie408gldepxk.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F0lwbqrbyie408gldepxk.gif" alt="autocomplete no navegador"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Visualização do host na sua IDE
&lt;/h4&gt;

&lt;p&gt;E aqui é como o host, que instalou o plugin, está vendo na sua IDE as ações da pessoa que está pareando com ele.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F68enl63d6vgzw1tjlh4u.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F68enl63d6vgzw1tjlh4u.gif" alt="pareamento no host"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Claro que nem tudo são maravilhas🦄! A versão &lt;em&gt;&lt;em&gt;free&lt;/em&gt;&lt;/em&gt; do &lt;strong&gt;&lt;em&gt;CodeTogether&lt;/em&gt;&lt;/strong&gt; apresenta algumas limitações, dentre as quais a que mais nos afeta, que é a &lt;strong&gt;limitação de tempo do pareamento&lt;/strong&gt;. Após 45 minutos de pareamento, a sessão é interrompida e é preciso clicar novamente no link de compartilhamento para voltar a visualizar e acessar a tela.(&lt;em&gt;&lt;em&gt;temporariamente, está tudo liberado do plano "Pro", por conta da pandemia do Covid&lt;/em&gt;&lt;/em&gt;)&lt;/p&gt;

&lt;p&gt;De qualquer forma, é sim uma incrível melhoria na experiência do &lt;strong&gt;pareamento remoto&lt;/strong&gt;, delegando a ação de compartilhar o código para uma ferramenta especializada - o super &lt;strong&gt;&lt;em&gt;CodeTogether&lt;/em&gt;&lt;/strong&gt;🚀, enquanto seguimos usando as ferramentas de vídeo chamada para o que elas fazem bem: vídeos chamadas.&lt;/p&gt;

&lt;p&gt;Tem alguma dica de plugin ou ferramenta &lt;strong&gt;mágica&lt;/strong&gt; para um próximo post dessa série? Deixa aqui nos comentários!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy0bz09q9sllvdc08iszf.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy0bz09q9sllvdc08iszf.gif" alt="magic"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h6&gt;
  
  
  &lt;a href="http://www.freepik.com" rel="noopener noreferrer"&gt;Image cover Designed by master1305 / Freepik&lt;/a&gt;
&lt;/h6&gt;

</description>
      <category>beginners</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Do Zero: Sonarlint - para que serve esse plugin e por que você não vai mais viver sem ele</title>
      <dc:creator>Isa Giongo</dc:creator>
      <pubDate>Tue, 28 Jul 2020 14:26:19 +0000</pubDate>
      <link>https://dev.to/devgirls/do-zero-sonarlint-para-que-serve-esse-plugin-e-por-que-voce-nao-vai-mais-viver-sem-ele-31fg</link>
      <guid>https://dev.to/devgirls/do-zero-sonarlint-para-que-serve-esse-plugin-e-por-que-voce-nao-vai-mais-viver-sem-ele-31fg</guid>
      <description>&lt;p&gt;Se você está iniciando agora no mundo do desenvolvimento de software, provavelmente já deve ter a sua &lt;strong&gt;&lt;em&gt;IDE&lt;/em&gt;&lt;/strong&gt; escolhida e devidamente instalada, certo? Caso não tenha ainda (e talvez nem saiba o que é e para que serve), dá uma olhada nesse artigo introdutório &lt;a href="https://www.treinaweb.com.br/blog/o-que-e-uma-ide-ambiente-de-desenvolvimento-integrado/" rel="noopener noreferrer"&gt;aqui&lt;/a&gt; e também em algumas opções para Java &lt;a href="https://www.treinaweb.com.br/blog/principais-ides-para-desenvolvimento-java/" rel="noopener noreferrer"&gt;aqui&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Com sua IDE já à postos, chegou a hora de conhecer um &lt;strong&gt;&lt;em&gt;plugin&lt;/em&gt;&lt;/strong&gt; que é muito útil e até, eu diria, &lt;strong&gt;essencial&lt;/strong&gt; para nos auxiliar a escrever código com qualidade - o &lt;a href="https://www.sonarlint.org/" rel="noopener noreferrer"&gt;&lt;strong&gt;&lt;em&gt;Sonarlint&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A grande vantagem dessa ferramenta é que ela nos ajuda a &lt;strong&gt;ver&lt;/strong&gt; e a &lt;strong&gt;corrigir&lt;/strong&gt; pontos negativos que talvez nem saibamos ainda que estão habitando nosso código: como possíveis bugs, nullpointers, condições desnecessárias e tudo aquilo que pode gerar códigos mal escritos e com problemas de qualidade.&lt;br&gt;
&lt;a href="https://i.giphy.com/media/fpXxIjftmkk9y/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/fpXxIjftmkk9y/giphy.gif" alt="gif dog surpreso"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Outra boa notícia acerca do Sonarlint, é que ele pode ser utilizado nas mais famosas IDE's, como por exemplo, Eclipse, IntelliJ e VS Code. E também, ele não está restrito a linguagem Java (minha queridinha 💘 ), mas também trabalha com Javascript, Python, Kotlyn, Ruby, Php, C#, dependendo da IDE escolhida.&lt;/p&gt;

&lt;p&gt;A instalação é muito simples e rápida: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;No Eclipse, basta ir no menu Help e Eclipse Marketplace. Buscar "Sonarlint" e clicar em "Install".&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F963af8t6xlgtlnzdnxhg.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F963af8t6xlgtlnzdnxhg.gif" alt="Instalação Eclipse"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No IntelliJ, vá em "File", "Settings", "Plugins" e busque por Sonarlint e clique em "Install".&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fub5imtxhga8lhg8ajguv.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fub5imtxhga8lhg8ajguv.gif" alt="Instalação IntelliJ"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nos dois casos, será necessário &lt;strong&gt;reiniciar&lt;/strong&gt; a IDE para a alteração ser aplicada e o plugin funcionar efetivamente.&lt;/p&gt;

&lt;p&gt;O Sonarlint é um detector, em tempo real, de &lt;strong&gt;códigos fedidos&lt;/strong&gt; - que geram dificuldades de manutenção (&lt;a href="https://refactoring.guru/refactoring/smells" rel="noopener noreferrer"&gt;leia mais aqui&lt;/a&gt;  - em inglês), &lt;strong&gt;bugs&lt;/strong&gt; 🐛 e &lt;strong&gt;vulnerabilidades&lt;/strong&gt;. Para essas categorias, temos também o nível de severidade dos problemas, que são: &lt;em&gt;&lt;em&gt;Minor&lt;/em&gt;&lt;/em&gt;, &lt;em&gt;&lt;em&gt;Major&lt;/em&gt;&lt;/em&gt;, &lt;em&gt;&lt;em&gt;Critical&lt;/em&gt;&lt;/em&gt; e &lt;em&gt;&lt;em&gt;Blocker&lt;/em&gt;&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Em seu trabalho, o Sonarlint, &lt;strong&gt;sinaliza&lt;/strong&gt; o trecho de código a ser corrigido/melhorado e ainda fornece uma &lt;strong&gt;explicação&lt;/strong&gt; para o problema e &lt;strong&gt;como corrigí-lo&lt;/strong&gt;, mostrando exemplos de código que não estão em conformidade com a regra e o exemplo de código em conformidade, isto é, a forma mais adequada de escrever aquele trecho. Mas são apenas sugestões, e não segui-las não quer dizer que seu código não irá funcionar da mesma forma.&lt;/p&gt;

&lt;p&gt;Vamos ver um exemplo abaixo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Nesse caso, temos um teste que tem a intenção de validar se dois nomes (do tipo String) são iguais. Porém, estou usando para comparar o firstName e o secondName o operador de igualdade

&lt;code&gt;==&lt;/code&gt;

. Nesse exemplo, meu teste não está passando, mesmo com os dois nomes tendo valores iguais. 😞 O que pode estar acontecendo???&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Imediatamente, o Sonarlint me alerta que &lt;em&gt;&lt;em&gt;algo errado não está certo&lt;/em&gt;&lt;/em&gt;!&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F5a0es1ks8zldzqk2fvvo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F5a0es1ks8zldzqk2fvvo.png" alt="Código com bug"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Logo abaixo, na aba do Sonarlint, temos mais informações: Ele me mostra uma &lt;strong&gt;breve descrição&lt;/strong&gt; da regra, com o seu &lt;strong&gt;tipo&lt;/strong&gt;, que nesse caso seria um "bug" e com o &lt;strong&gt;nível de severidade&lt;/strong&gt; "Major". (Caso não esteja visualizando a aba do Sonarlint, você pode acessá-la no IntelliJ indo no menu "View", "Tool Windows", "Sonarlint". E no Eclipse, no menu "Window", "Show view", "Other...", "Sonarlint").&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Faag6ly0tc1lk860m7v7g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Faag6ly0tc1lk860m7v7g.png" alt="Regra no sonarlint"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;E por fim, a cereja do bolo 🍒🍰: A forma de &lt;strong&gt;como corrigir&lt;/strong&gt; esse código, com um exemplo que não causaria mais bugs.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fir0juthrjt3ay5pjxonz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fir0juthrjt3ay5pjxonz.png" alt="Dica para correção"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Então, me aproveitando dessa dica do Sonarlint, vou corrigir meu código, sendo o resultado final este:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fpikqv8r6ep3voa1z9xyn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fpikqv8r6ep3voa1z9xyn.png" alt="Código corrigido"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Além desse exemplo acima, o Sonarlint dá muitas dicas para deixar seu código sem bugs, mais legível e com qualidade. Se quiser uma lista completa das regras que ele aponta, &lt;a href="https://rules.sonarsource.com/java" rel="noopener noreferrer"&gt;clica aqui&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Esse plugin é ou não é maravigold?!🧙‍♀️&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>productivity</category>
      <category>codequality</category>
      <category>java</category>
    </item>
    <item>
      <title>Do Zero: Git + Github - Como criar primeiro repositório e subir seu primeiro projeto</title>
      <dc:creator>Isa Giongo</dc:creator>
      <pubDate>Sat, 18 Jul 2020 13:10:06 +0000</pubDate>
      <link>https://dev.to/devgirls/do-zero-git-github-como-criar-primeiro-repositorio-e-subir-seu-primeiro-projeto-4ce3</link>
      <guid>https://dev.to/devgirls/do-zero-git-github-como-criar-primeiro-repositorio-e-subir-seu-primeiro-projeto-4ce3</guid>
      <description>&lt;p&gt;Pra começar, &lt;strong&gt;Git&lt;/strong&gt; e &lt;strong&gt;Github&lt;/strong&gt; são sim coisas diferentes. Porém, trabalham juntos no propósito de tornar nosso código e projetos possíveis de serem &lt;strong&gt;versionados&lt;/strong&gt; e &lt;strong&gt;compartilhados&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Na minha pequena experiência de Deva Java, digo pra você que: &lt;strong&gt;&lt;em&gt;GitHub&lt;/em&gt;&lt;/strong&gt; é apenas uma das opções de &lt;strong&gt;"onde armazenar"&lt;/strong&gt; as diversas versões do seu projeto/código. Outros serviços muito utilizados, especialmente nas empresas, são o Bitbucket, GitLab e Azure(Microsoft). &lt;/p&gt;

&lt;p&gt;Já o &lt;strong&gt;&lt;em&gt;Git&lt;/em&gt;&lt;/strong&gt;, que é a ferramenta para &lt;strong&gt;"versionar"&lt;/strong&gt; nosso código (que basicamente funciona como um "backup" de cada versão e permite que você consiga voltar atrás, quando fizer alguma grande besteira), é uma unanimidade: todo mundo usa! &lt;/p&gt;

&lt;blockquote&gt;
&lt;h5&gt;
  
  
  É importante salientar que esse post não tem a intenção de ensinar os conceitos sobre Git, nem tampouco ser um tutorial para trabalho em equipes com o Git, utilizando de conceitos como branches, merges, rebases e etc. Aqui, só queremos garantir que alguém que nunca utilizou a ferramenta, consiga publicar as alterações em seu código no GitHub, utilizando os comandos mais triviais e que não deixam de ser também, os mais usados no dia a dia, como git add, git commit e git push.
&lt;/h5&gt;
&lt;/blockquote&gt;

&lt;p&gt;Para facilitar sua navegação e/ou você não perder muito tempo com coisa que já tem ou já sabe, aqui tem uns atalhos pra você ir pras etapas que te interessam:&lt;/p&gt;

&lt;h2&gt;
  
  
  Atalhos
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Para instalar o Git, clica aqui.&lt;/li&gt;
&lt;li&gt;Para criar sua conta no GitHub e seu primeiro repositório, clica aqui.&lt;/li&gt;
&lt;li&gt;Caso queira iniciar seu projeto de exemplo utilizando o Spring Initializr, é aqui.&lt;/li&gt;
&lt;li&gt;Se isso tudo já está ok e você está pronta para dar os primeiros comandos e subir as coisas lá no seu GitHub, clica aqui.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Instalação do Git &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Como pré requisito, precisamos ter instalado o &lt;strong&gt;&lt;em&gt;Git&lt;/em&gt;&lt;/strong&gt; na nossa máquina. Para cada sistema operacional há uma forma de instalar. &lt;/p&gt;

&lt;p&gt;Confesso que, desde que iniciei a jornada me tornar desenvolvedora, migrei para o linux (Ubuntu) e faço muito uso da linha de comando (terminal). Parece mais difícil num primeiro momento, mas acho que facilita muito para diversas instalações e coisas que devemos utilizar como dev no dia a dia. &lt;/p&gt;

&lt;p&gt;Aqui tem o &lt;a href="https://git-scm.com/book/en/v2/Getting-Started-Installing-Git"&gt;site oficial&lt;/a&gt; com as formas de instalar em cada SO. Para quem usa &lt;strong&gt;&lt;em&gt;Windows&lt;/em&gt;&lt;/strong&gt;, uma opção é utilizar o client do GitHub para desktop -&amp;gt; &lt;a href="https://desktop.github.com/"&gt;GitHub Desktop&lt;/a&gt;. Outra opção também, é utilizar uma IDE (Integrated Development Environment - que basicamente é um softfware que vai te facilitar a desenvolver softwares :D). Como exemplos podemos citar o &lt;strong&gt;&lt;em&gt;IntelliJ&lt;/em&gt;&lt;/strong&gt;, que já vem com o Git instalado por padrão ou o &lt;strong&gt;&lt;em&gt;Eclipse&lt;/em&gt;&lt;/strong&gt;, que podemos adicionar o plugin Egit.&lt;/p&gt;

&lt;p&gt;Se você está, como eu, utilizando &lt;strong&gt;&lt;em&gt;Linux&lt;/em&gt;&lt;/strong&gt;, o processo é bem simples. Basta um comando no terminal e tcharamm...&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo apt install git-all&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;Para conferir se a instalação foi sucesso, digite&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git --version&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;Se aparecer algo semelhante ao abaixo é porque está tudo certo e já podemos começar.&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git version 2.25.1&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  Criar conta e repositório no GitHub &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;O &lt;strong&gt;&lt;em&gt;GitHub&lt;/em&gt;&lt;/strong&gt; é um serviço que vai armazenar nossos projetos e nos auxiliar a gerenciá-los. É uma excelente vitrine para expor nossos trabalhos e estudos.&lt;/p&gt;

&lt;p&gt;A primeira etapa é &lt;strong&gt;criar uma conta&lt;/strong&gt; no GitHub, que é um cadastro básico como em qualquer site ou serviço: Na página inicial você deve preencher seus dados, escolhendo um &lt;strong&gt;username&lt;/strong&gt; (que será sua identificação no site), colocando seu &lt;strong&gt;email&lt;/strong&gt; e escolhendo uma &lt;strong&gt;senha&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Depois disso, vamos criar nosso primeiro &lt;strong&gt;repositório&lt;/strong&gt;: o local para expor nossa arte! &lt;/p&gt;

&lt;p&gt;Agora é preciso preencher o &lt;strong&gt;nome do novo repositório&lt;/strong&gt; e colocar uma breve &lt;strong&gt;descrição&lt;/strong&gt; (não é obrigatório, mas dá um tom de organização, né?!). O restante das opções, eu geralmente deixo o padrão que está: public e desmarcado para criação do README e do learning lab. &lt;/p&gt;

&lt;p&gt;Quando você clicar em &lt;strong&gt;"Create repository"&lt;/strong&gt;, vem a chave para nosso primeiro teste: &lt;strong&gt;todos os comandos&lt;/strong&gt; que precisamos executar em nosso PC para conseguir "subir" nosso primeiro arquivo! Segura esses comandos aí que, já já, vamos precisar deles.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--88wkHfo9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/g6xev8ldl3ntuy5uxpsx.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--88wkHfo9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/g6xev8ldl3ntuy5uxpsx.gif" alt="gif com criação conta e repositório no GitHub" width="640" height="322"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Criar projeto básico Spring Initializr &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Uma forma de criar um projetinho mais próximo da vida real para subir em nosso repositório, é utilizar o &lt;strong&gt;&lt;em&gt;Spring Initializr&lt;/em&gt;&lt;/strong&gt; &lt;a href="https://start.spring.io/"&gt;https://start.spring.io/&lt;/a&gt;, que pode gerar um pacote já com toda a estrutura de um projeto Java. &lt;br&gt;
Mas, para enviar ao GitHub utilizando o Git, podemos usar qualquer projeto ou conjunto de arquivos. Vamos criar o projeto com as seguintes definições:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Em "Project": &lt;strong&gt;"Maven Project"&lt;/strong&gt;; Em "Language": &lt;strong&gt;"Java"&lt;/strong&gt;; Em "Spring Boot": A versão que já vier marcada; &lt;/li&gt;
&lt;li&gt;Em "Project Metadata": Eu preencho assim: "Group": &lt;strong&gt;"com.isagiongo"&lt;/strong&gt;; "Artifact": &lt;strong&gt;"basic-git"&lt;/strong&gt;; "Name": &lt;strong&gt;"basic-git"&lt;/strong&gt;; "Description": &lt;strong&gt;"Testing Git"&lt;/strong&gt;; "Package name": &lt;strong&gt;"com.isagiongo.basic-git"&lt;/strong&gt;; &lt;/li&gt;
&lt;li&gt;Em "Packaging": &lt;strong&gt;"Jar"&lt;/strong&gt;; Em "Java": &lt;strong&gt;"8"&lt;/strong&gt;; (não precisa selecionar nenhuma dependência no momento).
Agora basta clicar em &lt;strong&gt;&lt;em&gt;Generate&lt;/em&gt;&lt;/strong&gt; que o site vai baixar nossa base de projeto em um arquivo compactado. 
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JIuEW6gZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/rkltjmurgpt85xlkwfs3.gif" alt="gif criação projeto no spring initializer" width="640" height="278"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Descompacte esse arquivo em seu diretório(pasta) de projetos-java, por exemplo. Acesse a pasta que você acabou de descompactar. Você deve conseguir ver pelo menos o seguinte lá dentro:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fZwSzRa9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ubn5pz1ceskxc3n8gpqx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fZwSzRa9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ubn5pz1ceskxc3n8gpqx.png" alt="arquivos projeto" width="375" height="192"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Comandos para inicializar nosso repositório e subir nosso projeto para o GitHub &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Agora vem a hora de utilizar aqueles comandos que o GitHub nos passou assim que criamos nosso repositório (para uma lista mais completa de comandos do Git, dá uma olhada &lt;a href="https://woliveiras.com.br/posts/comandos-mais-utilizados-no-git/"&gt;aqui&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Uma coisa importante para entender o que os comandos abaixo estão fazendo, é dar uma olhada nas &lt;strong&gt;&lt;em&gt;"áreas"&lt;/em&gt;&lt;/strong&gt; que o Git gerencia pra gente, e o fluxo que nossas alterações percorrem até chegar lá no nosso repositório no GitHub. A imagem abaixo ilustra isso. &lt;/p&gt;

&lt;p&gt;Quando utilizamos &lt;strong&gt;"git add"&lt;/strong&gt;, enviamos o arquivo para o "staging area" (área de preparo), que significa que ele está sendo preparado para entrar na próxima revisão do repositório. São as coisas que vão entrar no próximo commit. &lt;/p&gt;

&lt;p&gt;Ao executar &lt;strong&gt;"git commit"&lt;/strong&gt;, vamos pegar tudo que foi enviado com git add ao staging área e "tirar uma foto" do estado atual do projeto e registrar isso no nosso repositório local.&lt;/p&gt;

&lt;p&gt;E por fim, o comando &lt;strong&gt;"git push"&lt;/strong&gt;, vai enviar essas alterações commitadas para o repositório remoto. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Sj9Kbh6z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/usylarjh061xkgeigs99.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Sj9Kbh6z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/usylarjh061xkgeigs99.png" alt="Fluxo git" width="602" height="564"&gt;&lt;/a&gt;&lt;br&gt;
Estando dentro da pasta do seu projeto, vamos digitar os seguintes comandos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;o comando echo está "enviando" (&amp;gt;&amp;gt;) o conteúdo que está entre aspas duplas para o arquivo README.md (para saber mais sobre a função do README e como montar um bem legal olha esse &lt;a href="https://dev.to/reginadiana/como-escrever-um-readme-md-sensacional-no-github-4509#deixe-a-pregui%C3%A7a-de-lado"&gt;artigo.&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;echo "# Project Basic Git" &amp;gt;&amp;gt; README.md&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;o comando git init está criando um novo repositório do git
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;git init&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;como já tínhamos arquivos dentro da nossa pasta, fizemos um pouco diferente do indicado nos comandos do GitHub. O comando git add . adiciona todo o conteúdo do atual diretório à área de index do Git (&lt;a href="https://rogerdudler.github.io/git-guide/index.pt_BR.html"&gt;para saber mais&lt;/a&gt;)
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;git add .&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;o comando seguinte, vai confirmar que queremos adicionar essas mudanças, e sempre vamos colocar dentro de aspas duplas uma mensagem que explique o que esse commit está fazendo, o que ele está adicionando.É importante que a mensagem de commit realmente seja explicativa em relação às alterações que foram feitas.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;git commit -m "Enviando primeiro projeto ao GitHub"&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Depois disso vamos nos conectar ao nosso servidor remoto, ao nosso repositório do GitHub
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;git remote add origin https://github.com/isagiongo-tutorial/basic-git.git&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;E por fim, enviar essas alterações lá para o nosso repositório do GitHub
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;git push -u origin master&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--AH0pUJUC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/6d2y41z2gs7v0g25mkvx.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AH0pUJUC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/6d2y41z2gs7v0g25mkvx.gif" alt="gif com os comandos iniciais do git" width="640" height="280"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Pronto! Nosso projeto já está na nossa página do GitHub&lt;/em&gt;&lt;/strong&gt;! &lt;/p&gt;

&lt;p&gt;Só para fazer um teste, vamos editar nosso arquivo de README, acrescentando algumas informações para comprovar que o Git está mesmo "monitorando" nossas alterações. E claro, vamos novamente enviar o que alteramos em nosso projeto para nosso repositório remoto.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KMl-5cTM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/xhaivgtyjs9zltthwviv.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KMl-5cTM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/xhaivgtyjs9zltthwviv.gif" alt="gif gato colocando óculos e dizendo estou pronto" width="480" height="451"&gt;&lt;/a&gt;&lt;br&gt;
Se nenhum arquivo de nosso projeto tiver sido alterado, ao executar o comando &lt;strong&gt;&lt;em&gt;git status&lt;/em&gt;&lt;/strong&gt;, temos como resultado:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eE--VcCh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/qa6vc7mhmzphwyoownkv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eE--VcCh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/qa6vc7mhmzphwyoownkv.png" alt="Alt Text" width="663" height="100"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Isso nos informa que estamos trabalhando na branch master (assunto para próximos posts) e que estamos atualizados em relação ao que está no nosso repositório remoto (no GitHub). E nos informa também que, não temos nada a commitar, pois não acrescentamos nenhuma alteração.&lt;/p&gt;

&lt;p&gt;Agora vamos &lt;strong&gt;alterar&lt;/strong&gt; e &lt;strong&gt;salvar&lt;/strong&gt; o arquivo README, acrescentando qualquer informação. Após isso, vamos testar o comando &lt;strong&gt;&lt;em&gt;git status&lt;/em&gt;&lt;/strong&gt; novamente. &lt;/p&gt;

&lt;p&gt;Agora sim, temos a informação de que um arquivo foi modificado e que temos o que commitar.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NJjrE-PD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/fffy2x0kgejh9840al9b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NJjrE-PD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/fffy2x0kgejh9840al9b.png" alt="Alt Text" width="664" height="212"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;E assim faremos! Vamos adicionar o arquivo com &lt;strong&gt;&lt;em&gt;git add README.md&lt;/em&gt;&lt;/strong&gt;, commitar informando uma mensagem do que alteramos com &lt;strong&gt;&lt;em&gt;git commit -m "mensagem"&lt;/em&gt;&lt;/strong&gt; e enviar ao repositório remoto no GitHub com o comando &lt;strong&gt;&lt;em&gt;git push&lt;/em&gt;&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mDdZO9PE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/czb3vp1wnh1cpj42h65c.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mDdZO9PE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/czb3vp1wnh1cpj42h65c.gif" alt="alterado arquivo enviar ao github" width="640" height="324"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;E essa é a rotina básica de uso do Git! Toda vez que fizermos algum acréscimo ou alteração em nosso projeto, podemos adicionar e submeter essas alterações ao nosso repositório!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Abaixo alguns links interessantes e úteis para você aprender mais:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.udemy.com/course/git-e-github-para-iniciantes/"&gt;Curso grátis na Udemy sobre Git e GitHub básico&lt;/a&gt; - em português.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://learngitbranching.js.org/?locale=pt_BR"&gt;Para aprender mais sobre branches no git interativamente&lt;/a&gt; - em português.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/jlord/git-it-electron#what-to-install"&gt;App desktop para aprender na prática sobre Git&lt;/a&gt; - em inglês.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://ohshitgit.com/pt_BR"&gt;Acha que fez merda e não sabe como resolver? Aqui tem a resposta! :D&lt;/a&gt; - em português. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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