Controle deversionamento com              Raphael Cruzeiro - 2012
Git?Git é um software de controle de versionamento criadopor Linus Torvalds para ser utilizado nodesenvolvimento do kernel...
Git?O grande diferencial do Git é a velocidade e a               flexibilidade.
Controle de versionamento         distribuidoEm um sistema de controle de versionamentodistribuido cada desenvolvedor poss...
Controle de versionamento         distribuidoIsto não apenas torna so dados mais seguros quanto auma eventual perda mas co...
Controle de versionamento        distribuido
3 estágiosO Git possui 3 estágios principais para os arquivos doseu projeto: commited, modified e staged. Commitedsignific...
3 estágios
Começando a usar                 GitSalvando sua identidade:$ git config --global user.name “Darth Vader”$ git config --gl...
Começando a usar                 GitSetando um par de chaves para autenticação:$ ssh-keygen -t rsa # Cria o par de chaves$...
Criando um                  repositórioPara inicializar um repositório Git basta ir na pasta doprojeto e rodar o seguinte ...
Adicionando                 arquivosPara adicionar os arquivos utilizamos o comando add:$ git add *.c$ git add README
Adicionando                 arquivosOu para adicionar todos os arquivos:$ git add .
Ooopss, comitei o            que não deviaPara remover um arquivo basta:$ git rm *.pyc$ git rm imagem.jpg
Ignorando arquivosPara ignorarmos arquivos especificos podemos utilizar oarquivo .gitignore:.DS_Storeenv*.pyc
Commitando os                 arquivosPara commitar os arquvios utilizamos o commandocommit:$ git commit -a -m ‘Initial co...
Melhores mensagens de commit Para criar mensagens mais significativas, é recomendado que não se use a opção -m no commit. ...
Melhores mensagens de commit# Please enter the commit message for your changes. Lines starting# with # will be ignored, an...
Vendo o log do repositórioPara ver o log do repositório basta utilizar o commando log:$ git logcommit 70d6469847e38ac3cb16...
Revertendo                          mudançasPara reverter o a working copy para um estado anterior podemosutilizar o coman...
Revertendo                 mudançasQualquer mudança após utilizar o checkout para voltarpara uma revisão anterior cria uma...
Revertendo                 mudançasCaso você queira reverter a um estado anterior edescartar todo o que veio depois você p...
Corrigindo o último               commitAs vezes você faz besteira no seu último commit. Calma,você não precisa sair fazen...
Tá tudo errado!!Suponha que você comitou arquivos que não devia, asmensagens de commit não são apropriadas. O quefazer?
Tá tudo errado!!$ git rebase -i HEAD~10Os últimos 10 commits vão aparecer no editor de texto.Você pode trocar as mensagens...
Tá tudo errado!!pick 5c6eb73 Arrumei erro de grafíapick a311a64 Removi a conf localpick 100834f Adicionei as imagens
Tá tudo errado!!Substitua o pick com:edit para marcar um commit para amendreword para mudar a mensagemsquash para fazer um...
Tá tudo errado!!Se você marcou algum commit com edit, utilize oseguinte comando para que o git te leve a este commitpara f...
Quem foi o vi#$%#?Para ver quem fez cada mudança em um arquivo:$ git blame my_source.py
Universos paralelos
BranchesQuando se trabalha em um projeto relativamentegrande é comum que existam funcionalidades sendodesenvolvidas enquan...
BranchesPara que seja possivel conciliar o trabalho dessas duasequipes utilizamos branches separados.
BranchesPara criar um branch:$ git checkout -b experimental # Um branchchamado experimental foi criado.
BranchesPara retornar ao branch master:$ git checkout master
Multiplayer
MultiplayerQuando colaboramos em um projeto, geralmente existeum repositório remoto e cada desenvolvedor trabalha noseu pr...
MultiplayerPara fazer o fork de um repositório basta:$ git clone git@bitbucket.org:inspira_tecnologia/agclick_senai.git
MultiplayerPara puxarmos do repositório remoto as mudançasenviadas pelos outros desenvolvedores utilizamos oseguinte comma...
MultiplayerPara pegar especificamente as mudanças no branchmaster:$ git pull origin master
MultiplayerPara enviar os commits do nosso repositório local para oremoto:$ git push
MultiplayerPara listar todos os branches remotos:$ git branch -r
Práticas de versionamento
Práticas de versionamentoO branch master é estavel. Nenhum desenvolvimento éfeito nele.
Práticas de versionamentoO desenvolvimento ocorre no branch dev.
Práticas de versionamentoPode-se continuar o desenvolvimento no dev pois oambiente de homologação é sincronizado apenas co...
Práticas de versionamentoHavendo ajustes, deve se mergear o testing no fix erealizar os ajustes lá. Ao terminar os ajustes...
Práticas de versionamentoA versão no testing, passando na homologação deve sermergeada no master e lá deve ser aplicada um...
Práticas de versionamentoO que estiver no master esta sempre pronto paraprodução.
Dúvidas?
Próximos SlideShares
Carregando em…5
×

