Git para Principiantes – Parte II

Postado por DBC Company Em: Desenvolvimento, Tecnologia Sem comentarios

APRESENTAÇÃO

Na primeira parte do artigo vimos os comandos mais utilizados no dia-a-dia em um time de desenvolvimento. Nessa segunda etapa, veremos comandos git [1] utilizados com menos frequência, mas não menos importantes.

MOTIVAÇÃO

  • Esse é o Git. Ele mostra nosso trabalho em projetos através de uma árvore distribuída.
  • Legal! E como vamos usar ele?
  • Não faço ideia. Apenas decore esses comandos e digite-os para sincronizar tudo. Se der erro, salve seu trabalho em algum lugar, apague o projeto e faça uma nova cópia.

(tradução livre) – Fonte: https://xkcd.com/1597/

COMANDOS ADICIONAIS (MAS NÃO MENOS IMPORTANTES)

Baseado em situações comuns que precisamos resolver, vejamos como proceder em cada uma delas:

Como atualizar o repositório local?

Há duas formas de se atualizar um repositório local, e quem vai definir qual a forma ideal é o time – já que não existe uma forma certa, única:

$ cd Tchelinux/

$ git pull --rebase

ou

$ cd Tchelinux/

$ git fetch

$ git rebase

Dessas, a mais utilizada é a primeira forma, onde o parâmetro –rebase é opcional. Quando utilizado (ou na segunda forma), o seu commit atual é temporariamente desfeito, os demais commits que foram buscados do servidor são aplicados e, ao final, seu commit é reaplicado – ficando por último.

COMO CRIAR UM REPOSITÓRIO LOCAL?

Quando se vai iniciar um projeto e já queremos começar da maneira certa, podemos inicializar uma estrutura git nova com o seguinte comando:

$ git init

Initialized empty Git repository in Projeto/.git/

Lembrando que, dessa forma, ainda não há ligação com servidor externo – apenas local.

COMO FAZER LIGAÇÃO COM SERVIDOR EXTERNO?

Se você já tem um projeto vazio criado em um servidor externo, é possível acrescentar apenas o remote [2] ao seu projeto local:

$ cd Projeto

$ git remote add origin \

git@gitlab.com:fabiobeneditto/tchelinux-git.git

Nesse exemplo, usamos o comando add e definimos o nome padrão do servidor externo, por convenção definido como origin, e informamos o endereço de acesso ao repositório. E, dessa forma, nosso repositório está habilitado a fazer push ao servidor remoto.

COMO FAZER UMA CÓPIA DO REPOSITÓRIO PARA UMA NOVA TAREFA?

O git permite que trabalhemos com branches [3], uma espécie de cópia virtual – só que bem mais inteligente. Em um branch é armazenado apenas os arquivos alterados, diminuindo o consumo de espaço em disco. Da seguinte forma:

$ git branch nova-feature

$ git branch

* master

nova-feature

Nesse momento, estamos criando um branch chamado nova-feature e listamos quais branches estão disponíveis. O marcado com asterisco é o branch ativo.

$ git checkout nova-feature

Switched to branch 'nova-feature'

Então, estamos alterando o branch ativo (checkout) para o nova-feature, que é listado aqui abaixo.

$ git branch

master

* nova-feature

A partir desse momento, as alterações e commits serão realizados neste branch – e que mais tarde podem ser unificados ao master.

COMO JUNTO AS ALTERAÇÕES DO MEU BRANCH ATUAL COM O MASTER?

Manualmente, há alguns passos necessários para aplicar as alterações de seu branch atual ao master, e esse processo é chamado de merge [3]:

$ git checkout master

Switched to branch 'master’

$ git merge nova-feature

Updating 3e9fc43..ce48a52

Fast-forward

 hello.md | 1 +

 1 file changed, 1 insertion(+)

commit f480dd96974c5eafea736a4286db353172e960e3

$ git log --oneline

ce48a52 (HEAD -> master, nova-feature) Subtitulo incluido

3e9fc43 Descricao Curta da tarefa

cf8cc84 Bloco Extra em hello.md

f480dd9 Versão Inicial de hello.md

Após o merge, os commits são listados de acordo com seu branch de origem (quando houver), sinalizando entre a hash e a mensagem curta.

COMO ADICIONAR ARQUIVOS EM UM COMMIT QUE JÁ FIZ?

Antes de fazer push para o servidor, o commit ainda pode ser alterado para inclusão de novos arquivos. Para tal, faremos um amend no commit atual:

$ vim hello.md

$ git add hello.md

$ git commit –amend

[master dd259b4] Bloco Extra em hello.md

Date: Sun Sep 17 15:36:51 2017 -0300

1 file changed, 3 insertions(+), 1 deletion(-)

Dessa forma nosso commit é reaberto, novos arquivos incluídos, e preparado para envio ao servidor. Se necessário, a mensagem do commit pode ser alterada. E, finalizado isso, só seguir para o push ao servidor remoto.

…E É SÓ ISSO?

Claro que não! Há muito mais comandos e situações distintas que têm uso mais raro, mas que estão muito bem documentadas no Git Book [4]

FINALIZANDO

As partes 1 e 2 do artigo foram escritas com base nessa apresentação de Git para Principiantes [5], e ao som de muito Heavy Metal – desta playlist aqui, no Spotify: https://spoti.fi/2IdKa2H

Por Fabio Beneditto, Desenvolvedor de Sistemas na DBC Company.

fabio.junior@dbccompany.com.br

 

REFERÊNCIAS

  1. https://git-scm.com/
  2. https://git-scm.com/book/pt-br/v2/Git-Basics-Working-with-Remotes
  3. https://git-scm.com/book/pt-br/v2/Git-Branching-Basic-Branching-and-Merging
  4. https://git-scm.com/book/pt-br/v2
  5. https://www.slideshare.net/fabiobeneditto/git-para-principiantes-2019
3 Likes

Comments: 0

There are not comments on this post yet. Be the first one!

Deixe um comentário