{"id":26786,"date":"2019-10-04T13:07:21","date_gmt":"2019-10-04T13:07:21","guid":{"rendered":"http:\/\/blog.locaweb.com.br\/?p=26786"},"modified":"2022-05-11T10:31:04","modified_gmt":"2022-05-11T13:31:04","slug":"6-boas-praticas-de-git","status":"publish","type":"post","link":"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/6-boas-praticas-de-git\/","title":{"rendered":"Confira 6 boas pr\u00e1ticas de Git"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Utilizar o Git em seus projetos \u00e9 uma boa solu\u00e7\u00e3o, independentemente se o assunto em quest\u00e3o \u00e9<\/span> <a href=\"https:\/\/blog.locaweb.com.br\/temas\/codigo-aberto\/linguagens-de-programacao-web\/\"><span style=\"font-weight: 400;\">front-end<\/span><\/a><span style=\"font-weight: 400;\"> ou back-end. No entanto, como toda boa ferramenta, o<\/span> <span style=\"font-weight: 400;\">Git<\/span><span style=\"font-weight: 400;\"> oferece uma infinidade de op\u00e7\u00f5es e recursos que podem ser bem ou mal utilizados.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Pensando nisso, elaboramos este post com 6 boas pr\u00e1ticas de Git para que voc\u00ea conhe\u00e7a mais sobre o assunto. Confira!<\/span><\/p>\n<h2><strong>Quais s\u00e3o as boas pr\u00e1ticas de Git?<\/strong><\/h2>\n<h2><b>1) Utilize o modo imperativo<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Por conven\u00e7\u00e3o, o Git usa sempre o modo imperativo nos\u00a0 padr\u00f5es de suas mensagens. Isso significa que, quando voc\u00ea\u00a0 utiliza o merge ou um revert, essas a\u00e7\u00f5es seguem essa forma de comando e, por isso, na hora de elaborar os assuntos dos seus commits, \u00e9 interessante que voc\u00ea siga essa regra tamb\u00e9m.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Uma dica boa para facilitar a cria\u00e7\u00e3o dos commits, \u00e9 valid\u00e1-los usando a seguinte frase: \u201cSe aplicado, esse commit vai\u201d (ou, no ingl\u00eas, &#8220;If applied, this commit will&#8221;). Veja um exemplo abaixo:<\/span><\/p>\n<pre>$ git log --oneline -4\u00a0\n\nd759236 Change config to upload\u00a0\n\nae6a172 Merge branch 'assync-spam-job' into 'master'\u00a0\n\nef10959 Disable worker for spam learn.\u00a0\n\n4210b8c Merge branch 'sentry-error-spam' into 'master\n\n<\/pre>\n<p><span style=\"font-weight: 400;\">Neste caso, a frase ficaria da seguinte forma: \u201cIf applied, this commit will Change config to upload\u201d. A princ\u00edpio, pode parecer mais dif\u00edcil escrever os commits dessa forma, j\u00e1 que \u00e9 menos usual. No entanto, ap\u00f3s pouco tempo de uso, a a\u00e7\u00e3o ficar\u00e1 bem mais f\u00e1cil.<\/span><\/p>\n<h2><b>2) Procure ser direto e explicativo em seus commits<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Realmente, \u00e9 muito mais r\u00e1pido fazer um commit utilizando a sintaxe \u201cgit commit -m\u201d e passando uma mensagem resumida do que foi feito. Por\u00e9m, essa regra faz com que voc\u00ea perca a ideia original do commit, que \u00e9 ser uma p\u00e1gina na hist\u00f3ria do seu projeto, e n\u00e3o apenas um resumo em uma linha.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Nesse caso, o seu commit ficaria assim:<\/span><\/p>\n<pre>git commit -m \u2018Adjust images on upload\u2019\n\n<\/pre>\n<p><span style=\"font-weight: 400;\">Com essa mensagem, um poss\u00edvel leitor n\u00e3o entende porque essa modifica\u00e7\u00e3o foi feita. Procure resumir o que foi feito na primeira linha, mas com algum detalhe, pular uma linha e descrever exatamente o que foi feito, se poss\u00edvel colocando algum link ou refer\u00eancia a tarefa que iniciou a modifica\u00e7\u00e3o.<\/span><\/p>\n<pre>git commit -m\u201dAppling auto-adjust images on upload to avoid distotiong<\/pre>\n<pre><span style=\"font-weight: 400;\">Users was uploading images to their profile but it was distorting the pics, now the pics are auto-adjusting.\u201d\n\n<\/span><\/pre>\n<p><span style=\"font-weight: 400;\">Dessa forma, al\u00e9m de deixar a sua a\u00e7\u00e3o mais completa, ainda \u00e9 poss\u00edvel criar um resumo do assunto e um corpo para o seu commit, sem deixa de facilitar a leitura do hist\u00f3rico no git log:<\/span><\/p>\n<pre>$ git log --oneline -4\u00a0\n\n4210b8c Appling auto-Aadjust images on upload to avoid distotiong\n\nd759236 Change config to upload\u00a0\n\nae6a172 Merge branch 'assync-spam-job' into 'master'\u00a0\n\nef10959 Disable worker for spam learn.\u00a0\n\n<\/pre>\n<h2><b>3) Considere incluir o link do card da sua hist\u00f3ria no commit<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Incluir o link do card no commit facilita na hora de encontrar uma refer\u00eancia mais completa dos motivos pelos quais aquela hist\u00f3ria foi feita. Assim, \u00e9 poss\u00edvel mostrar tamb\u00e9m alguns exemplos e, at\u00e9, detalhes t\u00e9cnicos importantes que fazem parte das boas pr\u00e1ticas de git.<\/span><\/p>\n<h2><b>4) Limite o assunto do commit a 50 caracteres<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">O n\u00famero 50 \u00e9 uma base para que o assunto possa ser lido por completo em qualquer interface. No entanto, essa regra n\u00e3o precisa ser seguida a ferro e fogo, ok?<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Considere seguir um padr\u00e3o entre os t\u00f3picos 2 e 3, utilize os 50 primeiros caracteres para um resumo do que foi feito e ser\u00e1 visualizado em qualquer interface, que permita trabalhar uma mensagem mais detalhada nas pr\u00f3ximas linhas.<\/span><\/p>\n<h2><b>5) Capitalize o assunto do seu commit<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Por fim, capitalizar o assunto do seu commit \u00e9 um ponto bastante importante para que ele seja encontrado mais facilmente em uma busca. Veja, a seguir, exemplos de commit com e sem capitaliza\u00e7\u00e3o:<\/span><\/p>\n<p><b>Sem capitalizar o assunto<\/b><\/p>\n<pre>$ git log --oneline -5\u00a0\n\nd2cad72 change config app to run\u00a0\n\nd759236 change config to upload\u00a0\n\nae6a172 Merge branch 'assync-spam-job' into 'master'\u00a0\n\nef10959 disable worker for spam learn.\u00a0\n\n4210b8c Merge branch 'sentry-error-spam' into 'master\n\n<\/pre>\n<p><b>Capitalizando o assunto<\/b><\/p>\n<pre>$ git log --oneline -5\u00a0\n\nd2cad72 Change config app to run\u00a0\n\nd759236 Change Config to upload\u00a0\n\nae6a172 Merge branch 'assync-spam-job' into 'master'\u00a0\n\nef10959 Disable worker for spam learn.\u00a0\n\n4210b8c Merge branch 'sentry-error-spam' into 'master'<\/pre>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-34738\" src=\"https:\/\/www.locaweb.com.br\/blog\/wp-content\/uploads\/2019\/10\/boas-praticas-de-git.png\" alt=\"boas pr\u00e1ticas de git\" width=\"812\" height=\"500\" \/><\/p>\n<h2><b>6) Nunca guarde arquivos bin\u00e1rios no seu projeto<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Apesar de ser uma ferramenta muito poderosa, o Git foi desenhado com um prop\u00f3sito voltado a arquivos de textos, principalmente com o foco em acompanhar mudan\u00e7as nesses arquivos, normalmente c\u00f3digos.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Normalmente, encontramos ferramentas que facilitam a visualiza\u00e7\u00e3o do projeto atrav\u00e9s de uma imagem ou um PDF gerados, e ficamos tentados a guardar essa documenta\u00e7\u00e3o no git, junto ao projeto. Por\u00e9m esses documentos n\u00e3o versionados pelo git \u00e9 feito com textos, e isso pode ocasionar o projeto a dobrar de tamanho a cada atualiza\u00e7\u00e3o desses arquivos.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Portanto, atente-se a passar indica\u00e7\u00f5es da utiliza\u00e7\u00e3o da ferramenta, preferencialmente atrav\u00e9s de um README, evitando salvar esses documentos junto ao projeto.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">E ent\u00e3o, gostou das boas pr\u00e1ticas de Git que indicamos neste post? Tem alguma d\u00favida ou gostaria de compartilhar a sua opini\u00e3o? Ent\u00e3o, aproveite e deixe o seu coment\u00e1rio e <a href=\"https:\/\/www.locaweb.com.br\/\">visite o nosso site!<\/a><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Utilizar o Git em seus projetos \u00e9 uma boa solu\u00e7\u00e3o, independentemente se o assunto em quest\u00e3o \u00e9 front-end ou back-end. No entanto, como toda boa ferramenta, o Git oferece uma infinidade de op\u00e7\u00f5es e recursos que podem ser bem ou mal utilizados. Pensando nisso, elaboramos este post com 6 boas pr\u00e1ticas de Git para que [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":34739,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[5],"tags":[],"class_list":["post-26786","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo-aberto"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/posts\/26786","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/comments?post=26786"}],"version-history":[{"count":2,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/posts\/26786\/revisions"}],"predecessor-version":[{"id":34742,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/posts\/26786\/revisions\/34742"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/media\/34739"}],"wp:attachment":[{"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/media?parent=26786"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/categories?post=26786"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.locaweb.com.br\/blog\/wp-json\/wp\/v2\/tags?post=26786"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}