Árvore de páginas

Precisa de ajuda?













Git é um sistema de controle de versão de arquivos. Através dele, podemos desenvolver projetos, onde diversas pessoas podem contribuir simultaneamente, editando e criando novos arquivos e permitindo que os mesmos possam existir sem o risco de suas alterações serem sobrescritas.

Se não houvesse um sistema de versão, imagine o caos quando duas pessoas abrissem um arquivo ao mesmo tempo. Uma das aplicações do Git é justamente permitir que um arquivo possa ser editado ao mesmo tempo por pessoas diferentes. Por mais complexo que isso seja, ele tenta manter tudo em ordem para evitar problemas para os desenvolvedores.


    Instalação

    O Git pode ser instalado tanto via linha de comando como por meio de download. Para obter o Git em sua máquina confira o passo a passo neste link: https://git-scm.com/book/pt-br/v1/Primeiros-passos-Instalando-Git

    Configurando o usuário Git

    Nesta etapa vamos configurar o nome de usuário e e-mail que o Git irá utilizar sempre que realizarmos uma alteração em um arquivo de código fonte, estes dados serão importantes no futuro, pois dentro do processo de submeter um código fonte para aprovação e aplicação em um ambiente, o responsável por esta avaliação irá checar estas informações.

    Para concluir esta etapa de configuração, basta executar dois comandos cujo objetivo é informar ao Git qual o nome de usuário da pessoa que está utilizando a ferramenta e qual seu e-mail.

    Os comandos devem ser executados em um terminal, caso você esteja utilizando Windows, ao instalar o Git será instalado uma ferramenta de terminal chamada Git Bash.

    1. Para abrir o Git Bash, execute o Windows Explorer.
    2. Acesse uma pasta de sua preferência.
    3. Clique com o botão direito e escolha a opção Git Bash Here.



          4. Com o terminal Git aberto, digite:

    $ git config --global user.name "Seu usuário"
    
    $ git config --global user.email "Seu e-mail"


    Estas configurações ficam alocadas no arquivo ~/.gitconfig, onde: o ~ é o diretório home.

    No Windows, ficam em c:\Usuarios\<username>\.gitconfig.

    Baixando um Repositório

    Após configurar o usuário e e-mail, pode-se baixar uma cópia local do repositório. 

    O primeiro passo é obter as credências e a url para obtenção dos arquivos.

    Todos os repositórios para customização do SmartERP Protheus são protegidos e sua cópia somente pode ocorrer mediante o usuário possuir um par de chaves (credencial + senha) que serão utilizados sempre que enviar suas alterações para o servidor.


    Atenção

    Não distribua seu par de chaves, caso perca ou suspeite que a segurança foi comprometida, solicite um novo par imediatamente.


    Em posse do par de chaves e da url utilize o comando git clone:

    git clone git.totvs.com/v1/repos/smartprotheus-XXXXXXX-repository


    (Este link você poderá coletar diretamente em seu painel de serviços TCLOUD)

    Ao executar o git clone, o projeto é "baixado" para a máquina e uma pasta com o nome do projeto é criada.

    Comandos iniciais do Git

    Com o repositório na máquina, verificaremos quatro comandos iniciais importantíssimos:

    $ git add <arquivos...>

    Este comando adiciona o(s) arquivo(s) em um lugar que chamamos de INDEX, que funciona como uma área do Git, no qual os arquivos possam ser enviados ao Repositório ERP. É importante saber que ADD não está adicionando um arquivo novo ao repositório, mas sim dizendo que o arquivo (novo ou não) está sendo preparado para entrar na próxima revisão do repositório.


    $ git commit -m "comentário qualquer"

    Este comando realiza o que chamamos de commit, que significa pegar todos os arquivos que foram adicionados pelo comando add, no INDEX e criar uma revisão com um número e um comentário, que será vista por todos.


    $ git push

    Push (empurrar) é usado para publicar todos os commits para o repositório ERP. Neste momento, é solicitada a pedido a senha.Push (empurrar) é usado para publicar todos os commits para o repositório ERP. Neste momento, é solicitado um pedido de senha.


    $ git status

    Exibe o status do repositório atual.

    Errei a mensagem do commit, como corrijo?

    Imagine que você tenha errado a mensagem que escreveu no commit ou simplesmente queira melhorar a descrição do seu trabalho.

    Se você já entregou a mensagem, mas ainda não fez o push das suas modificações para o servidor, pode usar a flag --amend:

    $ git commit --amend

    O git commit --amend modifica a mensagem do commit mais recente, ou seja, o último commit.

    Além de mudar a mensagem do commit, também é possível adicionar ou retirar arquivos. 

    O Git cria um commit totalmente novo e corrigido.


    Trabalhando com branches

    No Git, o conceito de branch é muito simples e fácil de usar.

    Quando é necessário criar uma branch?

    Imagine que o código esteja pronto, tudo funcionando perfeitamente, mas surge a necessidade de alterar algumas partes dele como forma de melhorá-lo. Além disso, é necessário manter estas alterações tanto no computador pessoal quanto do trabalho.

    Por exemplo: Se você começa a alterar os arquivos em casa, pára na metade da implementação e precisa terminar no trabalho, como você iria entregar tudo pela metade e deixar as personalizações incompletas?

    Para isso existe o conceito de branch, que é justamente ramificar o seu projeto em dois, como se cada um deles fosse um repositório, e depois juntá-lo novamente.

    Em projetos que usam Git, é possível ter branches locais, presentes apenas na máquina do programador e branches remotas, que apontam para outras máquinas.

    Por padrão, a branch principal é chamada master, tanto no repositório local quanto no remoto. Idealmente, a master é uma branch estável, isto é, o código nessa branch estará testado e pronto para ser entregue.

    Para listar as branches existentes no repositório Git, basta executar:

    $ git branch

    Criando uma branch

    Uma prática comum é ter no repositório, branches novas para o desenvolvimento de funcionalidades que ainda estão em andamento, contendo os commits do que já foi feito até então.

    Para criar uma branch nova, de nome especifico a partir do último commit da master, execute:

    $ git branch especifico

    Ao criar uma nova branch, ainda não estamos automaticamente nela. Para selecioná-la, execute:

    $ git checkout específico

    Criando e selecionando uma branch

    É possível criar e selecionar uma branch com apenas um comando:

    $ git checkout -b especifico

    Para visualizar o histórico de commits de todas as branches, execute:

    $ git log –all

    Para uma representação gráfica baseada em texto do histórico, há a opção:

    $ git log --graph

    Reunindo commits de outra branch

    Como liberar as melhorias e novas funcionalidades?

    É preciso mesclar o código de uma branch com a branch master.

    Em geral, os sistemas de controle de versão têm um comando chamado merge, que permite fazer a junção de uma branch em outra, de maneira automática.

    Vamos dizer que temos o seguinte cenário: a master tem os commits A e B.

    Então:

    1. Cria-se uma branch especifica;
    2. Implementa-se uma nova funcionalidade;
    3. Realiza-se o commit D;
    4. Retorna-se à master, obtém-se o repositório remoto (as mudanças feitas por um outro membro do time);
    5. Recebe-se o commit C.


















    Se estivermos na branch master, podemos fazer o merge das alterações que estão na branch específica da seguinte maneira:

    $ git merge especifico

    Ao realizar o merge, as alterações da branch especifica são colocadas na branch master e é criado um commit M, apenas para o merge.

    O git, até mesmo abre um editor de texto para que seja possível definir a mensagem desse commit de merge.

    Os comandos git log --graph ou gitk exibem o gráfico de commits da master:















    Importante

    Caso a gravação dos artefatos seja realizada diretamente na branch MASTER, consideraremos que o código gravado deverá ser promovido para o ambiente produtivo, ou seja, a utilização de branchs diferentes da MASTER irá nos garantir que os códigos sejam validados no ambiente produtivo.


    Para normalizarmos os nomes das branches, convencionaremos a utilização da seguinte sintaxe:

    $ git checkout -b feature/nova_branch





    • Sem rótulos