O documento discute o sistema de versionamento Git, introduzindo seus conceitos e funcionalidades principais, como controle de versão, ramificações e recuperação de versões anteriores. O documento também apresenta ferramentas como GitHub e mostra passo a passo como inicializar um repositório Git local e publicá-lo na nuvem.
2. THIAGOFILADELFO.COM.BR | BUILDERS CODES
Sobre
Thiago Ribeiro Filadelfo
Formado em Ciência da Computação pela Faculdade da
Fundação Instituto Tecnológico de Osasco, pós-graduado
pela Escola Politécnica - USP e FIAP.
Desde 2006 atuando na área de desenvolvimento de software,
com experiências em web, desktop, mobile e outras
tecnologias.
Atualmente focado no desenvolvimento de aplicações para
Android e iOS.
3. THIAGOFILADELFO.COM.BR | BUILDERS CODES
Agenda
1. Motivação
2. Introdução ao Controle de Versão
3. Conceitos de Git
4. Mão na massa !? Hand-on
5. Referências para estudos
6. Perguntas
Bateu aquela dúvida ? Enroscou ?
thiago.filadelfo@gmail.com
Lembrente:
Deixar baixando o instalador do GitHub.
http://github.com, no tópico: The power
of GitHub on your desktop abaixo disto
tem um botão de dowload
4. Já pensou em fazer um zip do seu projeto ?
- Arquivos zips muito grande tendem a corromperem;
- Muitos arquivos com tags indicando qual é a versão (-V1) ou
datados (-04072013);
- Dificil de armazenar e migrar;
THIAGOFILADELFO.COM.BR | BUILDERS CODES
Motivação
5. Gastou horas para achar o maldito bug?
- Quando não controlamos os documentos, não sabemos quais
alterações foram feitas.
- Gasta-se muito tempo para localizar o arquivo que retorne ou
que solucione o bug;
THIAGOFILADELFO.COM.BR | BUILDERS CODES
6. Perdeu o controle do change log do projeto ?
- Impossível afirmar que estamos evoluindo no projeto;
- Dificuldade de manter informado os envolvidos as novidades
daquele build ou release;
THIAGOFILADELFO.COM.BR | BUILDERS CODES
7. Falaremos de uma ferramenta que
contempla muitas destas funcionalidades
Gestão de controle disciplina da Ciência da Computação e Engenharia de software
com finalidades de gerir diferentes versões de qualquer documento.
Sistema de controle de versão ampliamente utilizado em fábricas e softwares, com o
propósito de aproximar os envolvidos, gerir versões e produzir aplicativos executável
estáveis.
THIAGOFILADELFO.COM.BR | BUILDERS CODES
Controle de versão
8. Introdução ao Git / GitHub
● Conceituação
○ Git é um sistema de versionamento de documento;
○ GitHub é um serviço (gratuito e pago) cloud do git;
○ Existem uma série de vantagens de seu uso e a comunidade opensource
contribuiu para que se tornasse popular;
● Histórico
○ CVS, SVN
○ Mercurial, Sourceface (Microsoft)
○ Git
THIAGOFILADELFO.COM.BR | BUILDERS CODES
9. Alinhados ? Então mão na massa !!
● Criar um projeto
mkdir workshop_git
cd workshop_git
● Iniciar o projeto com o git (shell ?)
1. > git init
2. > touch .gitignore
3. > git status
4. > git add .
5. > git commit -m "texto"
6. > git log
THIAGOFILADELFO.COM.BR | BUILDERS CODES
10. Aprofundando os conhecimentos (Git)
● git init
Inicializa a criação de um repositório
● touch .gitignore
Cria um arquivo de nome .gitignore;
Esse arquivo são usados para indicar ao git quais pasta e/ou arquivos que não
serão controlados.
THIAGOFILADELFO.COM.BR | BUILDERS CODES
11. ● git status
Mostra a situação (estados) atual dos arquivos controlados.
● git add . ou git add <file>
Adiciona os arquivos para compor o release de alterações.
THIAGOFILADELFO.COM.BR | BUILDERS CODES
12. ● git commit -m ¨texto¨
Consolida as alterações dos arquivos adicionados.
● git log
Exibe todos o histórico de consolidações.
THIAGOFILADELFO.COM.BR | BUILDERS CODES
13. Fácil não ? Complicando um pouco !!
● Quero fazer alterações e deixar uma
cópia executando, como fazer ?
Ramificadores: são utilizados para desenvolver funcionalidades isoladas umas
das outras. O branch(ramificador) master é o branch "padrão" quando você cria
um repositório.
● git checkout -b <nome>
Cria um branch com um determinado nome.
Geralmente utilizamos a funcionalidade pela qual serão implementados as
alterações.
THIAGOFILADELFO.COM.BR | BUILDERS CODES
14. Mexendo com as ramificações
● git checkout <nome>
Seleciona um branch determinado
● git branch -d <nome>
Remove um determinado branch.
● git merge <nome>
Junta um branch ao outro branch.
1. > git checkout master
2. > git merge <branch>
THIAGOFILADELFO.COM.BR | BUILDERS CODES
15. Fiz besteira ? Eai, como volto?
● git checkout --<nome_arquivo>
Restaura para a última alteração commitada realizada.
1. > git checkout --teste.java
● git diff <branch_1> <branch_2> ou
git diff <file_1> <file_2>
Realiza uma comparação de modificação dos arquivos ou dos branchs
THIAGOFILADELFO.COM.BR | BUILDERS CODES
16. Tudo bem ! Mas como faço um
projeto ficar no cloud?
● git remote add origin <url>
Adiciona a url de servidor remoto do git (GitHub /Bitbucket).
● git push origin master
Envia as alterações realizadas para o servidor, podendo ser o master ou outro
branch.
● git pull
Recupera as alterações do servidor remoto.
THIAGOFILADELFO.COM.BR | BUILDERS CODES
Branch
17. O comando pull não funcionou e
agora?
● git fetch origin
Remove todas as alterações locais.
● git reset --hard origin/master
Força a recuperação da versão mais recente do servidor remoto
Pode usar sempre ?
Pessoalmente não é aconselhável !!! Pois pode perder o propósito do controle de
versão.
THIAGOFILADELFO.COM.BR | BUILDERS CODES
18. Não gostei do GitHub ! Tem outro ?
● GitHub
Beneficios:
- Quantidades ilimitadas de
projetos públicos e colaboradores
para esse projeto
Desvantagens
- Projetos privados somente na
conta paga.
● BitBucket
Beneficios:
- Quantidades ilimitadas de
projetos privados e públicos.
Desvantagens
- Para os projetos privados número
de colaboradores limitado (5)
THIAGOFILADELFO.COM.BR | BUILDERS CODES