Sistema de Versionamento de Código - GIT
Thiago Ribeiro Filadelfo
Encontre-me no:
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.
THIAGOFILADELFO.COM.BR | BUILDERS CODES
Agenda
1. Motivação2. Introdução ao Controle de Versão3. Conceitos de Git4. Mão na massa !? Hand-on5. Referências para estudos6. Perguntas
Bateu aquela dúvida ? Enroscou [email protected]
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
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
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
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
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
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
Alinhados ? Então mão na massa !!
● Criar um projetomkdir workshop_git
cd workshop_git
● Iniciar o projeto com o git (shell ?) 1. > git init2. > touch .gitignore3. > git status4. > git add .5. > git commit -m "texto"6. > git log
THIAGOFILADELFO.COM.BR | BUILDERS CODES
Aprofundando os conhecimentos (Git)
● git initInicializa a criação de um repositório
● touch .gitignoreCria 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
● git statusMostra 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
● git commit -m ¨texto¨Consolida as alterações dos arquivos adicionados.
● git logExibe todos o histórico de consolidações.
THIAGOFILADELFO.COM.BR | BUILDERS CODES
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
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 master2. > git merge <branch>
THIAGOFILADELFO.COM.BR | BUILDERS CODES
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
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 pullRecupera as alterações do servidor remoto.
THIAGOFILADELFO.COM.BR | BUILDERS CODES
Branch
O comando pull não funcionou e agora?
● git fetch originRemove todas as alterações locais.
● git reset --hard origin/masterForç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
Não gostei do GitHub ! Tem outro ?
● GitHubBeneficios:
- Quantidades ilimitadas de projetos públicos e colaboradores para esse projeto
Desvantagens
- Projetos privados somente na
conta paga.
● BitBucketBeneficios:
- Quantidades ilimitadas de projetos privados e públicos.
Desvantagens
- Para os projetos privados número
de colaboradores limitado (5)
THIAGOFILADELFO.COM.BR | BUILDERS CODES
[email protected]@trfiladelfo
COMPANYNAME.COM | PRESENTATION
Dúvidas ?
Perguntas ?
Iniciada a sessão de discussão !!
Obrigado
Referências
● http://rogerdudler.github.io/git-guide/index.pt_BR.html
● http://github.com/blogForça a recuperação da versão mais recente do servidor remoto
Experts ?http://training.github.com