workshop sistema de versionamento de código - git

20
Sistema de Versionamento de Código - GIT Thiago Ribeiro Filadelfo Encontre-me no:

Upload: thiago-filadelfo

Post on 09-Jul-2015

277 views

Category:

Documents


4 download

TRANSCRIPT

Page 2: Workshop  sistema de versionamento de código - git

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.

Page 3: Workshop  sistema de versionamento de código - git

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

Page 4: Workshop  sistema de versionamento de código - git

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

Page 5: Workshop  sistema de versionamento de código - git

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

Page 6: Workshop  sistema de versionamento de código - git

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

Page 7: Workshop  sistema de versionamento de código - git

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

Page 8: Workshop  sistema de versionamento de código - git

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

Page 9: Workshop  sistema de versionamento de código - git

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

Page 10: Workshop  sistema de versionamento de código - git

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

Page 11: Workshop  sistema de versionamento de código - git

● 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

Page 12: Workshop  sistema de versionamento de código - git

● 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

Page 13: Workshop  sistema de versionamento de código - git

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

Page 14: Workshop  sistema de versionamento de código - git

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

Page 15: Workshop  sistema de versionamento de código - git

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

Page 16: Workshop  sistema de versionamento de código - git

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

Page 17: Workshop  sistema de versionamento de código - git

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

Page 18: Workshop  sistema de versionamento de código - git

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

Page 19: Workshop  sistema de versionamento de código - git

[email protected]@trfiladelfo

COMPANYNAME.COM | PRESENTATION

Dúvidas ?

Perguntas ?

Iniciada a sessão de discussão !!

Obrigado

Page 20: Workshop  sistema de versionamento de código - git

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