Controle de Versão com Git
Prof. Robson Locatelli
Igor Ramon Fernandes Diniz
robson.locatelli@ufersa.edu.br
igordiniz.ufersa@gmail.com
AGENDA 2
» Trabalhando com
Remotos
» Fluxo de trabalho com
Branches
» Considerações finais
» Introdução
» Conceitos Iniciais
» O Git
» Instalação
» Primeiros Passos com Git
INTRODUÇÃO
3
Contextualização
Contextualização 4
Contextualização 5
Contextualização 6
INTRODUÇÃO
7
Controle de Versão
CONTROLE DE VERSÃO
» O que é controle de versão, e por que você deve se
importar?
» Registrar as mudanças feitas em um arquivo ou
um conjunto de arquivos ao longo do tempo de
forma que você possa recuperar versões
específicas.
8
O GIT
9
HISTÓRIA
HISTÓRIA
» Linus Torvalds , 2005
» Kernel Linux X Bitkeeper
» Relação “quebrou em pedaços”
» Git
» Uma gíria em inglês britânico para cabeça dura
» É o software de controle de versão mais
utilizado no mundo.
10
VANTAGENS
» Velocidade;
» Design Simples;
» Suporte robusto a desenvolvimento não linear
(criando branches);
» Totalmente distribuído;
» Capaz de lidar com grandes projetos;
11
DESVANTAGEM
» Complexidade
12
INSTALAÇÃO
13
INSTALANDO E CONFIGURANDO O GIT
» sudo apt install git
14
LinuxWindows
CONFIGURAÇÃO INICIAL
Configurar seu nome
git config --global user.name "Fulano de Tal"
Configurar seu e-mail
git config --global user.email fulanodetal@exemplo.br
15
AJUDA
Pedindo ajuda:
git help <verb>
git <verb> --help
man git-<verb>
16
PRIMEIROS
PASSOS
17
PRIMEIROS PASSOS NO GIT
PRIMEIROS PASSO NO GIT
» Como funciona
» Inicializar um Projeto
» Gravar alterações no repositório
» Ver o histórico
» Desfazer mudanças
» Alias
18
Como funciona?
19
OS TRÊS ESTADOS 20
» O workflow básico do Git pode ser descrito assim:
1. Você modifica arquivos no seu diretório de trabalho.
2. Você seleciona os arquivos, adicionando para sua
área de preparação.
3. Você faz um commit, que leva os arquivos como eles
estão na sua área de preparação e os armazena
permanentemente no seu diretório Git.
21
INICIALIZAR PROJETO LOCAL
» Criar uma pasta na área de trabalho;
» Inicializar: git init ;
» Crie um arquivo de extensão txt com algum texto;
» Verificar situação atual: git status ;
22
GRAVAR ALTERAÇÕES NO REPOSITÓRIO
» Adicionar na Staged área: git add <nomearquivo> ;
» Adicionar no repositório: git commit -m “Alteração ...”;
23
VER O HISTÓRICO
» Visualizar registro: git log ;
» Visualizar os dois últimos commits: git log -n 2 ;
» Resumo conciso: git log --oneline ;
» Resumo dos arquivos alterados: git log --stat ;
24
DESFAZENDO MUDANÇAS 25
DESFAZENDO MUDANÇAS 26
DESFAZENDO MUDANÇAS
» Não rastreadas
» git checkout -- <arquivo>
27
DESFAZENDO MUDANÇAS
» Não rastreadas
» git checkout -- <arquivo>
28
DESFAZENDO MUDANÇAS
» Já rastreadas
» Retirar da stage área
git reset -- <arquivo>
» Retirar da stage área e
descartar mudanças
git reset -- hard
29
DESFAZENDO MUDANÇAS
» Já comitadas
» git revert --no-edit
<código>
» git revert -- hard
<código>
30
ALIAS
Criando atalhos:
git config --global alias.co commit
git config --global alias.ckt chekout
git config --global alias.br branch
31
TRABALHANDO
COM REMOTOS
32
TRABALHANDO COM REMOTOS
DESFAZENDO MUDANÇAS
» Criar conta no Github
» Criar repositório
» Configurar máquina
» Subir alterações
» Atualizar projeto local
» Contribuindo em projetos open source
33
TRABALHANDO COM REMOTOS NO GIT 34
» Tom Preston-Werner e Chris Waanstrath e Pj
Hyett, 2008.
» “Grit”
» Hub para programadores.
» 19 de outubro de 2007, às 22:24 Chris faz o
primeiro commit.
» Versão Beta: 3 meses
» Objetivo de simplificar o compartilhamento de
projetos.
35TRABALHANDO COM REMOTOS NO GIT
36TRABALHANDO COM REMOTOS NO GIT
» Criar conta no Github
» Criar repositório
» Configurar repositório remoto: git remote add origin
<URL do projeto>
» Empurrar arquivos: git push -u origin master
» Puxar arquivos : git pull
37CONTRIBUINDO EM PROJETOS OPEN SOURCE
38CONTRIBUINDO EM PROJETOS OPEN SOURCE
» Entra no perfil do colega do lado
» Entra no repositório criado no minicurso
» Realize um fork do projeto
» Crie uma pasta no computador
» Abrir o bash na pasta
» Digite: git clone <URL do projeto forkado>
» Faça suas contribuições
» add, commit , push.
» Não colaborador
39CONTRIBUINDO EM PROJETOS OPEN SOURCE
» Pull request
40TRABALHANDO COM REMOTOS NO GIT
» Adicionar colaborador
FLUXO DE TRABALHO
COM BRANCHES
41
42FLUXO DE TRABALHO COM BRANCHS
43FLUXO DE TRABALHO COM BRANCHES
44
» Branch: Fluxo independe de desenvolvimento. Assim
podemos commitar novas versões do código sem afetar
os outras branches.
FLUXO DE TRABALHO COM BRANCHES
45FLUXO DE TRABALHO COM BRANCHES
» Visualizar branchs do projeto: git branch
» Visualizar branchs vinculadas ao commit: git branch -v
» Criar uma branch: git branch nomeBranch
46FLUXO DE TRABALHO COM BRANCHES
» Trocar de branch: git checkout nomeBranch
» Deletar branch: git branch -d nomeBranch
» Delatar branch com commits: git branch -D nomeBranch
47FLUXO DE TRABALHO COM BRANCHES
» Verificar branchs não mescladas: git branch --no-merged
» Mesclar branchs: git merge -m “mensagem”
QUIZ
Em qual dos três estados se encontra o arquivo.txt?
48
QUIZ
Você saberia dizer a diferença do git status para o
git log?
49
QUIZ
Quais os três estados que os arquivos podem ser
visualizados pelo git?
50
QUIZ
Em que ocasião se usa git reset e em que ocasião se
usa git revert?
51
CURIOSIDADES
52
PROJETOS QUE VOCÊ PODE CONTRIBUIR!
» DEVELOPETS (HTML, CSS, JS): https://github.com/vspedr/developets
» SOLARSYSTEM (HTML, CSS, JS): https://github.com/GYOVANNE/SolarSystem
» LISTA MARAVILHOSA OPEN SOURCE (*):
https://github.com/camilatigre/listamaravilhosaopensource
53
LIVROS 54
TUTORIAIS INTERATIVOS - Git - School 55
TUTORIAIS INTERATIVOS - Learning Git branch 56
Any questions?
57THANKS!
“Lembre-se que as pessoas podem tirar
tudo de você, menos o seu conhecimento”
Albert Einstein
REFERÊNCIAS
» https://git-scm.com/
» http://try.github.io/
» https://pt.wikipedia.org/wiki/Linus_Torvalds
» https://pontogpp.com.br/blog/tecnico/introduzindo-o-git
» https://github.github.com/training-kit/downloads/pt_BR/github-git-cheat-sheet/
» Aquiles A.; Ferreira R. Controlando versões com Git e Github. Casa do Código. Série Caelum.
» Imagens e Ícones: https://pixabay.com/pt/
» Tutorais interativos:
» http://git-school.github.io/visualizing-git/
» https://learngitbranching.js.org/
58
Controle de Versão com Git
Prof. Robson Locatelli
Igor Ramon Fernandes Diniz
robson.locatelli@ufersa.edu.br
igordiniz.ufersa@gmail.com

Controle de versão com git