{"id":3507,"date":"2018-02-23T12:00:25","date_gmt":"2018-02-23T15:00:25","guid":{"rendered":"https:\/\/blog.umbler.com\/?p=3507"},"modified":"2021-10-19T10:31:23","modified_gmt":"2021-10-19T13:31:23","slug":"controle-de-versoes-do-seu-wordpress-com-git","status":"publish","type":"post","link":"https:\/\/blog.umbler.com\/br\/controle-de-versoes-do-seu-wordpress-com-git\/","title":{"rendered":"Controle de vers\u00f5es do seu WordPress com GIT"},"content":{"rendered":"<p>GIT: essa palavrinha est\u00e1 por todos os lados, n\u00e3o \u00e9 mesmo? Aqui na Umbler eu trabalho com GIT todos os dias, mas sabe que eu reparei uma coisa? Apesar de anos e anos trabalhando com o WordPress (quase dez, no total :O) nunca havia trabalhado com versionamento no WordPress.<\/p>\n<p>O resultado? Uma cat\u00e1strofe! Quantas vezes j\u00e1 tive que entrar em contato com antigas hospedagens, pedir backup do dia, porque, simplesmente, arruinei minha instala\u00e7\u00e3o com a mania de editar as coisas direto em produ\u00e7\u00e3o, sem testar num ambiente homologado. Aquele ponto de restaura\u00e7\u00e3o que salvava nossa vida, ou aquele template <em>versao_final_AGORA_FINAL_MESMO_SERIO_FINAL.zip<\/em> que era editado paralelamente com a vers\u00e3o em produ\u00e7\u00e3o, para se ocorresse algum problema eu j\u00e1 saber onde foi que errei.<br \/>\n<img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/im-01.gifer.com\/UqVL.gif\" \/><br \/>\nMas por favor, n\u00e9? J\u00e1 estamos em 2018. T\u00e1 na hora de pararmos e tomar um \u201cparacetamal\u201d para as dores de cabe\u00e7a que a programa\u00e7\u00e3o nos provoca, e facilitar nossa vida. E h\u00e1 sim como versionar WordPress. Sim, quase ca\u00ed para tr\u00e1s quando soube. WHAT THE HELL!?<br \/>\n<img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/blog.umbler.com\/wp-content\/uploads\/2018\/02\/5c018a35dc4d1_giphy.gif\" \/><\/p>\n<h2>Como funciona o versionamento de um WordPress?<\/h2>\n<p>Todo mundo sabe que instalar WordPress \u00e9 um mam\u00e3o com a\u00e7\u00facar. Mas, e o GIT? Seria muito bom, apesar de termos um ambiente homologado e fazermos primeiro o deploy nele, para depois colocar em produ\u00e7\u00e3o (n\u00e9 dev de respeito?), poder dar rollback se, ainda assim, em produ\u00e7\u00e3o n\u00e3o deu certo.<\/p>\n<p>Na instala\u00e7\u00e3o padr\u00e3o do WordPress as \u00fanicas op\u00e7\u00f5es que s\u00e3o versionadas s\u00e3o as p\u00e1ginas e os posts. A medida que vamos escrevendo um deles, backups s\u00e3o salvos em um determinado intervalo de tempo. Caso ocorra algum problema, como queda de luz, energia, bateria do notebook, coisas desse tipo, o WordPress te d\u00e1 a op\u00e7\u00e3o de restaurar o \u00faltimo backup. Ele tamb\u00e9m te deixa fazer compara\u00e7\u00f5es de vers\u00f5es e reconhecer se voc\u00ea est\u00e1 escrevendo algo \u201catrasado\u201d (se voc\u00ea est\u00e1 escrevendo em cima de um backup obsoleto, que j\u00e1 foi atualizado posteriormente).<\/p>\n<p>Com plugins e <a href=\"https:\/\/blog.umbler.com\/br\/evitar-bloqueio-por-spam-no-whatsapp\/\">templates<\/a>, a \u00fanica op\u00e7\u00e3o que temos \u00e9 um preview dos templates, ent\u00e3o precisamos verificar se o plugin que colocaremos no ar n\u00e3o conflitar\u00e1 com os que j\u00e1 est\u00e3o instalados. O que \u00e9 bem ruim, na verdade. S\u00f3 temos certeza se houver um ambiente teste ou depois de ativado &#8211; com medo pra ver o resultado. (adivinhem qual op\u00e7\u00e3o eu escolho, rsrs)<br \/>\n<img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/blog.umbler.com\/wp-content\/uploads\/2018\/02\/5c018a3a30e68_giphy.gif\" \/><br \/>\nSe voc\u00ea j\u00e1 trabalhou ou trabalha com GIT, sabe que \u00e9 uma maravilha. Que \u00e9 bom. Que \u00e9 maravilhoso. Puxo o saco mesmo, pois facilita muito o fluxo de entrega do meu trabalho no dia a dia, evitando conflitos e, quando eles acontecem, sendo simples de resolver. Imagina facilitar todos os nossos freelas com isso?<\/p>\n<p>Se voc\u00ea n\u00e3o conhece GIT, por favor pare de ler isso AGORA e confira o <a href=\"https:\/\/help.umbler.com\/hc\/pt-br\/articles\/205713329-Configurando-e-acessando-Git-Local\">guia<\/a> que a Umbler preparou sobre GIT. Lembrando que temos suporte para deploy nos sites em GIT, e que, inclusive, o deploy autom\u00e1gico: quando voc\u00ea faz push para a branch master, seu site \u00e9 automaticamente atualizado em produ\u00e7\u00e3o \ud83d\ude09<br \/>\n<img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/im-01.gifer.com\/1BKL.gif\" \/><br \/>\nSem mais delongas, de todas as ferramentas que testei nestes anos utilizando WordPress, cheguei a conclus\u00e3o de que, para quem trabalha com a Umbler, o WP Pusher \u00e9 a melhor op\u00e7\u00e3o!<\/p>\n<h2>WP Pusher<\/h2>\n<p>Por que o WP Pusher foi a minha escolha? Porque ele \u00e9 super tranquilo de instalar. Basta ir em <a href=\"https:\/\/wppusher.com\/download\">https:\/\/wppusher.com\/download<\/a> que ser\u00e1 baixado automaticamente um zip para voc\u00ea subir para a parte de plugins do seu WordPress. Depois basta conectar a sua conta ao seu reposit\u00f3rio no GitHub, BitBucket ou GitLab:<br \/>\n<a href=\"https:\/\/blog.umbler.com\/wp-content\/uploads\/2018\/02\/image-5.png\"><img fetchpriority=\"high\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/blog.umbler.com\/wp-content\/uploads\/2018\/02\/image-5-1024x640.png\" alt=\"\" width=\"780\" height=\"488\" \/><\/a><br \/>\nT\u00e1, mas o que \u00e9 esse BUY A LICENSE? Bom, se voc\u00ea quiser se conectar a reposit\u00f3rios privados, voc\u00ea ter\u00e1 que comprar uma licen\u00e7a do plugin na <a href=\"https:\/\/wppusher.com\/#pricing\">parte de Pricing do site<\/a> . O pre\u00e7o mais baixo, e que provavelmente serve para todos, \u00e9 de $99 d\u00f3lares por ano. Salgado, n\u00e9?<\/p>\n<p>Opini\u00e3o minha: \u00c9 por motivos assim que sou dev fomentadora de comunidade. Afirmo que tem que deixar c\u00f3digo aberto sim, para ajudar os outros amigos dev, para que eles tamb\u00e9m contribuam no seu projeto, e que todo mundo aprenda mais e fique mais feliz. Ufa? Am\u00e9m!<\/p>\n<p><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/blog.umbler.com\/wp-content\/uploads\/2018\/02\/5c018a3fe9aa9_giphy.gif\" \/><br \/>\nMas, se voc\u00ea tem dados sens\u00edveis no seu projeto, entendemos seu motivo de ficar com a outra op\u00e7\u00e3o, que pode ser adquirida atrav\u00e9s do pricing, como falamos anteriormente.<br \/>\nNa imagem abaixo podemos observar como funciona, por exemplo, para conectar um reposit\u00f3rio que vai ser de um plugin (o mesmo \u00e9 id\u00eantico para um template):<br \/>\n<a href=\"https:\/\/blog.umbler.com\/wp-content\/uploads\/2018\/02\/Pasted-image-at-2018_02_21-02_18-PM.png\"><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/blog.umbler.com\/wp-content\/uploads\/2018\/02\/Pasted-image-at-2018_02_21-02_18-PM-1024x640.png\" alt=\"\" width=\"780\" height=\"488\" \/><\/a><br \/>\nPara adicionar um novo template, primeiro precisamos adicionar ele ao nosso reposit\u00f3rio externo GIT. Neste exemplo, eu baixei um template qualquer de WordPress e criei um reposit\u00f3rio no Github:<br \/>\n<a href=\"https:\/\/blog.umbler.com\/wp-content\/uploads\/2018\/02\/image-6.png\"><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/blog.umbler.com\/wp-content\/uploads\/2018\/02\/image-6.png\" alt=\"\" width=\"1008\" height=\"236\" \/><\/a><br \/>\nDepois de criado meu reposit\u00f3rio, vou subir todos os arquivos da pasta do template para esse reposit\u00f3rio, seguindo algumas linhas de comando. Para isso, eu uso o Git Bash, que vem junto com o GIT, quando instalado na m\u00e1quina.<br \/>\n<a href=\"https:\/\/blog.umbler.com\/wp-content\/uploads\/2018\/02\/Pasted-image-at-2018_02_21-02_22-PM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/blog.umbler.com\/wp-content\/uploads\/2018\/02\/Pasted-image-at-2018_02_21-02_22-PM-1024x505.png\" alt=\"\" width=\"780\" height=\"385\" \/><\/a><br \/>\n<a href=\"https:\/\/blog.umbler.com\/wp-content\/uploads\/2018\/02\/Pasted-image-at-2018_02_21-02_22-PM-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/blog.umbler.com\/wp-content\/uploads\/2018\/02\/Pasted-image-at-2018_02_21-02_22-PM-1-1024x640.png\" alt=\"\" width=\"780\" height=\"488\" \/><\/a><br \/>\nComo deu pra ver, j\u00e1 coloquei direto no reposit\u00f3rio os arquivos do template que v\u00e3o dentro da pasta do template, como comments.php, functions.php, etc.<br \/>\nResumindo:<\/p>\n<ul>\n<li>Para adicionar os arquivos da pasta do template para o reposit\u00f3rio, eu dei um git remote add origin https:\/\/meurepositorio<\/li>\n<li>Depois adicionei todos os meus arquivos que iriam para o commit, que eram todos da pasta com git add &#8211;all<\/li>\n<li>Dei um commit usando git commit -m \u201cblah blah blah this is my message to commit (obviamente escreva algo decente e reconhec\u00edvel aqui)\u201d<\/li>\n<li>Por \u00faltimo, dei push com git push origin master<\/li>\n<\/ul>\n<p>Tcharaaaaaaaam! IT\u2019S TIME TO SET THIS SHIT IN THE PLUGIN<br \/>\n<img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/blog.umbler.com\/wp-content\/uploads\/2018\/02\/5c018a4ad7230_giphy.gif\" \/><br \/>\nAgora, l\u00e1 no plugin, eu clico em Install Theme, coloco qual vai ser meu reposit\u00f3rio externo, o link dele, e assim por diante, como na imagem que usamos de exemplo. Voc\u00ea pode escolher por deploy autom\u00e1tico com a op\u00e7\u00e3o \u201cPush-To-Deploy\u201d.<\/p>\n<p>E a op\u00e7\u00e3o Link Installed Theme \u00e9 ainda mais maneira. Voc\u00ea pode pegar um template j\u00e1 instalado no seu WordPress e migrar ele pro seu reposit\u00f3rio externo. Basta o link dele e o reposit\u00f3rio terem o mesmo nome. Exemplo: o nome do seu tema (e a pasta dele) tem que ser teste e o seu reposit\u00f3rio externo tamb\u00e9m \ud83d\ude42<br \/>\n<a href=\"https:\/\/blog.umbler.com\/wp-content\/uploads\/2018\/02\/image-7.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/blog.umbler.com\/wp-content\/uploads\/2018\/02\/image-7-1024x640.png\" alt=\"\" width=\"780\" height=\"488\" \/><\/a><br \/>\n<a href=\"https:\/\/blog.umbler.com\/wp-content\/uploads\/2018\/02\/image-8.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/blog.umbler.com\/wp-content\/uploads\/2018\/02\/image-8-1024x640.png\" alt=\"\" width=\"780\" height=\"488\" \/><\/a><br \/>\nTema ativado e funcionando!<br \/>\n<img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/blog.umbler.com\/wp-content\/uploads\/2018\/02\/tenor.gif\" \/><br \/>\nEita, mas t\u00e1 cheio de erro de PHP.<br \/>\n<a href=\"https:\/\/blog.umbler.com\/wp-content\/uploads\/2018\/02\/Pasted-image-at-2018_02_21-03_42-PM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/blog.umbler.com\/wp-content\/uploads\/2018\/02\/Pasted-image-at-2018_02_21-03_42-PM-300x211.png\" alt=\"\" width=\"300\" height=\"211\" \/><\/a><br \/>\nEnt\u00e3o, veremos na pr\u00e1tica se esse neg\u00f3cio funciona mesmo. Vou tirar a parte das categorias da minha sidebar e fazer um push. \u00c9 para atualizar autom\u00e1tico, conforme as configura\u00e7\u00f5es que adicionei ali no plugin. Vamos l\u00e1?<br \/>\n<a href=\"https:\/\/blog.umbler.com\/wp-content\/uploads\/2018\/02\/Pasted-image-at-2018_02_21-02_32-PM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/blog.umbler.com\/wp-content\/uploads\/2018\/02\/Pasted-image-at-2018_02_21-02_32-PM-1024x640.png\" alt=\"\" width=\"780\" height=\"488\" \/><\/a><br \/>\nFiz a edi\u00e7\u00e3o e um git add, para adicionar apenas os arquivos que modifiquei. Fiz um commit e dei push! \ud83d\ude00<br \/>\nVAMOS VER COMO EST\u00c1 O SITE?<br \/>\n<a href=\"https:\/\/blog.umbler.com\/wp-content\/uploads\/2018\/02\/image-9.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/blog.umbler.com\/wp-content\/uploads\/2018\/02\/image-9-1024x640.png\" alt=\"\" width=\"780\" height=\"488\" \/><\/a><br \/>\nPELO AMOR DE DEUS, \u00c9 MUITA <a href=\"https:\/\/blog.umbler.com\/br\/avancos-em-ia-generativa\/\">TECNOLOGIA<\/a> PRA MIM!<br \/>\n<img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/blog.umbler.com\/wp-content\/uploads\/2018\/02\/41rP0EX.gif\" \/><br \/>\n\u00c9 tudo muito pr\u00e1tico e o plugin sofre atualiza\u00e7\u00f5es sempre \ud83d\ude42<\/p>\n<h2>Existem outras op\u00e7\u00f5es? Por que voc\u00ea n\u00e3o falou?<\/h2>\n<p>Existem \u00f3timas op\u00e7\u00f5es, ainda mais pra quem est\u00e1 come\u00e7ando. Um exemplo \u00e9 o Versionpress e o Revisr. Eu, infelizmente, n\u00e3o consegui demonstr\u00e1-las pra voc\u00eas aqui, porque esses plugins utilizam algumas fun\u00e7\u00f5es PHP que s\u00e3o desabilitadas pela hospedagem da Umbler por quest\u00f5es de <a href=\"https:\/\/blog.umbler.com\/br\/seguranca-e-privacidade-no-atendimento-com-ia\/\">seguran\u00e7a<\/a>.<\/p>\n<p>Ficou claro pra todo mundo? Se tiverem d\u00favidas, ou quiserem saber mais sobre o tema, s\u00f3 comentar com os assuntos que voc\u00eas gostariam de ver aqui no blog.<\/p>\n<p>N\u00e3o esque\u00e7a de <a href=\"https:\/\/www.umbler.com\/br\">checar nossos servi\u00e7os no site<\/a> e <a href=\"https:\/\/app.umbler.com\/account\/register\">de se registrar<\/a>, caso tenha interesse.<\/p>\n<p>Espero que o conte\u00fado tenha rendido algo para voc\u00eas <span class=\"accent\">\u2665<\/span> Nos vemos em breve, coalas devs de todo Brasil.<br \/>\n<a href=\"https:\/\/blog.umbler.com\/wp-content\/uploads\/2018\/02\/image-10.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/blog.umbler.com\/wp-content\/uploads\/2018\/02\/image-10-300x232.png\" alt=\"\" width=\"300\" height=\"232\" \/><\/a><br \/>\nObrigada Caramelow.com pelo template para testes.<\/p>\n<h4>Mais posts que voc\u00ea precisa ler sobre wordpress:<\/h4>\n<ul>\n<li><a href=\"https:\/\/blog.umbler.com\/br\/wordpress-para-iniciantes\/\">WordPress para iniciantes<\/a><\/li>\n<li><a href=\"https:\/\/blog.umbler.com\/br\/dicas-de-seguranca-para-wordpress-cinco-passos-importantes\/\">Dicas de seguran\u00e7a para WordPress: cinco passos importantes<\/a><\/li>\n<li><a href=\"https:\/\/blog.umbler.com\/br\/plugins-essenciais-para-wordpress\/\">Plugins essenciais para WordPress: performance, marketing e relacionamento<\/a><\/li>\n<li><a href=\"https:\/\/blog.umbler.com\/br\/desempenho-como-melhorar-performance-de-seu-site-wordpress\/\">Desempenho: como melhorar a performance de seu site WordPress<\/a><\/li>\n<li><a href=\"https:\/\/blog.umbler.com\/br\/migracao-wordpress-como-mover-seu-site-sem-deixar-nada-para-tras\/\">Migra\u00e7\u00e3o WordPress: movendo seu site sem deixar nada para tr\u00e1s<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>GIT: essa palavrinha est\u00e1 por todos os lados, n\u00e3o \u00e9 mesmo? Aqui na Umbler eu trabalho com GIT todos os dias, mas sabe que eu reparei uma coisa? Apesar de anos e anos trabalhando com o WordPress (quase dez, no total :O) nunca havia trabalhado com versionamento no WordPress. O resultado? Uma cat\u00e1strofe! Quantas vezes [&hellip;]<\/p>\n","protected":false},"author":68,"featured_media":5164,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23,2],"tags":[128,24,300,36],"class_list":["post-3507","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev","category-updates","tag-deploy-via-git","tag-git","tag-versionamento-wordpress","tag-wordpress"],"_links":{"self":[{"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/posts\/3507"}],"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\/68"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/comments?post=3507"}],"version-history":[{"count":0,"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/posts\/3507\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/media\/5164"}],"wp:attachment":[{"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/media?parent=3507"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/categories?post=3507"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/tags?post=3507"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}