{"componentChunkName":"component---src-templates-blog-post-js","path":"/git-no-dia-a-dia/","result":{"data":{"markdownRemark":{"html":"<p>Olá a todos, faz um tempo que não escrevo aqui no blog, os último artigos foram o da série de <strong>Java</strong>, você pode conferir desde o básico da linguagem até o paradigma de orientação a objetos, porém por hora vou parar com essa série e falar sobre outros conteúdos e tecnologias e para começar irei falar sobre <strong>Git</strong> e como utilizamos no dia a dia. <strong>Git</strong> é uma ferramenta fantástica e com muitos recursos porém irei me ater nos pontos que vejo serem mais utilizados no dia a dia de um profissional de tecnologia.</p>\n<h1 id=\"O-que-e-o-Git\" style=\"position:relative;\">O que é o Git?<a href=\"#O-que-e-o-Git\" aria-label=\"O que e o Git permalink\" class=\"anchor after\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a></h1>\n<p>O <strong>Git</strong> é uma solução para essas situações onde o versionamento e repositório de código são necessários, não é a única e nem a primeira ferramenta a fazer isso mas é a mais usada por suas facilidades, segurança e assincronicidade. Foi desenvolvido em 2005 por <strong>Linus Torvalds</strong>, ele mesmo o criador do kernel do <strong>Linux</strong>.</p>\n<p>Poderia continuar e explicar um monte de detalhes do por que o <strong>Git</strong> caiu nas graças da comunidade de tecnologia mas o ponto aqui é mostrar como usá-lo no seu dia a dia e como resolver algumas situações que podem ficar um pouco mais complicadas.</p>\n<h1 id=\"Instalacao\" style=\"position:relative;\">Instalação<a href=\"#Instalacao\" aria-label=\"Instalacao permalink\" class=\"anchor after\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a></h1>\n<p>A instalação do <strong>Git</strong> é muito fácil e simples, sendo necessário apenas alguns passos.</p>\n<p>Para <strong>Windows</strong> basta baixar o <a href=\"https://git-scm.com/downloads\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">instalador</a>. Para sistemas <strong>Linux</strong> é possível através de linha de comando por algum gerenciador de pacotes aqui segue a instalação para a maioria das distribuições <a href=\"https://git-scm.com/download/linux\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Linux</a> e para <strong>MacOS</strong> é possível instalar pelo <strong>home brew</strong> ou <strong>Xcode</strong> basta seguir o <a href=\"https://git-scm.com/download/mac\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">tutorial</a></p>\n<p>Com o <strong>Git</strong> instalado vamos utilizá-lo pelo terminal, existem opções gráficas porém vamos focar na linha de comando que é onde passamos a maior parte do nosso dia com o <strong>Git</strong>.</p>\n<h1 id=\"Iniciando-um-projeto-com-Git\" style=\"position:relative;\">Iniciando um projeto com Git<a href=\"#Iniciando-um-projeto-com-Git\" aria-label=\"Iniciando um projeto com Git permalink\" class=\"anchor after\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a></h1>\n<p>Para iniciar o projeto com <strong>Git</strong> vamos abrir o terminal e criar uma pasta:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token function\">mkdir</span> projeto-git <span class=\"token operator\">&amp;&amp;</span> <span class=\"token builtin class-name\">cd</span> projeto-git</code></pre></div>\n<p>Após isso vamos inicializar o <strong>Git</strong> nessa pasta:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token function\">git</span> init</code></pre></div>\n<p>Vai aparecer uma mensagem parecida com isso:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\">Initialized empty Git repository <span class=\"token keyword\">in</span> <span class=\"token operator\">&lt;</span>CAMINHO-DA-PASTA<span class=\"token operator\">></span></code></pre></div>\n<p>Pronto, só isso é necessário para iniciar um projeto que terá gerenciamento de versão pelo <strong>Git</strong></p>\n<h1 id=\"Configurando-usuario-e-email\" style=\"position:relative;\">Configurando usuário e email<a href=\"#Configurando-usuario-e-email\" aria-label=\"Configurando usuario e email permalink\" class=\"anchor after\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a></h1>\n<p>Com o projeto <strong>Git</strong> iniciado vamos antes de mais nada configurar o usuário e email. Isso é importante para que o <strong>Git</strong> saiba qual usuário está realizando as alterações:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token function\">git</span> config --global user.name <span class=\"token string\">\"Seu nome\"</span>\n<span class=\"token function\">git</span> config --global user.email seuemail@exemplo.br</code></pre></div>\n<p>E depois para confirmar as configurações que foram feitas:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token function\">git</span> config --list\n\nuser.name<span class=\"token operator\">=</span>Guilherme Alves\nuser.email<span class=\"token operator\">=</span>guilherme.garcia86@gmail.com\ncore.repositoryformatversion<span class=\"token operator\">=</span><span class=\"token number\">0</span>\ncore.filemode<span class=\"token operator\">=</span>true\ncore.bare<span class=\"token operator\">=</span>false\ncore.logallrefupdates<span class=\"token operator\">=</span>true</code></pre></div>\n<h1 id=\"Utilizando-o-GitHub\" style=\"position:relative;\">Utilizando o GitHub<a href=\"#Utilizando-o-GitHub\" aria-label=\"Utilizando o GitHub permalink\" class=\"anchor after\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a></h1>\n<p>Antes de continuarmos falando a respeito de <strong>Git</strong> é importante falarmos sobre <strong>GitHub</strong> e entender que são duas coisas distintas uma da outra, enquanto o <strong>Git</strong> é a ferramenta de versionamento de código o <strong>GitHub</strong> é uma empresa trabalha com o <strong>Git</strong> para hospedar os seus códigos, existem diversas outas empresas que trabalham com <strong>Git</strong> como <strong>GitLab</strong> e <strong>Bitbucket</strong> cada uma dessas empresas possuem funcionalidades próprias que nos ajudam porém se você usar apenas <strong>Git</strong> o resultado é o mesmo em todas.</p>\n<p>Nesse artigo usaremos o <strong>GitHub</strong> e vamos mostrar agora como criar uma conta, criar um projeto no <strong>GitHub</strong> e criar uma chave <strong>SSH</strong> para podermos enviar o nosso código para lá.</p>\n<p>Criar uma conta no <strong>GitHub</strong> é bem tranquilo, basta acessar o <a href=\"https://github.com/signup\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">site</a> deles e seguir os passos e após isso você já tem acesso ao dashboard do seu usuário e pode criar seus <strong>repositórios</strong>, que é a forma como nos referimos aos projetos no <strong>Git</strong>.</p>\n<p>Um último passo é criar um chave <strong>SSH</strong> para que possamos nos comunicar de forma segura com o <strong>GitHub</strong>, primeiramente você precisa criar uma chave na sua máquina, se você não sabe como fazer isso segue o <a href=\"https://docs.github.com/pt/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">link</a> do próprio <strong>GitHub</strong> de como criar uma chave <strong>SSH</strong> tanto pra <strong>Windows</strong>, <strong>Mac</strong> ou <strong>Linux</strong>. Feito isso agora podemos ir no <strong>GitHub</strong> nas configurações (settings):</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 280px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 269.93865030674846%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,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'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image lazyload\"\n        alt=\"settings git\"\n        title=\"settings git\"\n        data-src=\"/static/2f6e4fed43f525304a617fa1f7eb253b/908b1/settings-git.png\"\n        data-srcset=\"/static/2f6e4fed43f525304a617fa1f7eb253b/222b7/settings-git.png 163w,\n/static/2f6e4fed43f525304a617fa1f7eb253b/908b1/settings-git.png 280w\"\n        sizes=\"(max-width: 280px) 100vw, 280px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<p>Estando na tela de configurações, clicar na guia <strong>SSH and GPG keys</strong>, no meu caso já possuo algumas chaves configuradas:</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 428px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 216.5644171779141%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAArCAYAAAB4pah1AAAACXBIWXMAABYlAAAWJQFJUiTwAAAEvUlEQVRIx51WyXLiVhRlF9tAM0rMyMyjAAFiNG5juym7q8tOuiu9SvYpV34gm2yTqnz0ybkPSZYBOziLy3086V2dO537AuGojg+xFH4IxnESiuM0lIDshSJJnIUTOAnGlD4Lx5UOqjX1h6R6dsozcl7OiAQi8RQfxGGPbTw9/YaLywsa06BlDJxX22h2h8gbNRRLDRTO68gWKsgVq8hTGp0h6q0+XFAiAfkJRXT8/usD/v7zCf/89QeKRhmXN19w//ANt/ePWK3vcL35gk93P+Lr91/w8XqD1dUGP3G9vr1HiGg9g8p6PI1GtYz10sLdzQIJLUt0HYVMIaLOqXUVRrmlEMr/s9A2DC9cdv9EaLRolBCNp5TLsWQWiVQBSUpCz3s6ruXUWrSLyi+OQY2wJdhJZUxEgi5y5iTB3feLi8ovgbCg0Q3ohRZdKiErARcXqdP5EvLnNSV61tiXjCNcC2plMBiOQTdMVKwNqo0W+uMFPj9+ZwIesVjdcP0zNp8fUCjVPOO7UijVkSmUHYQqKRmiLCCTL0NLF/nVovqyIHTjJvqQxPXtM4n5i6SIdAczlFh7DdZWt29TDxBW8dIPxssT5/lz2ThG5SuCRjLuyYFMviZ7ZVOudxmPJiaLjxiM5hgMp+gPZ8jkSsy4dpRRz6DoZKqodIyFHU1kPMT+d44yuG0/jQhNnFdaaHYstM0RhvYC08VadUjQaa9w7G3DezEUZEkngy5C2Xs3QjlQbfZgVNoYT5ewRjOY/Qms4QLF84bywF8Rr8mLGAoS0W6G5X+UNSrrYzMd8LvynoNvu6zgppS74rZ0iyRhy9xvk8GbLoshSUaadecmyG07+X9M+XgG5XC9baHS6GI8WcEaz9ExxzAHY4zsJRNke/16dGELQheJv6Bd199quYMI26ZN6m+hZ7FcRgskaVQZkgOKBDQfGTzH1G80EHaTImXDWEWIMCLopIRkLYhlLSWkbZ8L+ngy55XZQYQxloxFumqXm1iOZ1iSFOaWjXHXhm0OMBvYWE9XmFlz9BhXa7RUNBfZNSgbp9y4YgFfkxyWJNrLtIELolkSyYp7VyRbWU/4ziaRxYAfPxGG8pXcnsE7utIhORhss15vApMZHjGWnfYIPXPI9ZRD30KT7y/oqjLoM+bF0DU4Z0we8hWsqW+ITgljekvE10R3zf019R0RNonwdCcZewQb5FcbgymyHOQma7BNgm30WIeMVY1XjjA9OGGWT0hfZzvG/Nl+ZmxqnbFLEIUmA57IZC0SdUaBK1tePKJTWoyb6pTZBTo9oa4pR8FU8eMh+lL/5WJFIN7UO8Q2L4bUAQbaRed/J+B/oPgvkfG40H3Rv+8+O6qXi5x4FZZOqdZFrdmn+z01p0u8idVY9LKnhAWdeCUML0aAxELaSuIhSKS95KA7xNSlyseN/zn1BFG53sFoesH2YnEzMX22Wt54nnqvscxBl+U+o+6FcmdxCPb5ZX1HHxHDZnfEMUD64sQb2nMMeRPT0oWdWL3j5pDOlRnDLd3H9hCm3ncViUqP8sYvCCfzFbpsu7CXjP0WO2rQx5ybl2TXzbSr/9fNQd32izUMGDvJcouIJ7M1a888/uawSz/+lvN3yLEx/BdT8lNgVlqK9wAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image lazyload\"\n        alt=\"ssh gpg keys\"\n        title=\"ssh gpg keys\"\n        data-src=\"/static/6e9e173a37272ac6fba38f42dfa05f1b/47730/ssh-gpg-keys.png\"\n        data-srcset=\"/static/6e9e173a37272ac6fba38f42dfa05f1b/222b7/ssh-gpg-keys.png 163w,\n/static/6e9e173a37272ac6fba38f42dfa05f1b/ff46a/ssh-gpg-keys.png 325w,\n/static/6e9e173a37272ac6fba38f42dfa05f1b/47730/ssh-gpg-keys.png 428w\"\n        sizes=\"(max-width: 428px) 100vw, 428px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<p>Depois clicar no botão <strong>New SSH Key</strong>:</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 52.760736196319016%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB/Ca1DAAAACXBIWXMAABYlAAAWJQFJUiTwAAABkklEQVQoz4VTyW7bMBDVJU4cSyLFVRS1RVbtOECBBOihKNBD/v+jXmZoeUWKHh44HHHevFmUzbs3DNMB4/YAqQNyYRPKyv8XTxuDQgR04x799ArjO2TtMMM3I7RrUUgHU/doum0KYOJCHnG03Rl5afHxa8bvvwdYF6FsS4JqZLGfr4JdIq7jBFsPcGEkDDewlJBPrmbsI7YvLcqrhNlAUpWJ6VJKD0FZTGzhfItNLkmJxqZQdCoI5RORVPVSdk2+5hi7tCHj8irTIJdL3yiosgHKN5CW7tql75dy/dnWJsDaeEvYDT9SmZyZPwjKrkOkvg70wCaFSSXhOrAgcCJ9T7h/e8e8/4nQTekBOyUp1HVE5QOE8dQS9rtbQrIViTD3hNxDVsgXVsdKNU1t9fSMx/UGq8c14RkPq3VSeU1Y8dt7wtBOaXI3JVMCQ0OxdQdBj5goF+Z7heaOkBeaSU6NFiqk0ivXE16gXJfAtrQ9bcIluDQLlgSLwu1ZHYN3jDf/5PvXX8KLPf3ZYff5SgM6Tp/9X98AEPLC73bLAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image lazyload\"\n        alt=\"ssh keys\"\n        title=\"ssh keys\"\n        data-src=\"/static/a818e2b10ab849e4806b8027ff92bec6/a6d36/ssh-keys.png\"\n        data-srcset=\"/static/a818e2b10ab849e4806b8027ff92bec6/222b7/ssh-keys.png 163w,\n/static/a818e2b10ab849e4806b8027ff92bec6/ff46a/ssh-keys.png 325w,\n/static/a818e2b10ab849e4806b8027ff92bec6/a6d36/ssh-keys.png 650w,\n/static/a818e2b10ab849e4806b8027ff92bec6/e548f/ssh-keys.png 975w,\n/static/a818e2b10ab849e4806b8027ff92bec6/3c492/ssh-keys.png 1300w,\n/static/a818e2b10ab849e4806b8027ff92bec6/56e36/ssh-keys.png 1750w\"\n        sizes=\"(max-width: 650px) 100vw, 650px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<p>Nos campos que apareceram, basta adicionar um título para sua chave SSH e colar o conteúdo da chave foi gerada e clicar em <strong>Add SSH key</strong>.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 52.14723926380368%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAABYlAAAWJQFJUiTwAAABQklEQVQoz4WSS3OCMBSFg7YqCERICBB5WdTqtFPbdbvstv//55wmGZMi6nTxTYZwc+65D/J+OmGzOype0D4dECc5IsoNIc0M0UpcYeLOZ1n1aNRbWfcgPK9QrDdIuHRBadGDyx3WzRZZ0biHlrHgipVIs7U6JUhWtGg2zy5Aw/IGlP0lWMZMwQ1jcRtjKyFMVEZQZ7GC2nWcCMyDFfwwUaQO24YhwyRGUJdF08L90E5mfgzvwcfkMbhA340JIuacklx2qLu9EbV9nM5CEG8GMl38jzc3zp2gbPY4vH6g64/IZWtKXwSxEvXvOrLOyWSBZa4qS1W553YRrpxph9pdpCdGBb4+9/j+eUMtCgTx7bUxqP5RXl5MXK1NjardgYna9THNSjVpCaoDRxO9NeHhGpkeVu32YlohFQbzfc/dQGjo8BeR6/D+J4LCEAAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image lazyload\"\n        alt=\"ssh save\"\n        title=\"ssh save\"\n        data-src=\"/static/f177f05202d9313ef2b23e64175f9d02/a6d36/ssh-save.png\"\n        data-srcset=\"/static/f177f05202d9313ef2b23e64175f9d02/222b7/ssh-save.png 163w,\n/static/f177f05202d9313ef2b23e64175f9d02/ff46a/ssh-save.png 325w,\n/static/f177f05202d9313ef2b23e64175f9d02/a6d36/ssh-save.png 650w,\n/static/f177f05202d9313ef2b23e64175f9d02/e548f/ssh-save.png 975w,\n/static/f177f05202d9313ef2b23e64175f9d02/3c492/ssh-save.png 1300w,\n/static/f177f05202d9313ef2b23e64175f9d02/8fdfc/ssh-save.png 1725w\"\n        sizes=\"(max-width: 650px) 100vw, 650px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<p>Pronto a chave foi configurada com sucesso e agora você consegue baixar ou enviar seus códigos para os seus repositórios no <strong>GitHub</strong>.</p>\n<h1 id=\"Criando-repositorios-no-GitHub\" style=\"position:relative;\">Criando repositórios no GitHub<a href=\"#Criando-repositorios-no-GitHub\" aria-label=\"Criando repositorios no GitHub permalink\" class=\"anchor after\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a></h1>\n<p>Agora vamos criar o nosso repositório no <strong>GitHub</strong>, o mesmo que iniciamos localmente no início do artigo, para isso vamos ao dashboard do seu usuário no <strong>GitHub</strong> e clicar no botão <strong>New</strong> na parte de <strong>Repositories</strong>:</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 478px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 65.6441717791411%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAABYlAAAWJQFJUiTwAAACNklEQVQ4y3WSy3bSUBSGYy2lJCSB3EnCLSRAgZZbAW2lNF5Ru5bOdC1HOnPi0JEDZz6Dz6Dv+Lv3SSm42g6+7J2Tc/b5984vOX4TXthC+uIKjbgPu9IQmG4NllcXbHJe5/334QYRJN30sXy6xo+fv/Dh0xeoJRdxu4/eYIy406O8h15/hKR7DL/aRFG3aY9zC9MJqWgdEt8cd4dYpmtMFhcwnCodjBHUElTCiGKMsJ7Ap+jRu8Vq78DxG6SwCcmwQ+hmBWrZhVb2qL0qeK1M/BetgPKALgxvc72nZPmQWC63IWtE0UBeLuFQIShmeVlERbPubHUX3iPJqoUoivH82QVanSGm8yc4Hi8yRnMMRgtMZueoBDw/h7pw74WFSfxwKyG6nTaayQBR0kc96iJqD9A+GqLeOkKLcoPaZRV8UC2TIsPdslswSxzIqi0ky6p5E3dzLqbTjPmwzihUXLFFLKmOWFc2BbMZbO3AN+3aY9OSTMp8im8cH2k/wqsT8m+/hlVSxYrsp3FBVhDWO3h0nmI0PcPpYonF2SVmj1c4nV/gZDwjlbZQVSAizcVlK8DV75f49uczvv79iMX3CVKjApsLsoIS2cYSdgkEtlcTRjWFHYIbtTJ14dF4Xrs+3i4TvE+7eJe2sZ42sWTrbVpWNBP7+SLyZJdcQcOBrGfWIfZyCqSHh4IHHPeJPUI6uCZH34pCvaJb2xkWimUx/IJq7Pwcehfe1IUXN7BHC8UMvpT36eLnWvgHj05SCUlLr/sAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image lazyload\"\n        alt=\"new repository\"\n        title=\"new repository\"\n        data-src=\"/static/258ea6f41e33787c0513d3bdef644f26/50978/new-repository.png\"\n        data-srcset=\"/static/258ea6f41e33787c0513d3bdef644f26/222b7/new-repository.png 163w,\n/static/258ea6f41e33787c0513d3bdef644f26/ff46a/new-repository.png 325w,\n/static/258ea6f41e33787c0513d3bdef644f26/50978/new-repository.png 478w\"\n        sizes=\"(max-width: 478px) 100vw, 478px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<p>Após isso vamos adicionar o nome do projeto, manter as configurações de projeto como público e não selecionar mais nada para que seja criado um repositório vazio para nós e clicar em <strong>Create Repository</strong>.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 110.42944785276075%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAWCAYAAADAQbwGAAAACXBIWXMAABYlAAAWJQFJUiTwAAACe0lEQVQ4y5VU2XLaQBDkIXF8ALrQtboPJAPGhjLYOez3fIQrH5BKlf//qTMzOiInZSAPXbsqrUbd0z07clWCxc0WaXGNsr7B/PoW9WqLarGB5YTQTA+65R8Fn5voDka2KlAsHpBUOyTzDYK4RJjMoaISbpDB9pIWsayOn8re8ZP+natSmHbQFJwaVNlQmJoKY93D1XTWY6zZAj54CqaGixFXT4sFImKVFUsYM/WPFD54CoShF+bY7J6w3T+hqNfUtwgz9w86KadixCz8sECU1tKb7sVQ9qkMW8kZFLG8GBtSoOtFlFZI8oWYpLcODnv1bkEV5dg9fMV6+xl3919ofURA/WSpXpAS+wyXExMfPk1wdjnFlW5gorXFZXXfmsIyS+od96+Y3yArV8IuoNjEWS3oosTFQ9p7aQIrUbDzEKanpGhvCucpp0IqKsSEv2V1e80cuGnSGYPiZFKsdPtNr0eNnHEj6WKKj+cdJi2G++b5bIgLTb47vzJayT6ZEleSRWbIrnMW3wO/P5hDi4rE2Vz6xvLZDNMOZY4Zb58jKXowh+bMQxJacjl4NLvMoCvG6MI9HMGDsdEt1TPjj7t9Y4TX4+RgB/Ec680jlusdVrd7urbuesdtP5EfMOuxNmsZukckE5skv6borCSLnEvuGa/9PHPvnAyapY5LtpwAabkUZj6NIDddzGgNafYpdDumK847XtC0FaKsognhuS1aV4NB4Rg6sZN7sw3vQcmaFdCY1QgJKqxg2FHjsEjt3Kaf+KWwPMpwmQS4f6iw29ey1nEIndho7eWqmX4DS4nkoy5/3+d4eX3Gj5/PePn1Dc+rGNqYMmc4/3WxdvgN3A4qtMpmjVkAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image lazyload\"\n        alt=\"create repository\"\n        title=\"create repository\"\n        data-src=\"/static/8c47ba34dd39888fd5beb0bc456df6e8/a6d36/create-repository.png\"\n        data-srcset=\"/static/8c47ba34dd39888fd5beb0bc456df6e8/222b7/create-repository.png 163w,\n/static/8c47ba34dd39888fd5beb0bc456df6e8/ff46a/create-repository.png 325w,\n/static/8c47ba34dd39888fd5beb0bc456df6e8/a6d36/create-repository.png 650w,\n/static/8c47ba34dd39888fd5beb0bc456df6e8/23266/create-repository.png 923w\"\n        sizes=\"(max-width: 650px) 100vw, 650px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<p>Pronto com isso o projeto foi criado no <strong>GitHub</strong> e está pronto para uso.</p>\n<h1 id=\"Branch\" style=\"position:relative;\">Branch<a href=\"#Branch\" aria-label=\"Branch permalink\" class=\"anchor after\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a></h1>\n<p>O <strong>Git</strong> trabalha bastante com o conceito de <strong>branches</strong> que são as ramificações a partir de uma fonte de código, para entender melhor vamos imaginar que o <strong>Git</strong> é como uma árvore e o tronco dessa árvore é código de alguma aplicação que você está trabalhando:</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 100%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACuElEQVQ4y6VUTUtqYRA+amnWpsJMCPqCkCI/FilYUGYWiGRUJNEHlUWJhdIHRqGbKAgjXCniKlwEgdFCQaigrX+if+DGRe3kucx4j9Ulb93bwMs57zkzz/vMPDOvIAgCxNXT04POzk7IZDLe19fXQyKRVP7X1tbivX+VJVSCbDYbnE4nhoeHeT8yMoL29nY+oLm5GX19fVCpVN8HHBsbY7BwOMz7qakpaLVaBqWDRkdHodFo0N3djZqamuqAdXV1vFlcXITD4cDy8jLUajUDE1hLSwt2dnZwcXHBfpOTk8xaLpdXgKRSqUiszNBsNjOL8/NzTE9PI5lM4uDggINaW1uxvb2NQCDAwePj4/zs6Ojg9YEhIdOL1WpFNBrF6uoqHh4e+J1SW1pagtvtRjAYxPHxMfva7XZ+6nQ6/jc0NISJiQm0tbWVGYrL7/fD6/Uy4O7uLrPr7e3F09MTbm9vMTs7y6mSOORPjFdWVjA/Pw+fz8cZCtQaVOimpiYOnpub4+BMJoNUKsXqzszMYG9vj4PJhxgRM6o3saVy0QENDQ1lQCq8wWBgFSmN9fV1RCIRxONxnJ2dMVB/fz9OTk4QCoVwdHSEra0tnJ6espADAwOc7u/ylRuW0BsbG1nhjY0N3NzcsEAEcnV1hYWFBeTzeby+vvJha2tr2NzcxODgIBPQ6/VvbUPoRqMRJpOJFaWWsVgsDPT4+IhCoYCXlxfc3d3h8PAQHo+H60jlICKUpSiu8NUopdNpkGWz2e+M3Rsg9eL7uRWb1uVyMeD+/j7vlUolK/3e91PAP5d4QZCaZJeXlx++f8mwGiApTJZIJCoj9iNA6ksyquU/1bAaIF0EpVIJ9/f3PwMUryeaYbJcLvf/gGKdurq6UCwWIZo4w1/U8fMfND3X19d4fn7mm4fmOhaLQaFQ/JXhL6QHXVYoXEAHAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image lazyload\"\n        alt=\"Tronco principal\"\n        title=\"Tronco principal\"\n        data-src=\"/static/2fa47e49dd3935d0ccdb5d752eb0014f/a6d36/Tronco%20principal.png\"\n        data-srcset=\"/static/2fa47e49dd3935d0ccdb5d752eb0014f/222b7/Tronco%20principal.png 163w,\n/static/2fa47e49dd3935d0ccdb5d752eb0014f/ff46a/Tronco%20principal.png 325w,\n/static/2fa47e49dd3935d0ccdb5d752eb0014f/a6d36/Tronco%20principal.png 650w,\n/static/2fa47e49dd3935d0ccdb5d752eb0014f/e548f/Tronco%20principal.png 975w,\n/static/2fa47e49dd3935d0ccdb5d752eb0014f/302a4/Tronco%20principal.png 1080w\"\n        sizes=\"(max-width: 650px) 100vw, 650px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<p>Essa árvore possui galhos, ou ramificações, saindo do tronco, é a mesma coisa com as <strong>branches</strong> elas são ramificações que saem de uma parte principal e com isso temos uma cópia do código porém sem afetar a raiz do repositório. O ganho disso é rastreabilidade de saber o que foi feito, por quem foi feito e com isso podemos desfazer alterações de forma mais simplificada se for necessário.</p>\n<p>Cada <strong>branch</strong> possui um nome e geralmente a <strong>branch</strong> principal se chama <strong>main</strong>, no passado era comum se chamar <strong>master</strong> mas este nome caiu em desuso por ser um termo <strong>racista</strong>, a partir da branch <strong>main</strong> conseguimos criar outras <strong>branches</strong> com o seguinte comando:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token function\">git</span> checkout -b develop</code></pre></div>\n<p>Com o comando acima eu realizo a operação de <strong>checkout</strong> para que eu saia da <strong>branch</strong> atual e vá para outra que será informada, o parâmetro <strong>-b</strong> é para criar uma <strong>branch</strong> que não existe no momento do <strong>checkout</strong> e por fim <strong>develop</strong> é só um nome qualquer que eu dei para a <strong>branch</strong>, poderia ser qualquer nome de sua preferência.</p>\n<h2 id=\"Adicionando-arquivos-no-projeto\" style=\"position:relative;\">Adicionando arquivos no projeto<a href=\"#Adicionando-arquivos-no-projeto\" aria-label=\"Adicionando arquivos no projeto permalink\" class=\"anchor after\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a></h2>\n<p>Após criarmos o projeto <strong>GIT</strong> agora é hora mostrar como criar um arquivo e adicionar ao <strong>GIT</strong>.</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token function\">touch</span> helloWorld.txt</code></pre></div>\n<p>Esse comando irá criar um arquivo pelo terminal do <strong>Linux</strong>, caso você esteja usando <strong>Windows</strong> basta criar um arquivo pela interface gráfica.</p>\n<p>Com isso o arquivo já passa a ser gerenciado pelo <strong>GIT</strong>, se quisermos saber o estado das alterações basta executar o comando <strong>git status</strong>:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token function\">git</span> status\nOn branch master\n\nNo commits yet\n\nUntracked files:\n  <span class=\"token punctuation\">(</span>use <span class=\"token string\">\"git add &lt;file>...\"</span> to include <span class=\"token keyword\">in</span> what will be committed<span class=\"token punctuation\">)</span>\n\thelloWorld.txt\n\nnothing added to commit but untracked files present <span class=\"token punctuation\">(</span>use <span class=\"token string\">\"git add\"</span> to track<span class=\"token punctuation\">)</span></code></pre></div>\n<p>O resultado desse comando basicamente diz em qual <strong>branch</strong> o <strong>GIT</strong> está, veremos o que é isso em breve, se existe algum <strong>commit</strong>, também veremos em breve isso e que existem arquivos que não são rastreáveis, nesse caso o arquivo <strong>helloWorld.txt</strong> e termina dando o comando que podemos usar para adicionar esses arquivos para serem gerenciados pelo <strong>GIT</strong>, o comando <strong>git add arquivo</strong> faz isso para nós:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token function\">git</span> <span class=\"token function\">add</span> helloWorld.txt</code></pre></div>\n<p>Também é possível não especificar o arquivo e pedir para que toda alteração seja adicionada:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token function\">git</span> <span class=\"token function\">add</span> <span class=\"token builtin class-name\">.</span></code></pre></div>\n<p>O <strong>.</strong> (ponto) diz para adicionar tudo o que não estiver rastreado pra o <strong>GIT</strong>.</p>\n<h1 id=\"Commit\" style=\"position:relative;\">Commit<a href=\"#Commit\" aria-label=\"Commit permalink\" class=\"anchor after\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a></h1>\n<p>Após adicionar os arquivos desejados no projeto usando <strong>GIT</strong> é necessário enviá-los para algum lugar, pois até o momento nós só adicionamos os arquivos para serem monitorados pelo <strong>GIT</strong> mas eles continuam somente no seu computador o que pode ser perigoso já que muitas vezes em uma mesma <strong>branch</strong> pode haver mais de uma pessoa trabalhando ou até mesmo qualquer outro incidente pode acontecer no seu computador e você perder todo o trabalho realizado.</p>\n<p>O comando <strong>commit</strong> do <strong>GIT</strong> não irá enviar suas alterações para um repositório na nuvem, <em>ex.: GitHub</em>, mas ele é capaz de salvar o estado atual do seu projeto, ele é como um comando <em>Crtl+S</em> que manda salvar a alteração localmente.</p>\n<p>Vamos adicionar algum conteúdo ao nosso arquivo <em>helloWorld.txt</em> para que o <strong>GIT</strong> perceba a alteração e com isso possamos salvar essas alterações com o comando <em>commit</em>:</p>\n<div class=\"gatsby-highlight\" data-language=\"txt\"><pre class=\"language-txt\"><code class=\"language-txt\">#helloWorld.txt\nOlá Mundo!!!</code></pre></div>\n<p>Vamos adicionar a alteração no <strong>GIT</strong>:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token function\">git</span> <span class=\"token function\">add</span> <span class=\"token builtin class-name\">.</span></code></pre></div>\n<p>E agora vamos salvar a alteração, perceba que é necessário adicionar um título para essa alteração através do parâmetro <em>-m</em>:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token function\">git</span> commit -m <span class=\"token string\">\"Primeiro Commit\"</span></code></pre></div>\n<p>Fazendo isso a saída no terminal será parecida com isso:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token punctuation\">[</span>master <span class=\"token punctuation\">(</span>root-commit<span class=\"token punctuation\">)</span> f447135<span class=\"token punctuation\">]</span> Primeiro Commit\n <span class=\"token number\">1</span> <span class=\"token function\">file</span> changed, <span class=\"token number\">1</span> insertion<span class=\"token punctuation\">(</span>+<span class=\"token punctuation\">)</span>\n create mode <span class=\"token number\">100644</span> helloWorld.txt</code></pre></div>\n<p>E se quisermos mais detalhes sobre os <em>commits</em> feitos podemos utilizar o comando <em>git log</em> que trás todos os <em>commits</em> feitos no projeto:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\">commit f447135cc39f81a090e9bbbc91c45bbdbbbbd928 <span class=\"token punctuation\">(</span>HEAD -<span class=\"token operator\">></span> master<span class=\"token punctuation\">)</span>\nAuthor: Guilherme Alves <span class=\"token operator\">&lt;</span>guilherme.garcia86@gmail.com<span class=\"token operator\">></span>\nDate:   Tue Mar <span class=\"token number\">8</span> 09:18:31 <span class=\"token number\">2022</span> -0300\n\n    Primeiro Commit</code></pre></div>\n<p>Nesse exemplo como só tem um <em>commit</em> só trouxe essa informação mas um ponto interessante de notarmos é que todo <em>commit</em> possui um <em>hash</em> único isso existe para que seja possível navegar entre <em>commits</em> ou até mesmo ser mais fácil o <em>rollback</em> de versões.</p>\n<h1 id=\"Push\" style=\"position:relative;\">Push<a href=\"#Push\" aria-label=\"Push permalink\" class=\"anchor after\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a></h1>\n<p>Após fazer o <em>commit</em> e salvar as alterações localmente é necessário enviar essas alterações para o repositório na nuvem, <strong>GitHub</strong> no nosso exemplo, porém o comando é o mesmo para qualquer repositório que você esteja trabalhado.</p>\n<p>Para fazer o envio usamos o comando <em>push</em>, empurrar em inglês, mas antes disso vamos aproveitar para terminar a configuração do <strong>GIT</strong>, começando pelo nome da <em>branch</em>, por padrão o nome ainda é <em>master</em>, mas como foi dito anteriormente esse nome foi depreciado por ser <strong>racista</strong>, então vamos renomear para <em>main</em> conforma abaixo:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token function\">git</span> branch -M main</code></pre></div>\n<p>Agora vamos configurar a url do repositório no <strong>GitHub</strong> no projeto local:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token function\">git</span> remote <span class=\"token function\">add</span> origin git@github.com:guilhermegarcia86/projeto-git.git</code></pre></div>\n<p>E por fim o comando <em>push</em> que irá enviar para o repositório na nuvem:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token function\">git</span> push</code></pre></div>\n<p>E a saída no terminal será parecido com isso:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\">Enumerating objects: <span class=\"token number\">3</span>, done.\nCounting objects: <span class=\"token number\">100</span>% <span class=\"token punctuation\">(</span><span class=\"token number\">3</span>/3<span class=\"token punctuation\">)</span>, done.\nWriting objects: <span class=\"token number\">100</span>% <span class=\"token punctuation\">(</span><span class=\"token number\">3</span>/3<span class=\"token punctuation\">)</span>, <span class=\"token number\">240</span> bytes <span class=\"token operator\">|</span> <span class=\"token number\">240.00</span> KiB/s, done.\nTotal <span class=\"token number\">3</span> <span class=\"token punctuation\">(</span>delta <span class=\"token number\">0</span><span class=\"token punctuation\">)</span>, reused <span class=\"token number\">0</span> <span class=\"token punctuation\">(</span>delta <span class=\"token number\">0</span><span class=\"token punctuation\">)</span>, pack-reused <span class=\"token number\">0</span>\nTo https://github.com/guilhermegarcia86/projeto-git.git\n * <span class=\"token punctuation\">[</span>new branch<span class=\"token punctuation\">]</span>      main -<span class=\"token operator\">></span> main\nBranch <span class=\"token string\">'main'</span> <span class=\"token builtin class-name\">set</span> up to track remote branch <span class=\"token string\">'main'</span> from <span class=\"token string\">'origin'</span><span class=\"token builtin class-name\">.</span></code></pre></div>\n<h1 id=\"Sincronizando-o-seu-projeto-localmente\" style=\"position:relative;\">Sincronizando o seu projeto localmente<a href=\"#Sincronizando-o-seu-projeto-localmente\" aria-label=\"Sincronizando o seu projeto localmente permalink\" class=\"anchor after\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a></h1>\n<p>Agora pensando que outras pessoas estarão desenvolvendo na mesma <em>branch</em> como fazemos para sincronizar o nosso trabalho com o delas? Antes de falar sobre isso é importante saber algumas coisas sobre como o <strong>GIT</strong> sincroniza e saber o estado mais atual do projeto, a cada <em>commit</em> é gerado um <strong>hash</strong> único além das informações sobre o autor do <em>commit</em>, data e hora. E com essa informações o <strong>GIT</strong> tem condições de saber se o seu projeto local está atualizado ou se está a frente ou atrás em relação ao repositório na nuvem. Por isso caso o repositório na nuvem estiver a frente e você tentar fazer um comando <em>git push</em> o comando irá falhar com uma mensagem parecida com isso:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"> <span class=\"token operator\">!</span> <span class=\"token punctuation\">[</span>rejected<span class=\"token punctuation\">]</span>        main -<span class=\"token operator\">></span> main <span class=\"token punctuation\">(</span>fetch first<span class=\"token punctuation\">)</span>\nerror: failed to push some refs to <span class=\"token string\">'https://github.com/guilhermegarcia86/projeto-git.git'</span>\nhint: Updates were rejected because the remote contains work that you <span class=\"token keyword\">do</span>\nhint: not have locally. This is usually caused by another repository pushing\nhint: to the same ref. You may want to first integrate the remote changes\nhint: <span class=\"token punctuation\">(</span>e.g., <span class=\"token string\">'git pull ...'</span><span class=\"token punctuation\">)</span> before pushing again.\nhint: See the <span class=\"token string\">'Note about fast-forwards'</span> <span class=\"token keyword\">in</span> <span class=\"token string\">'git push --help'</span> <span class=\"token keyword\">for</span> details.</code></pre></div>\n<p>A informação basicamente diz que não foi possível enviar a sua alteração pois no repositório remoto (nuvem) contém atualizações que você não tem, isso é de extrema importância pois imagine se eu estiver fazendo alterações no mesmo arquivo que a pessoa que fez um <em>commit</em> e como isso seria resolvido pelo <strong>GIT</strong>? Por isso na própria mensagem de erro já vem com uma dica de que é necessário atualizar primeiramente o se projeto com as alterações da nuvem e resolver possíveis conflitos pra depois subir as suas alterações.</p>\n<p>Para atualizar o seu projeto e deixá-lo sincronizado com o repositório remoto, basta executar o comando <em>pull</em> para que trazer as atualizações:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token function\">git</span> pull</code></pre></div>\n<h2 id=\"Conclusao\" style=\"position:relative;\">Conclusão<a href=\"#Conclusao\" aria-label=\"Conclusao permalink\" class=\"anchor after\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a></h2>\n<p>Esses foram o comandos básicos para começar a entender e trabalhar com o <strong>GIT</strong>. No dia-a-dia de uma pessoa que usa o <strong>GIT</strong> como versionador de códigos esses comandos provavelmente serão os mais utilizados. Porém existem outras situações que veremos mais a frente, que será a resolução de conflitos quando fizermos a sincronização do projeto, podemos usar <em>tags</em> e podemos também reverter <em>commits</em>, esse são tópicos um pouco avançados e iremos vê-los nos próximos artigos.</p>\n<p>O código deste artigo se encontra no <a href=\"https://github.com/guilhermegarcia86/projeto-git\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">GitHub</a></p>\n<p>Visite também o nosso canal no <a href=\"https://www.youtube.com/channel/UCDWmrzFPkkQf5VI_ziZrgvw\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Youtube</a> para mais acompanhar essa série de <strong>Primeiros passos com o Java</strong> e muito mais conteúdos sobre programação.</p>","fields":{"slug":"/git-no-dia-a-dia/"},"frontmatter":{"date":"21 de março de 2022","description":"Os comandos mais utilizados","title":"Git para o seu dia a dia","tags":["Git","Beginner"],"author":"Guilherme Alves","image":{"id":"ce8c2280-e977-512c-8d08-4b318aabf21f","publicURL":"/static/de10e9af013af3ac6f6f78eda36dcb48/artigo-git.png","childImageSharp":{"fluid":{"base64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAOCAYAAAAvxDzwAAAACXBIWXMAABYlAAAWJQFJUiTwAAAB40lEQVQ4y4VT227aQBRcr21ssMHmIoQEVAIJGqBRiCqMCJT0Kf2GPvcf8tQHvrH5oMmZxQeZBikPo12t98zOmTk21vPgCYIgQLvdRq/XQxzHMMYgsBa+gHdugXWe3PN0LzAsJLqdDtI0dYfcK6kti7j6nzxAmMD30et2kbVaTiHRqNevSD8jqSo2bDFpNByBL+RhGLoHQrGAa11IvRukvmc/tO4URrWaU0FlqkiJrJBwT8UX0hJ+BbbipVEzSZwmiStuiOJE9q1mE3EUIcsyV6h+/4+rUOw5Gdfi/ukJ2+0Wu90OPw4HzGczfJ3P3frz+Rnj0cidj4ZDDAYDbIsC64eHq6RNGbXzbyaFk8kEq+USxWaDuZAVmwLfViscj0csFwsc9ntMp1OnfjweCcawUutpymoo55BjQ9C/NEnRFf9oQzvPnQ1690PLChJSGQ/zLHdEbF0T54u5+EdSnUmu/X4fp9MJv15eYMII8f0jwuGX82NMkanlooIqWdARQncmjzRFsZLp44/rNf69veHv6yu8++/Ifv9BbbY4K44kRRJQHVvrcLClPSqrkl3+mDLtxd3d+XsQwgo0bffrcWRISoUcD45JWpJd/tcKbGWErHqp/mrKJKVCkiUVz24R6pBrbTWsdyw6PEDqLG72AAAAAElFTkSuQmCC","aspectRatio":1.4096916299559472,"src":"/static/de10e9af013af3ac6f6f78eda36dcb48/0823f/artigo-git.png","srcSet":"/static/de10e9af013af3ac6f6f78eda36dcb48/c67b7/artigo-git.png 320w,\n/static/de10e9af013af3ac6f6f78eda36dcb48/d3930/artigo-git.png 640w,\n/static/de10e9af013af3ac6f6f78eda36dcb48/0823f/artigo-git.png 1280w,\n/static/de10e9af013af3ac6f6f78eda36dcb48/b3c49/artigo-git.png 1745w","sizes":"(max-width: 1280px) 100vw, 1280px"}}}},"timeToRead":11}},"pageContext":{"slug":"/git-no-dia-a-dia/","previous":{"fields":{"slug":"/java-iniciante-pt10/"},"frontmatter":{"title":"Primeiros passos com Java X","date":"10 dez, 2021"}},"next":{"fields":{"slug":"/spring-boot-web/"},"frontmatter":{"title":"Iniciando com Spring Boot","date":"31 mar, 2022"}}}},"staticQueryHashes":["63159454"]}