GuiaGit

Table of Contents

  1. Instalação
  2. Usando o Git
  3. Como é o Fluxo de trabalho com o Git?!
  4. Git Status
  5. Add & Commit
  6. Git PUSH - Mandando alterações para o repositório remoto
  7. Branches
  8. Update & Merge
  9. Tags
  10. Logs
  11. Sobrepor modificações locais
  12. Git Ignore

Instalação

Antes de usar o Git, você precisa ter ele instalado no seu computador. Mesmo que já esteja instalado, é uma boa ideia atualizar para a versão mais recente.

Entre neste link https://git-scm.com/downloads e faça download do Git de acordo com seu sistema operacional.

Usando o Git

Você pode começar de duas maneiras, criando um repositório ou clonando um existente.

1º – Criar um novo repositório

Crie um novo diretório no seu computador, abra-o pela linha de comando e execute:

1
git init

Pronto, está criado um repositório do Git em seu computador =)

2º – Clonar um repositório existente

Você pode clonar algum repositório existente em serviços como o GitHub ou BitBucket para dar inicio ao seu desenvolvimento, basta ir na linha de comando e executar:

1
git clone URL/Do/Repositório

Exemplo – Clonando o repositório do framework Laravel

1
git clone https://github.com/laravel/laravel.git NomeDaPasta

Observe que você também pode indicar o nome da pasta de destino para o repositório que está sendo clonado. Caso não seja especificado, a pasta de destino terá o mesmo nome do repositório.

Como é o Fluxo de trabalho com o Git?!

Seu repositório é formado por três “Árvores” mantidas pelo git.

Primeira Árvore é chamada de “Working Directory”, é nesta árvore que estão os arquivos do seu projeto.
Segunda Árvore é a “Index”. Esta funciona como uma área de preparação para saber quais arquivos foram modificados e adicionados.
Terceira Árvore é a HEAD, ela aponta para o último commit que você fez.
Veja a imagem abaixo para entender melhor o fluxo

GuiaGit

Git Status

Para saber quais arquivos você modificou/criou/deletou, existe o comando:

1
git status

Ao executar este comando, o git irá lhe mostrar um resumo das alterações feitas desde o ultimo commit.

Add & Commit

Você pode adicionar os arquivos modificados(adicionar a “arvore” index) usando:

1
git add <nomedoarquivo>

ou

1
git add *

No caso de git add *, serão adicionados todos os arquivos.

Este é o primeiro passo em um fluxo simples do git.

Para realmente dar um “commit” nestas mudanças, faça o seguinte:

1
git commit -m "Descrição das modificações"

Agora, o arquivo foi “commitado”, ou melhor, enviado para sua árvore HEAD. Mas ele ainda não está no seu repositório remoto.

Git PUSH - Mandando alterações para o repositório remoto

Suas modificações agora estão na árvore HEAD da sua cópia local. Para enviar essas mudanças para um repositório remoto, execute:

1
git push origin master

Você pode trocar a palavra “master” por qualquer Branch que você quiser enviar suas mudanças.

Se você não clonou um repositório(Criou um como no primeiro exemplo) e quer conectar seu repositório a um servidor remoto, você precisa adicioná-lo. Para isso, execute:

1
git remote add origin <servidor>

Agora você pode mandar suas modificações ao servidor remoto selecionado.

Branches

Branches em português significa Ramos, mas por se tratar de um termo técnico do Git, não é legal traduzir a palavra. Mas verá que faz sentido.

Branches são utilizados para desenvolver funcionalidades de maneira isolada. A branch “Master” é padrão quando se cria um repositório.

Crie uma branch para desenvolver alguma funcionalidade e depois faça um “Merge” na sua branch “Master”.

Por exemplo, se você criou seu projeto e quer implementar uma funcionalidade para gerenciar usuários. Você pode criar uma Branch, desenvolver essa funcionalidade e depois fazer um “Merge” desta branch com a “Master”.

GuiaGit

Crie uma nova branch com o nome “funcionalidade_x” e troque para ela usando:

1
git checkout -b funcionalidade_x

Voltar para a master

1
git checkout master

E para deletar o Branch Criado

1
git branch -d funcionalidade_x

Uma branch não fica disponível para outros usuários, a menos que você faça um push dessa Branch para seu repositório remoto.

1
git push origin <branch>

Update & Merge

Para atualizar seu repositório local para a versão mais atualizada do seu repositório remoto, execute:

1
git pull

Para fazer um “Merge” de um outro branch no seu branch ativo (ex: master), execute:

1
git merge <branch>

Nos dois casos o Git tenta fazer um auto-merge das modificações. Infelizmente não é sempre possível realizar o merge e acaba caindo em conflitos. Você é responsável por resolver esses conflitos manualmente, editando os arquivos mostrados pelo git. Após editar, você precisa marcá-los como prontos, executando:

1
git add <nomedoarquivo>

Antes de fazer um merge nas modificações, você pode pré-visualizar:

1
git diff <nome_branch_fonte> <nome_branch_alvo>

Tags

É recomendado criar tags para novas versões do seu software. Este é um conceito bem conhecido, que inclusive também existe no SVN. Para criar uma nova tag com o nome “1.1.0”, execute:

1
git tag 1.1.0 1d3t1j51rr

A string “1d3t1j51rr” representam os 10 primeiros caracteres do identificador único para um commit. Neste caso você esta atribuindo a tag ao commit com este id.

Você pode pegar o ID de um commit olhando no…

Logs

Na sua forma mais simples, você pode estudar um repositório Git utilizando

1
git log

Você pode adicionar vários parâmetros para fazer com que o log traga o que você precisa.

Por exemplo, para ver apenas commits de um certo autor:

1
git log --author=guiassemany

Para ver um Log bem compacto, onde cada commit é uma linha:

1
git log --pretty=oneline

Ou talvez você queira ver os dados das branchs, com nomes e tags:

1
git log --graph --oneline --decorate --all

Ver apenas arquivos que sofreram alterações:

1
git log --name-status

Estão são alguns dos possíveis parâmetros. Para explorar mais, execute :

1
git log --help

Sobrepor modificações locais

No caso de ter feito alguma besteira, o que com certeza não acontece, você pode desfazer suas modificações locais utilizando:

1
git checkout -- <nomedoarquivo>

Este comando sobrepõe suas mudanças com o que havia no ultimo commit registrado na HEAD.

Importante: modificações já adicionadas ao index bem como novos arquivos, serão mantidos.

Se você quiser desfazer todas as suas mudanças e commits locais, é só buscar a versão mais recente do repositório remoto e apontar para sua cópia local desse jeito:

1
2
git fetch origin
git reset --hard origin/master

Git Ignore

Este é um arquivo chamado ” .gitignore “, nele estão listados pastas e/ou arquivos que não devem ser levados ao seu repositório.

Exemplo(arquivo .gitignore do Laravel)

1
2
3
4
5
/vendor
/node_modules
Homestead.yaml
Homestead.json
.env

Neste arquivo ele indica que as pastas: vendor e node_modules não serão adicionadas ao repositório do git, bem como os arquivos Homestead.yaml, Homestead.json, .env .

Agora é só praticar os conceitos! Qualquer dúvida, basta deixar um comentário!