TerraLib and TerraView Wiki Page

Usando o GitLab da TerraLib

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.

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.

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.

Se você quer apenas fazer o download do código fonte oficial, consulte o documento Cloning TerraLib/TerraView Repository.

Criando um fork do Repositório Oficial da TerraLib

No seu navegador, vá para o endereço: https://gitlab.dpi.inpe.br.

Na interface gráfica do GitLab, navegue até o projeto TerraLib:
https://gitlab.dpi.inpe.br/terralib/terralib

O botão de Fork se encontra no centro da página.

Basta clicar no botão de Fork e selecionar o seu usuário no formulário que será exibido.

Ao final deste processo você terá o seu fork disponível em um link como:
https://gitlab.dpi.inpe.br/gribeiro/terralib

Criando uma Cópia Local do seu Fork

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:

$ GIT_SSL_NO_VERIFY=true git clone https://gitlab.dpi.inpe.br/gribeiro/terralib.git .

Atenção: No comando acima, desabilitamos o uso de certificados SSL. Se você preferir, pode desabilitar de forma local ou global essa verificação. Para deabilitar de forma global faça:

$ git config --global http.sslVerify false

Se você preferir desabilitar a verificação de certificados SSL apenas para o repositório que você já clonou, faça:

$ git config http.sslVerify false

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:

$ git config user.name your-login
$ git config user.email your-e-mail

3. Se quiser, já alterne para o branch correto:

$ git checkout -b develop origin/develop

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 isso, utilize o seguinte comando:

$ git remote add upstream https://gitlab.dpi.inpe.br/terralib/terralib.git

Pelo TortoiseGit:

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:

$ git remote -v

A saída deverá ser semelhante à seguinte:

origin	    https://gitlab.dpi.inpe.br/seu-nome-usuario/terralib.git (fetch)
origin	    https://gitlab.dpi.inpe.br/seu-nome-usuario/terralib.git (push)
upstream    https://gitlab.dpi.inpe.br/terralib/terralib.git (fetch)
upstream    https://gitlab.dpi.inpe.br/terralib/terralib.git (push)

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:

$ git fetch upstream

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):

$ git merge upstream/develop

3. Envie suas modificações para o repositório do seu fork:

$ git push

Fazendo um Pedido de Merge (Merge Requests)

Para enviar as modificações presentes no repositório do seu fork para o 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 o 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:

$ git remote set-url <nome-do-remote> <novo-endereço>

Desfazendo um commit no seu repositório local

Desfazendo o último commit e mantendo as alterações:

$ git reset HEAD^

Desfazendo o último commit e as alterações permanentemente:

$ git reset HEAD^ --hard

Desfazendo múltiplos commits:

$ git reset HEAD~<quantidade-de-commits>