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çã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
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 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
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
● 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
● 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
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 master
2. > 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 pull
Recupera as alterações do servidor remoto.
THIAGOFILADELFO.COM.BR | BUILDERS CODES
Branch
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
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
thiago.filadelfo@gmail.com
@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/blog
Força a recuperação da versão mais recente do servidor remoto
Experts ?
http://training.github.com

Workshop sistema de versionamento de código - git

  • 1.
    Sistema de Versionamentode Código - GIT Thiago Ribeiro Filadelfo Encontre-me no:
  • 2.
    THIAGOFILADELFO.COM.BR | BUILDERSCODES 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 | BUILDERSCODES 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 emfazer 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 paraachar 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 controledo 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 umaferramenta 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ãomã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 Mostraa 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 asramificaçõ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 pullnã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 doGitHub ! 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
  • 19.
    thiago.filadelfo@gmail.com @trfiladelfo COMPANYNAME.COM | PRESENTATION Dúvidas? Perguntas ? Iniciada a sessão de discussão !! Obrigado
  • 20.
    Referências ● http://rogerdudler.github.io/git- guide/index.pt_BR.html ● http://github.com/blog Forçaa recuperação da versão mais recente do servidor remoto Experts ? http://training.github.com