﻿{"id":422,"date":"2020-04-23T16:50:03","date_gmt":"2020-04-23T19:50:03","guid":{"rendered":"https:\/\/blog.softmakers.com.br\/?p=422"},"modified":"2020-04-23T19:42:42","modified_gmt":"2020-04-23T22:42:42","slug":"integrar-ramificacoes-entre-dois-ou-mais-projetos-do-git","status":"publish","type":"post","link":"https:\/\/blog.softmakers.com.br\/index.php\/2020\/04\/23\/integrar-ramificacoes-entre-dois-ou-mais-projetos-do-git\/","title":{"rendered":"Integrar Ramifica\u00e7\u00f5es entre dois ou mais Projetos do GIT."},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Quando estamos desenvolvendo nos deparamos com diversos problemas, e esta \u00e9 a parte onde evolu\u00edmos, nem sempre sabemos o que realmente deve ser feito, nem quando temos a necessidade de migrar um projeto para outro, ent\u00e3o, chegamos no real objetivo deste POST.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vejamos como exemplo os seguinte projetos:<\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Projeto A:<\/p>\n<\/div><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"527\" height=\"85\" src=\"https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/branchs-PA.png\" alt=\"\" class=\"wp-image-425\" srcset=\"https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/branchs-PA.png 527w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/branchs-PA-300x48.png 300w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/branchs-PA-230x37.png 230w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/branchs-PA-350x56.png 350w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/branchs-PA-480x77.png 480w\" sizes=\"(max-width: 527px) 100vw, 527px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Projeto B:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"528\" height=\"104\" src=\"https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/branchs-PB.png\" alt=\"\" class=\"wp-image-426\" srcset=\"https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/branchs-PB.png 528w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/branchs-PB-300x59.png 300w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/branchs-PB-230x45.png 230w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/branchs-PB-350x69.png 350w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/branchs-PB-480x95.png 480w\" sizes=\"(max-width: 528px) 100vw, 528px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Projeto C:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"527\" height=\"61\" src=\"https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/branchs-PC.png\" alt=\"\" class=\"wp-image-427\" srcset=\"https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/branchs-PC.png 527w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/branchs-PC-300x35.png 300w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/branchs-PC-230x27.png 230w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/branchs-PC-350x41.png 350w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/branchs-PC-480x56.png 480w\" sizes=\"(max-width: 527px) 100vw, 527px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Est\u00f3ria:<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Os Projetos tem a mesma finalidade, mas s\u00e3o de clientes diferentes, houve necessidade de pegar a ramifica\u00e7\u00e3o (brach) <strong>\u2018hml\u2019<\/strong> do projeto A e colocar no projeto C, e depois pegar a ramifica\u00e7\u00e3o (branch) <strong>\u2018new-feature\u2019<\/strong> do projeto B e colocar no projeto C.<br>Para isto vamos utilizar o terminal e os comandos que o <em>GIT<\/em> nos forne\u00e7e.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para iniciar-mos vamos abrir o terminal e aponta-lo para o diret\u00f3rio referente ao projeto C:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"430\" height=\"113\" src=\"https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/image.png\" alt=\"\" class=\"wp-image-428\" srcset=\"https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/image.png 430w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/image-300x79.png 300w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/image-230x60.png 230w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/image-350x92.png 350w\" sizes=\"(max-width: 430px) 100vw, 430px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Suponha-se que a<em> branch master <\/em>do projeto C \u00e9 a atualizada, ent\u00e3o vamos criar uma branch a partir dela chamada <strong><em>sync-from-projects<\/em><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"695\" height=\"120\" src=\"https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/checkout.png\" alt=\"\" class=\"wp-image-429\" srcset=\"https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/checkout.png 695w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/checkout-300x52.png 300w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/checkout-230x40.png 230w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/checkout-350x60.png 350w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/checkout-480x83.png 480w\" sizes=\"(max-width: 695px) 100vw, 695px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Agora vamos criar a ramifica\u00e7\u00e3o que precisamos do projeto A&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Antes, vamos entender:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Existem duas formas de criar a, ou, as ramifica\u00e7\u00f5es:<br><br><strong>1\u00ba Formato:<\/strong> &#8220;<code>git remote add [-f] &lt;nome-do-ramo&gt; &lt;url&gt;<\/code>&#8220;<br><br>A express\u00e3o <strong><em>git remote add<\/em><\/strong>, como a pr\u00f3pria express\u00e3o indica, \u00e9 o comando de adi\u00e7\u00e3o remota do git.<br>A express\u00e3o<strong> <em>[ -f ]<\/em> <\/strong> significa &#8216;fetch&#8217;, no caso em espec\u00edfico \u00e9 utilizado para indicar todas as ramifica\u00e7\u00f5es existente do projeto A para serem adicionadas ao projeto C.<br>O <em><strong>&lt;nome-do-ramo&gt;<\/strong><\/em> \u00e9 o nome que deseja nomear as ramifica\u00e7\u00f5es, nome que ser\u00e1 a identifica\u00e7\u00e3o das branches do projeto A no projeto C.<br>Por \u00faltimo temos a <strong><em>&lt;url&gt;<\/em><\/strong> que nada mais \u00e9 que a url do reposit\u00f3rio git, no caso em espec\u00edfico, a url do reposit\u00f3rio do projeto A.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Exemplo:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"218\" src=\"https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/remote-A-from-C-ALL-1024x218.png\" alt=\"\" class=\"wp-image-430\" srcset=\"https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/remote-A-from-C-ALL-1024x218.png 1024w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/remote-A-from-C-ALL-300x64.png 300w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/remote-A-from-C-ALL-768x163.png 768w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/remote-A-from-C-ALL-830x177.png 830w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/remote-A-from-C-ALL-230x49.png 230w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/remote-A-from-C-ALL-350x74.png 350w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/remote-A-from-C-ALL-480x102.png 480w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/remote-A-from-C-ALL.png 1199w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Cuidados a serem tomados:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Por exemplo, se o projeto A tivesse 100 ramifica\u00e7\u00f5es teria sido criado 100 ramifica\u00e7\u00f5es remotas, uma para cada, no projeto C.<\/li><li>Se por acaso uma ramifica\u00e7\u00e3o tenha sido criada remotamente e voc\u00ea deseja retira-la do projeto C, <strong>&#8220;ESQUE\u00c7A&#8221;<\/strong>, quando o processo anterior \u00e9 executado, ele s\u00f3 pode ser desfeito por completo, e n\u00e3o por parte. Se por acaso uma ramifica\u00e7\u00e3o criada no processo for deletada do projeto C, a branch original referente a ramifica\u00e7\u00e3o ser\u00e1 deletada do reposit\u00f3rio original, no nosso caso, por exemplo, se por acaso a ramifica\u00e7\u00e3o <em><code>develop  -&gt;  project-a\/develop<\/code> <\/em>, for deletada do projeto C, a branch referente a mesma ser\u00e1 deletada do projeto A.<\/li><li>Caso seja preciso desfazer o processo anterior, deve ser utilizado o comando: <code>git remote rm &lt;nome-do-ramo&gt;<\/code><br>Exemplo: <code>git remote rm project-a<\/code><\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"621\" height=\"378\" src=\"https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/remove-remote.png\" alt=\"\" class=\"wp-image-441\" srcset=\"https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/remove-remote.png 621w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/remove-remote-300x183.png 300w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/remove-remote-230x140.png 230w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/remove-remote-350x213.png 350w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/remove-remote-480x292.png 480w\" sizes=\"(max-width: 621px) 100vw, 621px\" \/><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>NOTA:<br>Observem que desta forma todo o processo anterior \u00e9 desfeito, sendo retirada com seguran\u00e7a todas as ramifica\u00e7\u00f5es criadas no projeto C sem haver nenhum dano ao projeto A.<\/p><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2\u00ba Formato<\/strong>: &#8220;<code>git remote add [-t] &lt;nome-da-branch&gt; &lt;nome-do-ramo&gt; &lt;url&gt;<\/code>&#8220;<br><br>A express\u00e3o <em><strong>[ -t ]<\/strong><\/em> da o significado para a branch.<br>A express\u00e3o <strong><em>&lt;nome-da-branch&gt;<\/em><\/strong> significa a branch que deseja ramificar, no nosso caso, ser\u00e1 a branch <em>hml<\/em> do projeto A.<br><br>Para o nosso exemplo temos que utilizar uma rela\u00e7\u00e3o entre os dois formatos.<br>Exemplo: <code>git remote add -f -t hml projeto-a https:\/\/admin@bitbucket.org\/projeto\/project-a.git<br><\/code><br>Desta forma estaremos criando apenas uma ramifica\u00e7\u00e3o remota no projeto C, referente a branch hml do projeto A.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"85\" src=\"https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/remote-branch-hml-PA-1024x85.png\" alt=\"\" class=\"wp-image-442\" srcset=\"https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/remote-branch-hml-PA-1024x85.png 1024w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/remote-branch-hml-PA-300x25.png 300w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/remote-branch-hml-PA-768x64.png 768w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/remote-branch-hml-PA-830x69.png 830w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/remote-branch-hml-PA-230x19.png 230w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/remote-branch-hml-PA-350x29.png 350w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/remote-branch-hml-PA-480x40.png 480w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/remote-branch-hml-PA.png 1267w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Feito este processo, agora vamos fundir os projetos:<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><br>Para poder fundir a ramifica\u00e7\u00e3o <em><strong>project-a\/hml<\/strong><\/em> a branch <em><strong>sync-from-projects<\/strong><\/em>, vamos utilizar o camando: <code>git merge &lt;nome-do-ramo&gt;\/&lt;nome-da-branch&gt;<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"857\" height=\"570\" src=\"https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/git-merge-PA-PC.png\" alt=\"\" class=\"wp-image-445\" srcset=\"https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/git-merge-PA-PC.png 857w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/git-merge-PA-PC-300x200.png 300w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/git-merge-PA-PC-768x511.png 768w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/git-merge-PA-PC-830x552.png 830w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/git-merge-PA-PC-230x153.png 230w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/git-merge-PA-PC-350x233.png 350w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/git-merge-PA-PC-480x319.png 480w\" sizes=\"(max-width: 857px) 100vw, 857px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">O Processo foi finalizado com sucesso, mas deve-se notar que normalmente ao fazer este processo, <em><strong>&#8216;Conflitos&#8217;<\/strong><\/em> existiram, e devem ser corrigidos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Agora basta fazer o mesmo processo para criar uma ramifica\u00e7\u00e3o da branch  <em><strong>\u2018new-feature\u2019<\/strong><\/em> do projeto B para o projeto C.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"257\" src=\"https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/PB-PC-Atualizado-1024x257.png\" alt=\"\" class=\"wp-image-446\" srcset=\"https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/PB-PC-Atualizado-1024x257.png 1024w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/PB-PC-Atualizado-300x75.png 300w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/PB-PC-Atualizado-768x193.png 768w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/PB-PC-Atualizado-830x208.png 830w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/PB-PC-Atualizado-230x58.png 230w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/PB-PC-Atualizado-350x88.png 350w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/PB-PC-Atualizado-480x120.png 480w, https:\/\/blog.softmakers.com.br\/wp-content\/uploads\/2020\/04\/PB-PC-Atualizado.png 1331w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>NOTA:<br>Neste Caso, as branches estavam atualizadas, por isso n\u00e3o houve ocorr\u00eancias.<\/p><\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">Conclus\u00e3o<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para se fundir dois ou mais projetos, basta ter 3 coisas importantes:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>CUIDADO<\/li><li>PACI\u00caNCIA<\/li><li>MUITO CAF\u00c9<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Espero que tenham gostado e at\u00e9 o pr\u00f3ximo Post!!!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Quando estamos desenvolvendo nos deparamos com diversos problemas, e esta \u00e9 a parte onde evolu\u00edmos, nem sempre sabemos o que realmente deve ser feito, nem quando temos a necessidade de migrar um projeto para outro, ent\u00e3o, chegamos no real objetivo deste POST. Vejamos como exemplo os seguinte projetos: Projeto A: Projeto B: Projeto C: Est\u00f3ria: &hellip; <a href=\"https:\/\/blog.softmakers.com.br\/index.php\/2020\/04\/23\/integrar-ramificacoes-entre-dois-ou-mais-projetos-do-git\/\" class=\"more-link\">Continuar lendo <span class=\"screen-reader-text\">Integrar Ramifica\u00e7\u00f5es entre dois ou mais Projetos do GIT.<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":424,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10,11],"tags":[52,51,50,54,53,55],"class_list":["post-422","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-coding","category-dev_ops","tag-branch","tag-fork","tag-git","tag-git-remote","tag-manificacao","tag-remote"],"_links":{"self":[{"href":"https:\/\/blog.softmakers.com.br\/index.php\/wp-json\/wp\/v2\/posts\/422","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.softmakers.com.br\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.softmakers.com.br\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.softmakers.com.br\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.softmakers.com.br\/index.php\/wp-json\/wp\/v2\/comments?post=422"}],"version-history":[{"count":25,"href":"https:\/\/blog.softmakers.com.br\/index.php\/wp-json\/wp\/v2\/posts\/422\/revisions"}],"predecessor-version":[{"id":466,"href":"https:\/\/blog.softmakers.com.br\/index.php\/wp-json\/wp\/v2\/posts\/422\/revisions\/466"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.softmakers.com.br\/index.php\/wp-json\/wp\/v2\/media\/424"}],"wp:attachment":[{"href":"https:\/\/blog.softmakers.com.br\/index.php\/wp-json\/wp\/v2\/media?parent=422"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.softmakers.com.br\/index.php\/wp-json\/wp\/v2\/categories?post=422"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.softmakers.com.br\/index.php\/wp-json\/wp\/v2\/tags?post=422"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}