TerraLib and TerraView Wiki Page

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
wiki:documentation:devguide:gitlab [2016/07/26 14:44]
gribeiro [Política de Uso do Repositório de Código Fonte da Terralib5 no GitLab]
wiki:documentation:devguide:gitlab [2016/08/03 16:15] (current)
felipe.siqueira [Configurando sua Cópia Local do Fork para Sincronizá-lo com o Repositório Original]
Line 1: Line 1:
-====== ​Política de Uso do Repositório de Código Fonte da Terralib5 no GitLab ======+====== ​Usando o GitLab ​da TerraLib ​======
  
-**Resumo:** Este documento explica como os desenvolvedores devem criar forks do repositório original da Terralib5 ​no GitLab ​configurar seus repositórios locais para mantê-los em sincronia com o original, bem como submeter pedidos para incorporação de modificações no repositório original.+**Resumo:** Este documento explica como os desenvolvedores devem criar //forks// do repositório original da TerraLib ​no ambiente do GitLab, bem como configurar seus repositórios locais para mantê-los em sincronia com o original. Também é apresentado ​como submeter pedidos para incorporação de modificações no repositório original.
  
-O repositório oficial da Terralib5 ​no GitLab encontra-se disponível no seguinte endereço: https://​gitlab.dpi.inpe.br/​terralib/​terralib.+===== Introdução ===== 
 + 
 +O repositório oficial da TerraLib ​no GitLab encontra-se disponível no seguinte endereço:\\ https://​gitlab.dpi.inpe.br/​terralib/​terralib
  
 Este repositório deverá ser utilizado apenas para download do código fonte oficial. Este repositório deverá ser utilizado apenas para download do código fonte oficial.
  
-Desenvolvedores ​que desejem ​realizar alterações no código deverão criar //forks// a partir ​desse repositório principal, submetendo as modificações como solicitações de //merge request//.+Os desenvolvedores ​que queiram ​realizar alterações no código ​fonte e depois submeter essas alterações para integração ao repositório oficial, ​deverão criar //forks// a partir ​do repositório principal, submetendo as modificações como solicitações de //merge request//.
  
-Para clonar ​repositório ​oficial, ​você pode utilizar ​git em linha de comando da seguinte forma: +Se você quer apenas fazer download do código fonte oficial, ​consulte ​documento [[:wiki:documentation:​devguide:​cloning|Cloning TerraLib/TerraView Repository]].
-<​code>​ +
-git clone https://gitlab.dpi.inpe.br/​terralib/​terralib5.git . +
-</​code>​+
  
-=== GitLab e o grupo Terralib ​===+===== Criando um fork do Repositório Oficial da TerraLib =====
  
