{"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":"

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 open-source<\/a> do planeta.<\/p>\n

Se voc\u00ea, assim como eu, utiliza esta plataforma, n\u00f3s temos uma boa not\u00edcia. Desenvolvemos a feature<\/em> de deploy \u201cautom\u00e1gico\u201d com o GitHub, onde voc\u00ea conecta a sua conta do GitHub \u00e0 sua conta da Umbler.
\n\"Primeiro
\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 push<\/em> realizado no remote<\/em> (normalmente denominado de origin) faz com que o seu c\u00f3digo seja publicado no diret\u00f3rio escolhido.
\n\"Configurando
\nSimples assim? Simples assim!
\nComo diria algum autor desconhecido, por\u00e9m, com grandes poderes v\u00eam grandes responsabilidades. Alguns cuidados importantes devem ser tomados ao utilizar esta feature<\/em>, e um deles \u00e9 que, necessariamente o c\u00f3digo da sua aplica\u00e7\u00e3o, mais especificamente da branch master<\/em>, deve estar sempre apto a ser publicado. A. Qualquer. Momento.<\/p>\n

Ok, \u00f3timo, ent\u00e3o ap\u00f3s configurar esta feature<\/em>, eu s\u00f3 posso dar 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 branch<\/em> principal de trabalho, a supracitada 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 branches<\/em>.<\/p>\n

Branches<\/em>: o que s\u00e3o, de onde v\u00eam e do que se alimentam?<\/h2>\n

Branches<\/em> s\u00e3o 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 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?)
\n\"Branches
\nComo eu sei que voc\u00ea est\u00e1 trabalhando com o GitHub e utilizando
Git para controlar seu c\u00f3digo<\/a>, o processo de cria\u00e7\u00e3o de 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 “version\u00e1vel” 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 branch<\/em> basta executar o comando.<\/p>\n

git checkout -b [nome-da-branch]<\/code><\/pre>\n

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 pr\u00eamio awwwards<\/a>? N.d.a! Escolha por branches<\/em>. Sim, nesse caso, criar\u00edamos uma branch<\/em> nova, que iremos chamar de novo-layout.<\/p>\n

git checkout -b novo-layout<\/code><\/pre>\n

Agora, com a necessidade de adicionar esse novo projeto, basta voltarmos para a branch<\/em> principal, onde estava todo nosso projeto pr\u00e9-modifica\u00e7\u00f5es e colocarmos essa nova feature<\/em>. TA-DAN, est\u00e1 l\u00e1, nosso novo layout s\u00e3o e salvo, assim como nossas modifica\u00e7\u00f5es.<\/p>\n

git checkout master<\/code><\/pre>\n

Certo, estamos na 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
\n\"Tela
\nE ent\u00e3o caso esteja tudo certo, basta apenas dar um push nessas modifica\u00e7\u00f5es:<\/p>\n

git commit -m \u201cAdicionado novo item no portfolio - poss\u00edvel ganhador do awwwards\u201d\r\ngit push origin master<\/code><\/pre>\n

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

Estamos com essa feature<\/em> ainda em beta, ent\u00e3o caso tenha qualquer sugest\u00e3o ou critica, por favor, entre em contato \ud83d\ude00<\/p>\n

Quer saber mais sobre GIT? Acesse<\/a>!<\/p>\n

N\u00e3o tem um reposit\u00f3rio no GitHub? Crie<\/a>!<\/p>\n

Tem alguma d\u00favida, considera\u00e7\u00e3o ou feedback? Comente a\u00ed \ud83d\ude09
\n
\"Banner<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"

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 […]<\/p>\n","protected":false},"author":48,"featured_media":5604,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[2],"tags":[102,21,103,24,25],"_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}]}}