SlideShare uma empresa Scribd logo
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
sistema de
controle de
versão
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
cronograma
o que é?
como era antes?
qual a finalidade?
como funciona?
história e criação
quais as vantagens ?
vamos à prática!
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
O QUE É GIT ?
SISTEMA DE CONTROLE DE
VERSÃO DISTRIBUÍDO
usado principalmente no desenvolvimento de software, mas
pode ser usado para registrar o histórico de edições de
qualquer tipo de arquivo
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
COMO ERA ANTES DO GIT
• gritaria para fechar arquivo
• trabalho perdido / apagado, salvo por cima
• sem compatibilização
• sem histórico de alterações
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
COMO ERA ANTES DO GIT
Em 2002, o projeto do kernel do Linux começou a usar
um sistema DVC (controle versão distribuído)
proprietário chamado BitKeeper.
Patch é um programa de computador criado para atualizar ou corrigir um software de forma a
melhorar sua usabilidade ou performance
BitKeeper é um sistema de controle de versão distribuído de códigos fonte
Durante a maior parte do período de manutenção do kernel do Linux,
as mudanças no software eram repassadas como patches e arquivos
compactados.
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
COMO É O
CONTROLE DE
VERSÃO
gerencia e registra todas as
alterações feitas em um
diretório
permite recuperar versões
específicas quando houver essa
necessidade
não dependente de acesso a
uma rede ou a um servidor
central
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
repositório
quando a estação de trabalho
quer modificar algo no
software, ela vai até o
repositório, busca a versão
mais atualizada, traz para a
estação, altera, edita,
modifica e manda de volta
estação 1 estação 2 estação 3
programadores
Servidor Central
/ Dados Projeto
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
repositório
esta nova versão é mesclada
com tudo com o que já existe
e que veio de outras estações,
formando assim um novo
software completo com uma
parte vinda de cada estação
estação 1 estação 2 estação 3
versão de
trabalho
versão de
trabalho
versão de
trabalho
Servidor Central
/ Dados Projeto
versão 1
versão 2
versão 3
versão n
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
SISTEMA
DISTRIBUÍDO
COMO FUNCIONA?
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
SISTEMA DISTRIBUÍDO
A CÓPIA DE CADA VERSÃO QUE ESTA SENDO
DESENVOLVIDA OU QUE FOI DESENVOLVIDA ESTARÁ EM
TODAS AS ESTAÇÕES DE TRABALHO
QUE ESTIVEREM TRABALHANDO NAQUELE SISTEMA E
NÃO SÓ NO REPOSITÓRIO
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
repositório
estação 1 estação 2 estação 3
versão de
trabalho
versão de
trabalho
versão de
trabalho
Servidor Central
/ Dados Projeto
versão 1
versão 2
versão 3
versão n
v1
v2
v3
vn
v1
v2
v3
vn
v1
v2
v3
vn
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
como funciona o
versionamento?
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
um histórico de commits pequeno e simples
COMMIT branch padrão
master
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
você criará um branch novo para trabalhar na tarefa (issue) #53
BRANCH branch padrão
master
branch criado
iss53
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
ao criar novos commits, o branch iss53 avançará, pois você fez
o checkout dele (isto é, seu HEAD está apontando para ele)
COMMIT branch padrão
master
branch criado
iss53
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
o diretório do seu projeto está exatamente do jeito que estava
antes de você começar a trabalhar na tarefa #53 (C4)
agora você tem uma correção para fazer, então criaremos um
branch para a correção (hotfix) para trabalhar até a conclusão
É importante lembrar desse ponto:
Git restabelece seu diretório de
trabalho para ficar igual ao snapshot
do commit que o branch que você
criou aponta. Ele adiciona, remove, e
modifica arquivos automaticamente
para garantir que sua cópia é o que o
branch parecia no seu último
commit nele
BRANCH branch padrão
master
branch criado
iss53
branch criado
hotfix
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
depois de sua correção ser enviada, a branch hotfix poderá
ser apagada
o branch master aponta para o mesmo local.
crie o próximo commit (C5)
BRANCH branch padrão
master
branch criado
iss53
branch apagado
hotfix
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
quando você tenta fazer o merge de um commit com outro
que pode ser alcançado seguindo o histórico do primeiro, Git
simplifica as coisas movendo o ponteiro adiante porque não
existe modificações divergente para fazer o merge — isso é
chamado de "fast forward"
COMMIT branch padrão
master
branch criado
iss53
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
mesclando versões
merge
rebase
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
MERGE branch padrão
master
branch criado
iss53
em vez de simplesmente avançar o ponteiro
do branch adiante, Git cria um novo
snapshot que resulta do merge de três vias
automaticamente cria um novo commit que aponta
para ele isso é conhecido como um merge de
commits e é especial pois tem mais de um pai
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
C0 C1 C2 C4 C3’
C3
master
experiment
Com o comando REBASE, você pode pegar todas as mudanças que
foram commitadas em um branch e replicá-las em outro.
Ele vai ao ancestral comum dos dois branches (no que você está e no
qual será feito o rebase), pega a DIFERENÇA (diff) DE CADA COMMIT do
branch que você está, salva elas em um arquivo temporário, restaura o
brach atual para o mesmo commit do branch que está sendo feito o
rebase e, finalmente, aplica uma mudança de cada vez.
REBASE
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
C0 C1 C2 C4 C3’
master
experiment
MERGE FAST FORWARD
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
C0 C1 C2 C5 C6
server
master
C3 C4 C10
client
C8 C9
VÁRIAS RAMIFICAÇÕES (BRANCHES)
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
C0 C1 C2 C5 C6
server
master
C3 C4 C10
client
C8 C9
C9’
Faça o checkout do branch client, compara as
alterações do ancestral em comum aos
branches client e server e promova para o master
C8’
REBASING CLIENT
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
C0 C1 C2 C5 C6
server
C3 C4 C10
client
C9’C8’
master
FAST FORWARD
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
C0 C1 C2 C5 C6
C3 C4 C10
client
C9’C8’
master
C4’ C10’
server
REBASE SERVER
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
C0 C1 C2 C5 C6 C9’C8’ C4’ C10’
master
APAGANDO OS BRANCHES SEM USO
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
MESCLAGEM DE VERSÕES
VANTAGENS DESVANTAGENS
MERGE operação não destrutiva
commit extra
histórico poluído
REBRASE
histórico linear
evita commits vazios
perde a ordem
cronológica
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
história e criação
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
Desenvolvido por Linus Tovalds
• engenheiro de software, nascido na Finlândia e naturalizado estado-
unidense em 2010.
• o relacionamento entre a comunidade que desenvolvia o kernel e a
empresa que desenvolvia comercialmente o BitKeeper se desfez, e o
status de isento-de-pagamento da ferramenta foi revogado.
• a comunidade de desenvolvedores do LINUX (em particular Linus
Torvalds, seu criador) a desenvolver sua própria ferramenta baseada
nas lições que eles aprenderam ao usar o BitKeeper
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
LINUS
TORVALDScriador do LINUX e GIT
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
QUAL ERA A INTENÇÃO DE LINUS ?
• Linus queria um sistema para o desenvolvimento do kernel LINUX, porém o
git foi muito além disso e assim então adotado por muitos outros projetos.
• Alguns dos objetivos do novo sistema eram:
• Velocidade
• Design simples
• Suporte robusto a desenvolvimento não linear (milhares de branches paralelos)
• Totalmente distribuído
• Capaz de lidar eficientemente com grandes projetos (velocidade e volume de dados)
O Git evoluiu e é um sistema fácil de usar e que mantém as qualidades iniciais
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
VANTAGENS DE TRABALHAR NUM PROJETO EM GIT
• permite que várias pessoas possam trabalhar simultaneamente em
um mesmo projeto, sem que haja conflitos ou bagunça neste mesmo
projeto
• permite uma velocidade muito maior de trabalho, por não precisar
acessar o diretório com frequência
• se trabalhar com sistema de rede, por exemplo, ele se torna muito
mais rápido que na nuvem
• quando uma estação baixa o projeto, ela estará atualizada, sem
nenhum erro ou bug
POR ISSO PODEMOS CHAMAR CONTROLE DE VERSÃO DISTRIBUÍDO
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
Agora chegou a hora de aprender a criar seu
próprio repositório e interagir com ele
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
Já ouviu falar do GitHub? Não?
•Resumidamente, o GitHub é um site onde você pode
ARMAZENAR SEUS REPOSITÓRIOS GIT
•é para controle de versão e colaboração. Permite
que você e outras pessoas trabalhem juntas em
projetos de qualquer lugar do mundo
péra...mas Git, Github não é a mesma coisa?
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
NÃO!
apesar de trabalharem juntos, não são a mesma coisa !
REDE SOCIAL!
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
Baixando o
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
Download windows, mac os e linux
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
Cadastro no
Github
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
Criando conta
no GitHub
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
CRIAR
REPOSITÓRIO
Clique em New
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
CRIAR
REPOSITÓRIO
Agora basta colocar o
nome e descrição do
repositório que você
está criando e clicar
em
Create repository
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
CRIAR
REPOSITÓRIO
O repositório foi
criado, mas ainda está
vazio.
Em seguida copiamos
o link do repositório
que vamos usar lá na
frente!
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
com as ferramentas
prontas vamos
CRIAR E SUBIR
nosso arquivo html
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
Procurar e abrir
o Git bash
é um prompt de comando
do Git
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
Vá até a pasta onde
criou o repositório
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
clonando
repositório
Em seguida, vamos clonar
o repositório Recode do
github para nosso
computador, através do
link: comando
git clone <link>
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
Link
repositório
https://github.com/alansouz4/GitNaRecodePro.githttps://github.com/alansouz4/GitNaRecodePro.git
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
Em seguida entre na pasta Recode que já esta no
seu computador
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
Agora configuramos email e nome criados no github
git config --global user.email”<seu email>”
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
Para name usar o comando
git config --global user.name”nome usuário
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
agora abra o Visual Studio e
crie um arquivo com nome
projeto.html
dentro da pasta Recode
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
Volte no bash
para subir o
html
git add projeto.html
ou seja, ficará em uma área aguardando ser enviado ao
repositório
git commit –m “arquivo html”
dizendo o que você esta fazendo
git push origin master
subindo para o github
Origin: minha máquina.
Master: repositório github.
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
faça o login no repositório
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
deve ficar
assim
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
Caso não seja
enviado, siga
esses passos:
digite:
git pull
Em seguida digite novamente o
comando:
git push origin master
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
Volte à conta
do GitHub,
atualize a
página e seu
arquivo estará
no repositório
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
Outros comandos utilizados no Git
git init Iniciar um repositório repositório
git config –list Verificar as configurações locais
git config --global user.name Encontrar o nome de usuário
git config --global user.email Encontrar o email
git config --global user.name”nome usuário” Alterar as configurações locais (nome de usuário)
git config --global user.email”email do usuário” Alterar o email
git config --global core.editor vim Alterar o editor de textos usados no commit e diffs
git tag Lista as versões do repositório
git checkout Resgatar versão antiga
LISTA DE COMANDOS
https://woliveiras.com.br/posts/comandos-mais-utilizados-no-git/
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
“Baixar” um repositório
git clone link
Exemplo: se eu quisesse baixar o repositório deste blog
git clone git@github.com:woliveiras/woliveiras.github.io.git
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
Para saber mais de git acesse: git-scm.com
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
alguns links
• SourceTree
• GitHub Desktop
• TortoiseGit
• SmartGit
• GitKraken
• GitEye
• gitg
• Fork
• Pocket Git (mobile)
RecodePro–Grupo6:AlanAugusto,GianePessoa,GuilhermeBatista,LucasGomes,PriscilaTavares
FIM

