{"id":755,"date":"2016-06-30T09:46:14","date_gmt":"2016-06-30T12:46:14","guid":{"rendered":"https:\/\/blog.umbler.com\/?p=755"},"modified":"2018-12-05T19:46:14","modified_gmt":"2018-12-05T21:46:14","slug":"do-github-a-umbler-em-apenas-um-push","status":"publish","type":"post","link":"https:\/\/blog.umbler.com\/br\/do-github-a-umbler-em-apenas-um-push\/","title":{"rendered":"Do GitHub \u00e0 Umbler em apenas um push"},"content":{"rendered":"<p>O GitHub \u00e9 hoje uma das organiza\u00e7\u00f5es de mais import\u00e2ncia para a comunidade de desenvolvimento de software ao redor do mundo. Seu intuito principal \u00e9 ser um sistema de controle de vers\u00e3o como servi\u00e7o, por\u00e9m sua facilidade de uso e sua \u00f3tima ado\u00e7\u00e3o pela comunidade fez com que hoje ele seja considerado a maior comunidade <a href=\"https:\/\/github.com\/open-source\" target=\"_blank\" rel=\"noopener\">open-source<\/a> do planeta.<\/p>\n<p>Se voc\u00ea, assim como eu, utiliza esta plataforma, n\u00f3s temos uma boa not\u00edcia. Desenvolvemos a <em>feature<\/em> de deploy \u201cautom\u00e1gico\u201d com o GitHub, onde voc\u00ea conecta a sua conta do GitHub \u00e0 sua conta da Umbler.<br \/>\n<img fetchpriority=\"high\" decoding=\"async\" class=\"aligncenter wp-image-801 size-full\" src=\"https:\/\/blog.umbler.com\/wp-content\/uploads\/2016\/06\/tela1.png\" alt=\"Primeiro passo da Configura\u00e7\u00e3o do GitHub na Umbler\" width=\"945\" height=\"466\" \/><br \/>\nAp\u00f3s conectar sua conta, voc\u00ea configura o reposit\u00f3rio de origem do c\u00f3digo e um diret\u00f3rio da sua hospedagem. A partir da\u00ed, a cada <em>push<\/em> realizado no <em>remote<\/em> (normalmente denominado de origin) faz com que o seu c\u00f3digo seja publicado no diret\u00f3rio escolhido.<br \/>\n<img decoding=\"async\" class=\"aligncenter wp-image-802 size-full\" src=\"https:\/\/blog.umbler.com\/wp-content\/uploads\/2016\/06\/tela2.png\" alt=\"Configurando Reposit\u00f3rio e Destino para deploy via GitHub na Umbler\" width=\"933\" height=\"493\" \/><br \/>\nSimples assim? Simples assim!<br \/>\nComo diria algum autor desconhecido, por\u00e9m, com grandes poderes v\u00eam grandes responsabilidades. Alguns cuidados importantes devem ser tomados ao utilizar esta <em>feature<\/em>, e um deles \u00e9 que, necessariamente o c\u00f3digo da sua aplica\u00e7\u00e3o, mais especificamente da <em>branch master<\/em>, deve estar sempre apto a ser publicado. A. Qualquer. Momento.<\/p>\n<p>Ok, \u00f3timo, ent\u00e3o ap\u00f3s configurar esta <em>feature<\/em>, eu s\u00f3 posso dar<em> push<\/em> para o meu GitHub em c\u00f3digos que est\u00e3o prontos para serem publicados? N\u00e3o necessariamente, por isso que \u00e9 muito importante lembrar que o c\u00f3digo que ser\u00e1 publicado \u00e9 o que est\u00e1 na <em>branch<\/em> principal de trabalho, a supracitada <em>branch master<\/em>. A partir daqui, para evitar que voc\u00ea publique algo que n\u00e3o est\u00e1 pronto, vamos aprender um pouco mais a trabalhar com <em>branches<\/em>.<\/p>\n<h2><em>Branches<\/em>: o que s\u00e3o, de onde v\u00eam e do que se alimentam?<\/h2>\n<p><em>Branches<\/em> s\u00e3o <em>features<\/em> presente nos principais sistemas de controle de vers\u00e3o e servem para que o c\u00f3digo consiga seguir sua evolu\u00e7\u00e3o em um fluxo separado. Isso significa que, no momento da cria\u00e7\u00e3o de uma <em>branch<\/em>, o sistema de controle de vers\u00e3o utilizado guardar\u00e1 o estado atual dos arquivos em um outro lugar, seja fazendo uma c\u00f3pia ou gerando um hash destes dados e, ent\u00e3o, seguir\u00e1 o fluxo de modifica\u00e7\u00f5es em separado. Assim \u00e9 poss\u00edvel alternar entre vers\u00f5es do seu c\u00f3digo num passe de m\u00e1gica (ou seria apenas em um comando?)<br \/>\n<img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/blog.umbler.com\/wp-content\/uploads\/2016\/06\/fork-github-01.png\" alt=\"Branches - do GitHub \u00e0 Umbler\" width=\"1065\" height=\"394\" \/><br \/>\nComo eu sei que voc\u00ea est\u00e1 trabalhando com o GitHub e utilizando <a href=\"https:\/\/blog.umbler.com\/deploy-de-aplicacoes-via-git\/\" target=\"_blank\" rel=\"noopener\">Git para controlar seu c\u00f3digo<\/a>, o processo de cria\u00e7\u00e3o de <em>branches<\/em> \u00e9 r\u00e1pido e f\u00e1cil. Vamos l\u00e1! Digamos que voc\u00ea j\u00e1 esteja com o bash aberto no diret\u00f3rio da sua aplica\u00e7\u00e3o, tem certeza que esse reposit\u00f3rio \u00e9 &#8220;version\u00e1vel&#8221; pelo Git (git init) e j\u00e1 tem um remote chamado origin que aponta para seu GitHub. Nada estranho at\u00e9 aqui, certo? Ent\u00e3o, para criar uma nova <em>branch<\/em> basta executar o comando.<\/p>\n<pre class=\"code-highlighter line-numbers theme-dark\"><code class=\"language-markup\">git checkout -b [nome-da-branch]<\/code><\/pre>\n<p>Ok, vamos agora a um exemplo pr\u00e1tico: digamos que voc\u00ea possui uma ag\u00eancia que desenvolve alguns projetos de sites para alguns clientes e possua uma p\u00e1gina que apresenta o portfolio contendo suas obras de arte. Agora, digamos que voc\u00ea terminou um novo projeto e, de tanto orgulho, quer adicionar \u00e0 sua lista de trabalhos feitos o mais r\u00e1pido o poss\u00edvel. Por\u00e9m, em contrapartida, voc\u00ea alterou o layout do seu site, est\u00e1 com ele totalmente modificado e ainda n\u00e3o est\u00e1 pronto para ser publicado. Hum\u2026 Como faz? Dou Ctrl + z em todo meu progresso ou espero mais uma semana at\u00e9 terminar o novo site pra mostrar pro mundo que eu fiz o novo ganhador do <a href=\"https:\/\/www.awwwards.com\/\" target=\"_blank\" rel=\"noopener\">pr\u00eamio awwwards<\/a>? N.d.a! Escolha por <em>branches<\/em>. Sim, nesse caso, criar\u00edamos uma <em>branch<\/em> nova, que iremos chamar de novo-layout.<\/p>\n<pre class=\"code-highlighter line-numbers theme-dark\"><code class=\"language-markup\">git checkout -b novo-layout<\/code><\/pre>\n<p>Agora, com a necessidade de adicionar esse novo projeto, basta voltarmos para a <em>branch<\/em> principal, onde estava todo nosso projeto pr\u00e9-modifica\u00e7\u00f5es e colocarmos essa nova <em>feature<\/em>. TA-DAN, est\u00e1 l\u00e1, nosso novo layout s\u00e3o e salvo, assim como nossas modifica\u00e7\u00f5es.<\/p>\n<pre class=\"code-highlighter line-numbers theme-dark\"><code class=\"language-markup\">git checkout master<\/code><\/pre>\n<p>Certo, estamos na <em>branch<\/em> master novamente, com nosso projeto adicionado e nosso c\u00f3digo pass\u00edvel de ser publicado. Agora basta conferir se voc\u00ea est\u00e1 com o deploy autom\u00e1gico ativo<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-803 size-full\" src=\"https:\/\/blog.umbler.com\/wp-content\/uploads\/2016\/06\/tela3.png\" alt=\"Tela de Deploy via GitHub na Umbler\" width=\"922\" height=\"553\" \/><br \/>\nE ent\u00e3o caso esteja tudo certo, basta apenas dar um push nessas modifica\u00e7\u00f5es:<\/p>\n<pre class=\"code-highlighter line-numbers theme-dark\"><code class=\"language-bash\">git commit -m \u201cAdicionado novo item no portfolio - poss\u00edvel ganhador do awwwards\u201d\r\ngit push origin master<\/code><\/pre>\n<p>Assim que o push ocorrer com sucesso basta voc\u00ea esperar alguns segundos e seu site estar\u00e1 l\u00e1, publicado e com o novo item como deveria estar.<\/p>\n<p>Estamos com essa <em>feature<\/em> ainda em beta, ent\u00e3o caso tenha qualquer sugest\u00e3o ou critica, por favor, entre em contato \ud83d\ude00<\/p>\n<p>Quer saber mais sobre GIT? <a href=\"https:\/\/git-scm.com\/book\/en\/v2\" target=\"_blank\" rel=\"noopener\">Acesse<\/a>!<\/p>\n<p>N\u00e3o tem um reposit\u00f3rio no GitHub? <a href=\"https:\/\/github.com\/\" target=\"_blank\" rel=\"noopener\">Crie<\/a>!<\/p>\n<p>Tem alguma d\u00favida, considera\u00e7\u00e3o ou feedback? Comente a\u00ed \ud83d\ude09<br \/>\n<a href=\"https:\/\/app.umbler.com\/account\/login?utm_source=postgithub&amp;utm_medium=banner&amp;utm_campaign=banner-post-github\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"no-lightbox aligncenter wp-image-1277 size-full\" src=\"https:\/\/blog.umbler.com\/wp-content\/uploads\/2016\/06\/cta-blog-github.png\" alt=\"Banner Deploy\" width=\"750\" height=\"325\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>O GitHub \u00e9 hoje uma das organiza\u00e7\u00f5es de mais import\u00e2ncia para a comunidade de desenvolvimento de software ao redor do mundo. Seu intuito principal \u00e9 ser um sistema de controle de vers\u00e3o como servi\u00e7o, por\u00e9m sua facilidade de uso e sua \u00f3tima ado\u00e7\u00e3o pela comunidade fez com que hoje ele seja considerado a maior comunidade [&hellip;]<\/p>\n","protected":false},"author":48,"featured_media":5604,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[102,21,103,24,25],"class_list":["post-755","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-updates","tag-branches","tag-deploy","tag-deploy-via-github","tag-git","tag-github"],"_links":{"self":[{"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/posts\/755"}],"collection":[{"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/users\/48"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/comments?post=755"}],"version-history":[{"count":0,"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/posts\/755\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/media\/5604"}],"wp:attachment":[{"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/media?parent=755"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/categories?post=755"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/tags?post=755"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}