-Atualmente a organização ​ criada no [[https://​gitlab.dpi.inpe.br/​terralib|GitLab]] possui três times: +No seu navegadorvá para endereço: https://​gitlab.dpi.inpe.br.
-  * **Owners:** os coordenadores técnicos do projeto possuem acesso irrestrito à organizaçãocriação de repositórios e administração de integrantes dos times. +
-  * **Masters:​** ​o(s) gerente(s) de desenvolvimento e líder(es) de equipe que possui(em) acesso de administração do [[https://​gitlab.dpi.inpe.br/​terralib/​terralib5| Repositório principal da Terralib]]. +
-  * **Developers:​** o time de desenvolvedores da Terralib possui acesso de leitura no [[https://​gitlab.dpi.inpe.br/​terralib/​terralib5|Repositório principal da Terralib5]].+
  
-Os desenvolvedores são encorajados a utilizar o recurso de criação de forks do repositório oficial da Terralib. Desta formaé possível que um desenvolvedor seja capaz de realizar modificações,​ correções e experimentos sem causar inconsistências no repositório oficialAssim, modificações devem ser submetidas como merge requests.+Na interface gráfica ​do GitLabnavegue até o projeto TerraLib:\\ https://​gitlab.dpi.inpe.br/​terralib/​terralib
  
-=== Fazendo o fork do repositório ​da Terralib5 === +O botão de //Fork// se encontra no centro ​da página.
  
-Na janela do [[https://gitlab.dpi.inpe.br/|GitLab]], navegue até [[https://​gitlab.dpi.inpe.br/​terralib/​terralib5|repositório da Terralib]].+Basta clicar no botão de //Fork// e selecionar ​seu usuário no formulário que será exibido.
  
-O botão de //Fork// se encontra no centro da página. Basta clicar nesta opção e selecionar o seu usuário. Você terá feito um //fork// do repositório original. +Ao final deste processo você terá o seu //fork// disponível em um link como:\\ https://gitlab.dpi.inpe.br/gribeiro/terralib
-=== Configurando seu Fork para Mantê-lo Sincronizado com o Repositório Original ===+
  
-Crie uma cópia local do seu //fork//: +===== Criando uma Cópia Local do seu Fork ===== 
-<​code>​ + 
-$ git clone https://​gitlab.dpi.inpe.br/​seu-nome-usuario/terralib5.git+**1.** Para criar uma cópia local do seu //​fork// ​para trabalhar, basta apontar o Git para o endereço do seu //fork//, como por exemplo
 +<​code ​bash
 +GIT_SSL_NO_VERIFY=true ​git clone https://​gitlab.dpi.inpe.br/​gribeiro/terralib.git .
 </​code>​ </​code>​
  
-Em seguidaentre na pasta terralib5 e ajuste ​nome de usuário e e-mail+**Atenção:​** No comando acimadesabilitamos ​uso de certificados SSL. Se você preferir, pode desabilitar de forma local ou global essa verificação. Para deabilitar de forma global faça
-<​code>​ +<​code ​bash
-git config ​user.name your-gitlab-login +git config --global http.sslVerify false
-git config user.email your-gitlab-email-contact+
 </​code>​ </​code>​
  
-Para configurar o git para sincronizar a sua cópia local com o repositório ​original+Se você preferir desabilitar a verificação de certificados SSL apenas ​para o repositório ​que você já clonou, faça
- +<code bash> 
-**1)** Vá ao seu navegador e acesse o [[https://​gitlab.dpi.inpe.br/terralib/​terralib5|repositório original da Terralib5]].+$ git config http.sslVerify false 
 +</code>
  
-**2)** Na barra à direita, copie endereço do repositório ​original: https://​gitlab.dpi.inpe.br/​terralib/​terralib5.git. +**2.** Após ter clonado ​o repositório, não se esqueça ​de configurar suas credenciais ​para que os commits sejam anotados com o seu usuário:
- +
-**3)** Na linha de comando, vá para a pasta em que você criou a cópia local do seu //fork//. +
- +
-**4)** Para saber repositório remoto que se encontra configurado atualmente para seu //fork//, faça:+
 <​code>​ <​code>​
-$ git remote ​-v+$ git config user.name your-login 
 +$ git config user.email your-e-mail
 </​code>​ </​code>​
-A saída será algo como+ 
-<​code>​ +**3.** Se quiser, já alterne para o //branch// correto
-origin https://​gitlab.dpi.inpe.br/​seu-nome-usuario/​terralib5 (fetch) +<​code ​bash
-origin https://​gitlab.dpi.inpe.br/​seu-nome-usuario/terralib5 (push)+$ git checkout ​-b develop ​origin/develop
 </​code>​ </​code>​
  
-**5)** Para configurar ​seu repositório local, ​associando-o ​com o repositório oficial, ​use o seguinte comando:+===== Configurando sua Cópia Local do Fork para Sincronizá-lo com o Repositório Original ===== 
 + 
 +**1.** Após ter clonado e configurado o seu repositório local a partir do seu //fork//será necessário associar seu repositório local com o repositório oficial. Para issoutilize ​o seguinte comando:
 <​code>​ <​code>​
-$ git remote add upstream https://​gitlab.dpi.inpe.br/​terralib/​terralib5.git+$ git remote add upstream https://​gitlab.dpi.inpe.br/​terralib/​terralib.git
 </​code>​ </​code>​
  
-**6)** Verifique se o novo //​upstream ​repository// especificado encontra ​corretamente ​apontado:+Pelo TortoiseGit:​ 
 + 
 +{{:​wiki:​documentation:​devguide:​addremotetortoisegit.jpg?​600|}} 
 + 
 +**2.** Verifique se o //​upstream// ​do seu repositório local foi associado ​corretamente ​ao endereço do repositório oficial (https://​gitlab.dpi.inpe.br/​terralib/​terralib.git). Para isso, utilize o comando abaixo:
 <​code>​ <​code>​
 $ git remote -v $ git remote -v
 </​code>​ </​code>​
-Você deverá ver a URL do seu //fork// como //origin// e a URL do repositório original como //​upstream//,​ conforme a saída ​abaixo:+ 
 +saída ​deverá ser semelhante à seguinte:
 <​code>​ <​code>​
-origin         ​https://​gitlab.dpi.inpe.br/​seu-nome-usuario/​terralib5 ​(fetch) +origin     ​https://​gitlab.dpi.inpe.br/​seu-nome-usuario/​terralib.git ​(fetch) 
-origin         ​https://​gitlab.dpi.inpe.br/​seu-nome-usuario/​terralib5 ​(push) +origin     ​https://​gitlab.dpi.inpe.br/​seu-nome-usuario/​terralib.git ​(push) 
-upstream https://​gitlab.dpi.inpe.br/​terralib/​terralib5.git (fetch) +upstream ​   https://​gitlab.dpi.inpe.br/​terralib/​terralib.git (fetch) 
-upstream https://​gitlab.dpi.inpe.br/​terralib/​terralib5.git (push)+upstream ​   https://​gitlab.dpi.inpe.br/​terralib/​terralib.git (push)
 </​code>​ </​code>​
-=== Sincronizando Sua Cópia Local e Seu Fork com o Repositório Original ===+===== Sincronizando Sua Cópia Local e Seu Fork com o Repositório Original ​=====
  
-**1)** Faça o //fetch// dos //​branches//​ e seus respectivos //commits// do repositório //​upstream//:​+**1.** Faça o //fetch// dos //​branches//​ e seus respectivos //commits// do repositório //​upstream//:​
 <​code>​ <​code>​
 $ git fetch upstream $ git fetch upstream
 </​code>​ </​code>​
  
- +**2.** Faça o //merge// do repositório oficial (//​upstream/​develop//​ ou outro ramo desejado) com a sua cópia local (que ocorrerá com o //branch// corrente):
-**2)** Se você estiver fazendo modificações no branch ​//master//, assegure-se de estar nele:+
 <​code>​ <​code>​
-$ git checkout master+$ git merge upstream/​develop
 </​code>​ </​code>​
  
-Se você já estiver neste //branch// receberá uma mensagem como a abaixo:+**3.** Envie suas modificações para o repositório do seu //fork//:
 <​code>​ <​code>​
-Already on '​master'​ +$ git push
-Your branch is up-to-date with '​origin/​master'​.+
 </​code>​ </​code>​
  
-**3)** Faça o //merge// do //upstream/master// (ou do ramo desejado) com o seu ramo local para sincronizar ​seu repositório ​local com o original+ 
-<​code>​ +===== Fazendo um Pedido de Merge (Merge Requests===== 
-$ git merge upstream/​master+ 
 +Para enviar as modificações presentes no repositório do seu //fork// para repositório original será necessário fazer um pedido de //​merge// ​através da interface gráfica ​do GitLab. 
 + 
 +No seu navegador, vá para o endereço do seu //fork//, como por exemplo:\\ https://​gitlab.dpi.inpe.br/​gribeiro/​terralib. 
 + 
 +No painel à esquerda selecione a opção //Merge Requests// e crie um novo pedido ​(//New Merge Request//)
 + 
 +Você será redirecionado para uma página ​com dois mecanismos na tela. O objeto apresentado em //Source branch// representa ​o seu fork e //Target Branch// o repositório oficial da TerraLib.  
 + 
 +Em //Source Branch//, selecione o branch que estão as modificações do seu fork. Em //Target Branch//, selecione para qual branch do repositório ​oficial que deve incorporar as novas mudanças. Em seguida, selecione "​Compare branches and continue"​.  
 + 
 +**Atenção** Se não houver mudanças comparando os branches, você não poderá prosseguir ​com a criação do pedido de //Merge Request//​. 
 + 
 +Você será redirecionado para a página de criação e detalhes adicionais do //Merge Request//. Preencha um título do pedido, adicione uma descrição do que esta foi feito e em seguida confirme. 
 + 
 +===== Dicas para Git ===== 
 + 
 +=== Alterando o endereço de um remote === 
 + 
 +Caso você queira alterar o endereço de um remote, use o comando a seguir em seu repositório local
 +<​code ​bash
 +$ git remote set-url <​nome-do-remote>​ <​novo-endereço>​
 </​code>​ </​code>​
  
 +=== Desfazendo um commit no seu repositório local ===
  
-=== Fazendo pedidos de merge (Merge Requests) ===+Desfazendo o último commit e mantendo as alterações:​ 
 +<code bash> 
 +$ git reset HEAD^ 
 +</​code>​
  
-Para enviar as modificações para repositório original é necessário fazer pedido ​de merge pela interface do GitLab. +Desfazendo ​último commit e as alterações **permanentemente**:​ 
-Navegue para o seu fork e vá para "Merge Requests"​ disponível no menu lateral esquerdo e clique em "New Merge Request"​.+<code bash> 
 +$ git reset HEAD^ --hard 
 +</​code>​ 
 + 
 +Desfazendo múltiplos commits: 
 + 
 +<code bash> 
 +$ git reset HEAD~<​quantidade-de-commits>​ 
 +</​code>​
  
-Na janela do navegador, no site do GitLab do seu //fork//, selecione o ramo correto, onde você fez as modificações e em seguida selecione a opção //"​Compare branchs and continue"//​.