Mais conteúdo relacionado

PDF
Git Overview: Grupo RBS
PDF
Gnu/Linux - Workshop EACH-USP
PDF
SISTEMAS OPERACIONAIS
PDF
Software livre, simples assim.
PPTX
Softwares e S.O. Livres na busca pela inovacao tecnologica - Felipe Alison
PDF
Primeiros Passos no Linux - Principais Conceitos e Termos
PDF
Invasao kernel.org
PDF
Fedora QA
Git Overview: Grupo RBS
Gnu/Linux - Workshop EACH-USP
SISTEMAS OPERACIONAIS
Software livre, simples assim.
Softwares e S.O. Livres na busca pela inovacao tecnologica - Felipe Alison
Primeiros Passos no Linux - Principais Conceitos e Termos
Invasao kernel.org
Fedora QA

Semelhante a Apresentação Git - Recode Pro Grupo 6 (20)

PDF
Controle de versão com Git
PDF
Introdução ao Git - fs2w - GrupySP
PDF
GIT Básico
PPTX
Git - Sistema Descentralizado de Controle de Versões
PPTX
Git- O minimo que você deve saber para trabalhar com ele.pptx
PDF
Controle de versões distribuído para projetos de software
PDF
Git basico
PDF
Iptables layer7
PPTX
Git + Github
PDF
Aula de git luiza code - Slides git e github
PDF
Git/GitHub
PPTX
Git e Sistemas de Controle de Versão
PDF
Git ao GitHub
PPTX
Git & GitHub for beginners
PDF
Controle de Versão Distribuído com Git básico
KEY
Go git - Presentation @Navita
PDF
PT-BR - Lauching a Public PaaS on Open Source Getup & OpenShift Origin - FISL14
PDF
workshopgitparainiciantes1-190901224755.pdf
Controle de versão com Git
Introdução ao Git - fs2w - GrupySP
GIT Básico
Git - Sistema Descentralizado de Controle de Versões
Git- O minimo que você deve saber para trabalhar com ele.pptx
Controle de versões distribuído para projetos de software
Git basico
Iptables layer7
Git + Github
Aula de git luiza code - Slides git e github
Git/GitHub
Git e Sistemas de Controle de Versão
Git ao GitHub
Git & GitHub for beginners
Controle de Versão Distribuído com Git básico
Go git - Presentation @Navita
PT-BR - Lauching a Public PaaS on Open Source Getup & OpenShift Origin - FISL14
workshopgitparainiciantes1-190901224755.pdf
Anúncio

