Módulo 2
Versionamento de
código usando o Git
Gian Souza
MÓDULO 2 – Versionamento de código usando o Git
Conteúdo do módulo
• Stage
• Commits
• Logs
• Histórico
• Branches
• Merge
• Github
Gian Souza
Módulo 2 / Aula 1
Stage
Gian Souza
MÓDULO 2 – Aula 1 - Stage
Conteúdo a aula
• Comandos básicos para usar no
terminal
• Configuração inicial do Git
• Criando um repositório
• Adicionando e removendo arquivos
Gian Souza
MÓDULO 2 – Aula 1 - Stage
Comandos básicos para usar no
terminal
Descrição do comando Powershell Prompt de Comando
Listar o conteúdo da pasta atual ls dir
Limpar o conteúdo do terminal Ctrl + L ou cls cls
Navegar entre pastas cd ./pasta_destino cd ./pasta_destino
Criar uma nova pasta mkdir nome_pasta mkdir nome_pasta
Criar um novo arquivo echo “conteúdo” > [Link] echo “conteúdo” > [Link]
Remover pasta rm –r ./nome_pasta rmdir ./nome_pasta
Remover arquivo rm –r ./[Link] del [Link]
Gian Souza
Ver o conteúdo de um arquivo cat ./[Link] more ./[Link]
MÓDULO 2 – Aula 1 - Stage
Configuração inicial do Git
No terminal, executar os comandos
git config --global [Link] “Seu nome”
git config --global [Link] “Seu e-mail”
Gian Souza
MÓDULO 2 – Aula 1 - Stage
Criando um repositório Git
No terminal, dentro da pasta do projeto,
executar o comando
git init .
Gian Souza
MÓDULO 2 – Aula 1 - Stage
Adicionando e removendo
arquivos
Ao se trabalhar com o Git, não pasta incluir ou
deletar um conteúdo na pasta do projeto, é
necessário adicionar essa mudança ao stage.
Podemos ver os arquivos que estão sendo
considerados pelo Git, que estão no stage,
através do comando:
git status
Gian Souza
MÓDULO 2 – Aula 1 - Stage
Adicionando e removendo
arquivos
Para adicionar um arquivo ao stage do Git, dizer
ao Git que ele deve considerar o arquivo, execute
o comando:
git add nome_do_arquivo
E para remover o arquivo do stage:
git rm --cached nome_do_arquivo
Para adicionar todos os arquivos da pasta no
stage:
git add .
Gian Souza
Módulo 2 / Aula 2
Commits
Gian Souza
MÓDULO 2 – Aula 2 - Commits
Conteúdo a aula
• Salvando alterações
• Padrões para nomear commits
• Changelog
Gian Souza
MÓDULO 2 – Aula 2 - Commits
Salvando alterações
Para salvar as alterações que foram
adicionadas ao stage, usamos o
comando:
git commit – irá abrir um editor de
textos, dentro do terminal
Gian Souza
MÓDULO 2 – Aula 2 - Commits
Salvando alterações
Gian Souza
MÓDULO 2 – Aula 2 - Commits
Salvando alterações
Nesse editor vamos descrever a
alteração que será salva, ex: remoção de
arquivos: [Link] e [Link]
Para salvar o texto usamos: Ctrl + O
Para sair do editor: Ctrl + X
Gian Souza
MÓDULO 2 – Aula 2 - Commits
Salvando alterações
Podemos salvar as alteração, criar um
commit, sem ter que acessar esse editor,
fazemos isso através do comando:
git commit –m “minha mensagem”
Gian Souza
MÓDULO 2 – Aula 2 - Commits
Salvando alterações
Existe um caminho ainda mais curto,
onde podemos adicionar o arquivo ao
stage e já salvar a alteração, para isso
executamos o comando:
git commit –am “minha mensagem”
Gian Souza
MÓDULO 2 – Aula 2 - Commits
Padrões para nomear commits
Existe um padrão que podemos seguir, ao
escrever as mensagens para os commits.
Chore: usado para pequenas tarefas
git commit –m “chore: removendo [Link]”
Fix: correções
git commit –m “fix: correção no cálculo de médias”
Feat: inclusão de funcionalidade
git commit –m “feat: inclusão de função para calcular mediana”
Docs: atualização de documentação
git commit –m “atualizando o [Link]”
Gian Souza
MÓDULO 2 – Aula 2 - Commits
Changelog
Changelog é um arquivo onde
registramos todas as mudanças que
aconteceram em um projeto ao decorrer
do tempo.
Gian Souza
Módulo 2 / Aula 3
Logs
Gian Souza
MÓDULO 2 – Aula 3 - Logs
Conteúdo a aula
• Visualizando o registro de commits
realizados
• Variações na visualização de commits
Gian Souza
MÓDULO 2 – Aula 3 - Logs
Git log
Para visualizar o histórico de commits,
usamos o comando:
git log
Gian Souza
MÓDULO 2 – Aula 3 - Logs
Git log
O registro de um commits é composto
por:
Commit: identificador único do commit
Author: autor do commit
Date: data em que o commit foi feito
Mensagem informado no git commit
Gian Souza
MÓDULO 2 – Aula 3 - Logs
Git log – variações
Para visualizar os últimos dois commits:
git log –n 2*
(ou outro número)
Gian Souza
MÓDULO 2 – Aula 3 - Logs
Git log – variações
Para visualizar uma versão resumida do
registro de commits:
git log --oneline
Gian Souza
MÓDULO 2 – Aula 3 - Logs
Git log – variações
Podemos visualizar o registro de uma forma mais
detalhada solicitando o conteúdo da alteração,
através do comando:
git log --stat
Gian Souza
MÓDULO 2 – Aula 3 - Logs
Git log – variações
É possível combinar as variações, solicitamos o
conteúdo de dois registros com apenas o
identificador do commit:
git log --stat –n 2 --oneline
Gian Souza
Módulo 2 / Aula 4
Histórico
Gian Souza
MÓDULO 2 – Aula 4 - Histórico
Conteúdo a aula
• Desfazendo alterações
• Navegando entre commits
• Revertendo commits
Gian Souza
MÓDULO 2 – Aula 4 - Histórico
Desfazendo alterações
Podemos desfazer alterações em
arquivos que ainda não foram
adicionados ao stage, usando o
comando:
git checkout meu_arquivo
Gian Souza
MÓDULO 2 – Aula 4 - Histórico
Navegando entre commits
Com o Git podemos viajar no tempo, para
o passado, através do comando git
checkout, podemos voltar o conteúdo de
um repositório para o conteúdo de um
determinado commit
git checkout COMMIT_ID
Gian Souza
MÓDULO 2 – Aula 4 - Histórico
Revertendo commits
O Git nos dá a possibilidade de reverter
os commits, uma reversão significa que
outro commit será criado desfazendo a
alteração, se incluímos um arquivo no
commit que queremos reverter, outro
commit será criado removendo este
arquivo.
Fazemos isso através do comando:
git revert HEAD COMMIT_ID
Gian Souza
Módulo 2 / Aula 5
Branches
Gian Souza
MÓDULO 2 – Aula 5 - Branches
Conteúdo a aula
• Visão geral
• Listando as branches
• Criando uma branch
• Convenções para nomear uma branch
• Navegando entre branches
•
Gian Souza
Deletando uma branch
MÓDULO 2 – Aula 5 - Branches
Branches – Visão geral
Com o Git podemos criar versões
paralelas do nosso projeto, fazemos isso
no Git através da criação de branches,
que pode ser traduzido como galhos,
ramificação, então pensamos em nosso
repositório como uma árvore que pode
possuir diversos galhos.
Com essa funcionalidade podemos fazer
experimentos e trabalhar em equipe de
uma forma organizada.
Gian Souza
MÓDULO 2 – Aula 5 - Branches
Listando as branches do
repositório
Para visualizar todas as branchs que
fazem parte do repositório, execute o
comando:
git branch
Gian Souza
MÓDULO 2 – Aula 5 - Branches
Criando uma branch
Para criar uma branch, executamos o
comando:
git branch nova_branch
Com esse comando será criada uma
nova ramificação do projeto a partir do
estado da branch atual, com uma
variação do comando podemos indicar
uma branch de referência para a sua
criação:
git branch nova_branch branch_referencia
Gian Souza
MÓDULO 2 – Aula 5 - Branches
Convenções para nomear
branches
No dia a dia seguimos um padrão para a
nomenclatura de branches, o que nos
facilita a identificação de seu conteúdo
Gian Souza
MÓDULO 2 – Aula 5 - Branches
Convenções para nomear
branches
hotfix/nome_do_bug: usado para correções
rápidas, exemplo: o botão de adicionar ao
carrinho não funciona, a correção desse bug será
feita numa branch hotfix.
bugfix/nome_do_bug: correção de um bug que
não é um impeditivo ao usuário, não compromete
um fluxo do site.
feature/nome_da_funcionalidade: a adição de
uma funcionalidade será contida nessa nova
Gian Souza
branch, até que ela esteja desenvolvida e
validada, exemplo: feature/add_to_favorites.
MÓDULO 2 – Aula 5 - Branches
Navegando entre branches
Para trocar de branch usamos o
comando:
git checkout nome_branch
Podemos combinar a criação com a troca
de branch com o comando:
git checkout –b nome_branch
A branch nova será criada e nosso
repositório estará baseado nela.
Gian Souza
MÓDULO 2 – Aula 5 - Branches
Deletando uma branch
Para deletar uma branch, executamos o
comando:
git branch –D nome_branch
Gian Souza
Módulo 2 / Aula 6
Merge
Gian Souza
MÓDULO 2 – Aula 6 - Merge
Conteúdo a aula
• Mesclando branches
• Conflitos entre branches
Gian Souza
MÓDULO 2 – Aula 6 - Merge
Mesclando branches
Para mesclar duas branches, trazendo as
atualizações feitas em uma para a outra,
executamos o comando:
git merge nome_branch
Gian Souza
MÓDULO 2 – Aula 6 - Merge
Conflitos entre branches
Apesar do Git ser uma ótima ferramenta
para o trabalho em equipe, ele não pode
impedir que duas pessoas alterem o
mesmo arquivo.
Imagine que o arquivo [Link] foi
alterado na branch X e na branch Y, no
momento em que o merge for realizado o
Git criará um conflito, pois ele não sabe
qual versão considerar, esse conflito
Gian Souza
deverá ser resolvido de forma manual.
Módulo 2 / Aula 7
Github
Gian Souza
MÓDULO 2 – Aula 6 - Github
Conteúdo a aula
• Sobre o Github
• Criando um repositório – projeto já
existente
• Criando um repositório – novo projeto
• Enviando atualizações
• Recebendo atualizações
Gian Souza
MÓDULO 2 – Aula 7 - Github
Github
O Github é um site onde podemos
armazenar nossos repositórios Git, além
do armazenamento ele proporciona
algumas funcionalidades de comunidade,
como favoritar seus repositórios, seguir
usuários e reportar bugs.
Gian Souza
MÓDULO 2 – Aula 7 - Github
Clonando um projeto
Para baixarmos um projeto do Github, o
termo correto é clonar, estando na
página do repositório, clique em code e
escolha a opção HTTPS, copiando o
endereço:
Gian Souza
MÓDULO 2 – Aula 7 - Github
Clonando um projeto
Com o endereço do repositório copiado,
execute o comando:
git clone LINK –l pasta_destino*
* O parâmetro –l é opcional, sem ele será criada uma pasta com o nome do
repositório
Gian Souza
MÓDULO 2 – Aula 7 - Github
Enviando atualizações
Após fazer o commit de nossas
alterações, precisamos envia-las ao
repositório, que está armazenado no
Github, fazemos isso através do
comando:
git push
Gian Souza
MÓDULO 2 – Aula 7 - Github
Recebendo atualizações
Para manter nosso projeto atualizado
com o conteúdo remoto, o conteúdo
presente no Github, executamos o
comando:
git pull
Gian Souza
MÓDULO 2 – Aula 7 - Github
Enviando uma determinada branch
Para enviarmos o conteúdo de outra
branch, que não é a principal, primeiro
mudamos para ela, usando o git
checkout e depois executamos o git push
com um parâmetro:
git push origin nome_da_branch
Gian Souza