Controle de versionamento com Git

932 visualizações

Publicada em

0 comentários
4 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
932
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1
Ações
Compartilhamentos
0
Downloads
17
Comentários
0
Gostaram
4
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Controle de versionamento com Git

  1. 1. Controle deversionamento com Raphael Cruzeiro - 2012
  2. 2. Git?Git é um software de controle de versionamento criadopor Linus Torvalds para ser utilizado nodesenvolvimento do kernel do Linux. Cada workingdirectory do Git é um repositório completo, idependentede acesso a rede ou de um servidor central.
  3. 3. Git?O grande diferencial do Git é a velocidade e a flexibilidade.
  4. 4. Controle de versionamento distribuidoEm um sistema de controle de versionamentodistribuido cada desenvolvedor possui uma cópiacompleta e independente do repositório em suamáquina.
  5. 5. Controle de versionamento distribuidoIsto não apenas torna so dados mais seguros quanto auma eventual perda mas como também facilita empossibilitar que o desenvolvedor possa trabalhar offlineaproveitado todos os recursos de um controle deversionamento.
  6. 6. Controle de versionamento distribuido
  7. 7. 3 estágiosO Git possui 3 estágios principais para os arquivos doseu projeto: commited, modified e staged. Commitedsignifica que os dados estão seguros, salvos no seubanco de dados local. Modified significa que vocêmodificou o arquivo mas ainda não o comitou. Stagedsignifica que o arquivo foi marcado para ir no próximocommit.
  8. 8. 3 estágios
  9. 9. Começando a usar GitSalvando sua identidade:$ git config --global user.name “Darth Vader”$ git config --global user.email “vader@theempire.com”
  10. 10. Começando a usar GitSetando um par de chaves para autenticação:$ ssh-keygen -t rsa # Cria o par de chaves$ cat ~/.ssh/id_rsa.pub # Mostra a chave pública
  11. 11. Criando um repositórioPara inicializar um repositório Git basta ir na pasta doprojeto e rodar o seguinte comando:$ git init
  12. 12. Adicionando arquivosPara adicionar os arquivos utilizamos o comando add:$ git add *.c$ git add README
  13. 13. Adicionando arquivosOu para adicionar todos os arquivos:$ git add .
  14. 14. Ooopss, comitei o que não deviaPara remover um arquivo basta:$ git rm *.pyc$ git rm imagem.jpg
  15. 15. Ignorando arquivosPara ignorarmos arquivos especificos podemos utilizar oarquivo .gitignore:.DS_Storeenv*.pyc
  16. 16. Commitando os arquivosPara commitar os arquvios utilizamos o commandocommit:$ git commit -a -m ‘Initial commit’A opção -a diz ao git para colocar em stage todos osarquivos modificados ou deletados (novos arquivosainda não trackeados não são afetados).
  17. 17. Melhores mensagens de commit Para criar mensagens mais significativas, é recomendado que não se use a opção -m no commit. Desta forma o git ira abrir o vim para que uma mensagem seja digitada:
  18. 18. Melhores mensagens de commit# Please enter the commit message for your changes. Lines starting# with # will be ignored, and an empty message aborts the commit.# On branch master# Changes to be committed:# (use "git reset HEAD <file>..." to unstage)## modified: my_source.py#~
  19. 19. Vendo o log do repositórioPara ver o log do repositório basta utilizar o commando log:$ git logcommit 70d6469847e38ac3cb1691513f2c9f7382f03819Author: Raphael Cruzeiro <raphaelcruzeiro@raphaelcruzeiro.com>Date: Tue Dec 11 15:26:16 2012 -0200 A robot must obey the orders given to it by human beings, except where such orders would conflict with the FirstLaw.commit 47578edf04262b4958aadf01bc4489958d17d5ebAuthor: Raphael Cruzeiro <raphaelcruzeiro@raphaelcruzeiro.com>Date: Tue Dec 11 15:22:20 2012 -0200 A robot may not injure a human being or, through inaction, allow a human being to come to harm.
  20. 20. Revertendo mudançasPara reverter o a working copy para um estado anterior podemosutilizar o comando checkout: (os primeiros 4 digitos do hash docommit são o suficiente para identifica-lo)$ git checkout 4757Se você lembra como começava a mensagem do commit:$ git checkout :/"My first b"
  21. 21. Revertendo mudançasQualquer mudança após utilizar o checkout para voltarpara uma revisão anterior cria uma especie de universoparalelo chamado branch. (Falaremos disso mais tarde).Para voltar ao presente você pode sempre utilizar ocomando:$ git checkout master
  22. 22. Revertendo mudançasCaso você queira reverter a um estado anterior edescartar todo o que veio depois você pode utilizar oseguinte commando:$ git reset --hard 4757
  23. 23. Corrigindo o último commitAs vezes você faz besteira no seu último commit. Calma,você não precisa sair fazendo reset. Faça um amend!$ git commit --amend -a
  24. 24. Tá tudo errado!!Suponha que você comitou arquivos que não devia, asmensagens de commit não são apropriadas. O quefazer?
  25. 25. Tá tudo errado!!$ git rebase -i HEAD~10Os últimos 10 commits vão aparecer no editor de texto.Você pode trocar as mensagens ou apagar os commitsdeletando as linhas que os representam.
  26. 26. Tá tudo errado!!pick 5c6eb73 Arrumei erro de grafíapick a311a64 Removi a conf localpick 100834f Adicionei as imagens
  27. 27. Tá tudo errado!!Substitua o pick com:edit para marcar um commit para amendreword para mudar a mensagemsquash para fazer um merge com o commit anteriorfixup para fazer um merge com o commit anterior edescartar a mensagem so log
  28. 28. Tá tudo errado!!Se você marcou algum commit com edit, utilize oseguinte comando para que o git te leve a este commitpara fazer amends:$ git rebase --continue
  29. 29. Quem foi o vi#$%#?Para ver quem fez cada mudança em um arquivo:$ git blame my_source.py
  30. 30. Universos paralelos
  31. 31. BranchesQuando se trabalha em um projeto relativamentegrande é comum que existam funcionalidades sendodesenvolvidas enquanto outras pessoas trabalham emajustes de funcionalidades já desenvolvidas.
  32. 32. BranchesPara que seja possivel conciliar o trabalho dessas duasequipes utilizamos branches separados.
  33. 33. BranchesPara criar um branch:$ git checkout -b experimental # Um branchchamado experimental foi criado.
  34. 34. BranchesPara retornar ao branch master:$ git checkout master
  35. 35. Multiplayer
  36. 36. MultiplayerQuando colaboramos em um projeto, geralmente existeum repositório remoto e cada desenvolvedor trabalha noseu próprio repositório local (o que chamamos de fork)
  37. 37. MultiplayerPara fazer o fork de um repositório basta:$ git clone git@bitbucket.org:inspira_tecnologia/agclick_senai.git
  38. 38. MultiplayerPara puxarmos do repositório remoto as mudançasenviadas pelos outros desenvolvedores utilizamos oseguinte commando:$ git pull
  39. 39. MultiplayerPara pegar especificamente as mudanças no branchmaster:$ git pull origin master
  40. 40. MultiplayerPara enviar os commits do nosso repositório local para oremoto:$ git push
  41. 41. MultiplayerPara listar todos os branches remotos:$ git branch -r
  42. 42. Práticas de versionamento
  43. 43. Práticas de versionamentoO branch master é estavel. Nenhum desenvolvimento éfeito nele.
  44. 44. Práticas de versionamentoO desenvolvimento ocorre no branch dev.
  45. 45. Práticas de versionamentoPode-se continuar o desenvolvimento no dev pois oambiente de homologação é sincronizado apenas com otesting.
  46. 46. Práticas de versionamentoHavendo ajustes, deve se mergear o testing no fix erealizar os ajustes lá. Ao terminar os ajustes o fix deveser mergeado no dev e no testing.
  47. 47. Práticas de versionamentoA versão no testing, passando na homologação deve sermergeada no master e lá deve ser aplicada uma tag comuma versão.
  48. 48. Práticas de versionamentoO que estiver no master esta sempre pronto paraprodução.
  49. 49. Dúvidas?

×