Último (12)

PPT
06_slide de Arquitetura_de_Software .ppt
PDF
SLIDES - AULA 1 - APRESENTAÇÃO - Material de Cleyton Souza - IFPB
PDF
SLIDES - AULA 5 - HERANÇA - Material de Cleyton Souza - IFPB
PPT
03_slide de Gerenciamento de Projetos .ppt
PDF
SLIDES - AULA 7 - SWING - Cleyton Souza - IFPB
PDF
SLIDES - AULA 2 - INTRODUÇÃO - Material de Cleyton Souza - IFPB
PPT
05_slide especificacao de sistemas de software e a uml UML.ppt
PPT
10_ slides de Reuso sommerville cap 10.ppt
PPT
00_Apresentacao sobre o livro do sommerville_ES.ppt
PPT
07_slides de Estilos_Arquiteturais sommerville.ppt
PPT
09_Evolucao de software e_Refatoracao.ppt
PDF
SLIDES - AULA 3 - CLASSES E OBJETOS EM JAVA - Material de Cleyton Souza - IFPB
06_slide de Arquitetura_de_Software .ppt
SLIDES - AULA 1 - APRESENTAÇÃO - Material de Cleyton Souza - IFPB
SLIDES - AULA 5 - HERANÇA - Material de Cleyton Souza - IFPB
03_slide de Gerenciamento de Projetos .ppt
SLIDES - AULA 7 - SWING - Cleyton Souza - IFPB
SLIDES - AULA 2 - INTRODUÇÃO - Material de Cleyton Souza - IFPB
05_slide especificacao de sistemas de software e a uml UML.ppt
10_ slides de Reuso sommerville cap 10.ppt
00_Apresentacao sobre o livro do sommerville_ES.ppt
07_slides de Estilos_Arquiteturais sommerville.ppt
09_Evolucao de software e_Refatoracao.ppt
SLIDES - AULA 3 - CLASSES E OBJETOS EM JAVA - Material de Cleyton Souza - IFPB
Anúncio

Apresentação Git - Recode Pro Grupo 6