<?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: Germano Barcelos</title>
    <description>The latest articles on DEV Community by Germano Barcelos (@gegen07).</description>
    <link>https://dev.to/gegen07</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%2F131588%2Fec115372-1c16-47f7-8f7c-1d071745ea0a.jpeg</url>
      <title>DEV Community: Germano Barcelos</title>
      <link>https://dev.to/gegen07</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gegen07"/>
    <language>en</language>
    <item>
      <title>Git? Sistema de Versionamento? O que é isso?</title>
      <dc:creator>Germano Barcelos</dc:creator>
      <pubDate>Thu, 14 Feb 2019 00:33:11 +0000</pubDate>
      <link>https://dev.to/gegen07/git-sistema-de-versionamento-o-que-isso-2om9</link>
      <guid>https://dev.to/gegen07/git-sistema-de-versionamento-o-que-isso-2om9</guid>
      <description>&lt;h1&gt;
  
  
  Introdução
&lt;/h1&gt;

&lt;p&gt;Git é um sistema de versionamento que te possibilita controlar as versões de arquivos. Esqueça de criar diretórios nomeando arquivos como: projeto-versão1, projeto-versão2, projeto-versão-final. Com git você não precisa mais controlar manualmente a versão de seus arquivos, ou seja, você terá no diretório a versão que você deseja. &lt;/p&gt;

&lt;p&gt;Com pequenos comandos é possível fazer esse versionamento, apresentarei os principais. Para os mais curiosos a &lt;a href="https://git-scm.com/docs"&gt;documentação&lt;/a&gt; é excepcional e explica tanto em português quanto inglês outras várias funcionalidades do sistema.&lt;/p&gt;

&lt;h1&gt;
  
  
  Principais Comandos
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;Antes de começar tenha certeza que tenha o git instalado em seu PC.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Comando: &lt;code&gt;git init&lt;/code&gt; - inicia o controle da versão na pasta desejada&lt;/p&gt;

&lt;h2&gt;
  
  
  Stages
&lt;/h2&gt;

&lt;p&gt;Temos vários estágios no git:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Working Directory - Esse é o estágio inicial, quando modificamos o arquivo&lt;/li&gt;
&lt;li&gt;Staging - O arquivo passa para esse estágio quando o adicionamos ao controle&lt;/li&gt;
&lt;li&gt;History - O arquivo chega a esse estágio quando salvamos esse arquivo com o controle&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;&lt;em&gt;OBS: Existe esse ponto, é um comando que diz que todos os arquivos estão sendo adicionados ao estágio de staging.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;O &lt;code&gt;git add&lt;/code&gt;, portanto é responsável por passar o arquivo do working directory para o staging. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;git add nome_do_arquivo&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Passa somente um arquivo.&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;git commit -m "Mensagem"&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;OBS:A flag -m é um comando para colocar uma mensagem no seu commit. Se você não usar a flag, abrirá um editor para colocar a mensagem desejada.&lt;/em&gt;&lt;br&gt;
Esse comando salva os arquivos que estão no staging no history, ou seja, se não existe nenhum arquivo no estágio de staging, o &lt;code&gt;git commit&lt;/code&gt; não salvará nada.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;git status&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Se por acaso não souber os estágio dos arquivos o git status irá te informar sobre.&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;a href="https://github.com/"&gt;Github&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;Agora imagina em uma empresa vários desenvolvedores trabalhando desse jeito: um precisa fazer atualização em um código e ao mesmo tempo um outro dev está desenvolvendo uma nova feature; e quando eles acabarem, como vão controlar as mudanças sem perder nenhuma linha de código?&lt;/p&gt;

&lt;h2&gt;
  
  
  Só o Git resolve?
&lt;/h2&gt;

&lt;p&gt;Sim só o git resolve, é um sistema completo. Utilizaremos um outro recurso chamado remote. O remote é um recurso para adicionar um servidor para servir o estágio de &lt;em&gt;history&lt;/em&gt; de seu controle de versão. E esse servidor que vamos utilizar é o &lt;em&gt;github&lt;/em&gt;. Existe, hoje, vários servidores como o BitBucket e Gitlab, porém o Github é o mais famoso e por isso é importante conhecê-lo para principalmente criar o seu portfólio, colaborar em projeto de código aberto para ser visto por empresas (Github vale como um cartão de apresentação). &lt;/p&gt;

&lt;p&gt;Crie o seu user no &lt;a href="//github.com"&gt;github&lt;/a&gt;. Crie um novo repositório, este será o lugar onde estará o código que está sob versionamento.&lt;br&gt;
&lt;em&gt;É necessário ressaltar que o github serve arquivos somente que estão no estágio de history&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;git remote add "nome curto" "url"&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Adicionando a url de seu repositório&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;em&gt;Copiando os recursos do estágio "History" para o repositório&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Mas até agora só mudamos o estágio de History para o Repositório, não solucionamos o problema. &lt;/p&gt;

&lt;p&gt;Onde a mágica acontece:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;git pull&lt;/code&gt;&lt;br&gt;
Buscamos mudanças de nosso repositório para o nosso controle, ou seja, trazemos os arquivos do github e alteramos no nosso controle. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Com isso conseguimos resolver o problema inicial: quando um desenvolvedor acabar com a alteração do código, o dev que está desenvolvendo a nova feature irá realizar o processo de &lt;em&gt;pull&lt;/em&gt; e atualizará o código dele para uma versão mais nova sem problemas e sem preocupação de perder todo o trabalho que ele tinha feito. Não é bonito? &lt;/p&gt;

&lt;p&gt;Não perca tempo de usar esse sistema, use com sabedoria!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Existem outros tipos de sistema de controle de versão que possui os mesmos princípios como, por exemplo: SVN e Mercurial.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Sharing is good, and with digital technology, sharing is easy!&lt;/em&gt; - Richard Stallman &lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
