Git

388 views
342 views

Published on

Introductory Git course for the Computer's Science junior enterprise. In this course is shown the general workflow for an application.

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
388
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
14
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Git

  1. 1. Git 17 de Abrilmarcoafilho@gmail.commarcoafilho@marcoafilho
  2. 2. LICENÇA
  3. 3. MARCO ANTONIO FILHOCOORDENADOR DE TI INPACT.ME
  4. 4. UMA VELHA HISTÓRIA
  5. 5. A PRINCESA FOI CAPTURADAOS HERÓIS SURGEMREQUISITOS§  Cadastro de heróis§  Cadastro de times§  Cadastro de masmorras (dungeons)§  Envio de times a masmorras§  Times devem batalhar entre siREGRAS UTILIZADASManual 3D&T de Marcelo Cassaro
  6. 6. DUNGEON CRAWLER Dungeon Character Team BattleMonte os seus personangens: goo.gl/qoRFp
  7. 7. REGRAS - Criação de PersonagensPERSONAGENS§  Máximo de 7 pontos em características;§  Máximo 5 em um atributo;§  Pontos de Vida são calculados com base na resistência (resistência x 1d);
  8. 8. REGRAS - BatalhasPERSONAGENS1.  Jogadores jogam um dado. O maior valor inicia o combate;2.  Quem tem a iniciativa ataca. O dano é calculado em força ou poder de fogo x d6;3.  O oponente defende. A defesa é calculada pela armadura x d6;4.  Os pontos de vida são reduzidos pela diferença: ataque - defesa;5.  O oponente ataca;6.  Aquele que for nocauteada (pontos de vida menor que zero) é o perdedor;
  9. 9. INTRODUZINDO O CONTROLE DE VERSÃO GIT
  10. 10. PROBLEMAS DE COLABORAÇÃO
  11. 11. CONTROLE DE VERSÃO TEMPO MERGE
  12. 12. INICIALIZANDO GIT Execute no terminal Configuração do seu usuário git.$  git  config  -­‐-­‐global  user.name  "Marco  Antonio  Filho"  $  git  config  -­‐-­‐global  user.email  "marcoafilho@gmail.com"  $  git  config  -­‐-­‐global  color.ui  true   Inicialize o seu projeto$  mkdir  save-­‐the-­‐princess  $  cd  save-­‐the-­‐princess  $  git  init  
  13. 13. MARKDOWN CONVERSOR TEXTO-HTML Útil para documentação simples de uma plataforma.Um  cabeçalho  de  nível  1  =======================    Um  cabeçalho  de  nível  2  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐    Isso  é  um  paragráfo  e  abaixo  é  uma  lista    *  Item  1  *  Item  2  *  Item  3  
  14. 14. EXERCÍCIO 30 MIN OBJETIVO Configurar e inicializar um repositório local e adicionar alguns arquivos MÉTODO §  Configurar git com o seu usuário (dica: git config); §  Inicializar um repositório dentro da pasta do seu projeto (dica: git init); §  Escrever um arquivo README.md explicando o que é o programa (dica: google markdown); §  Criar uma página html que contenha uma lista de personagens (characters); §  Nome (Name) e Classe (Class); §  Força (Strength), Habilidade (Skill), Resistência (Resistance), Armadura (Armor), Poder de Fogo (Fire Power);
  15. 15. FLUXO DEDESENVOLVIMENTO GIT
  16. 16. FLUXO GIT LOCAL REMOTOWorking directory Staging Area Local Repository Remote Repository git  add   git  commit   git  push   git  pull   git  checkout   git  merge  
  17. 17. GIT STATUS VERIFICA O ESTADO CORRENTE DO DIRETÓRIO$  git  status  #  On  branch  master  #  #  Initial  commit  #  #  Untracked  files:  #      (use  "git  add  <file>..."  to  include  in  what  will  be  committed)  #  #  README.md  #  characters_index.html  
  18. 18. ADICIONANDO AO PALCO DEVEMOS COMEÇAR A RASTREAR AS MUDANÇAS$  git  add  README.md  characters_index.html  $  git  status  #  On  branch  master  #  #  Initial  commit  #  #  Changes  to  be  committed:  #      (use  "git  rm  -­‐-­‐cached  <file>..."  to  unstage)  #  #  new  file:      README.md  #  new  file:      characters_index.html  #  
  19. 19. ARMAZENANDO UMA FOTO GUARDANDO UMA FOTO NO REPOSITÓRIO LOCAL$  git  commit  -­‐m  "Initial  commit"  $  git  status  #  On  branch  master  nothing  to  commit  (working  directory  clean)  
  20. 20. EXERCÍCIO 30 MIN OBJETIVO Armazenar arquivos no repositório local através de commits MÉTODO §  Adicionar arquivos para a staging area (dica: git add); §  Salvar alterações no repositório local (dica: git commit); §  Criar uma página com a lista de masmoras (dungeons); §  Nome (Name); §  Navegação entre masmorras e personagens; §  Realizar mesmo processo para salvar alterações no repositório local; §  Bônus: Adicionar css à página.
  21. 21. HISTÓRICO É POSSÍVEL VER QUAIS AS ALTERAÇÕES FEITAS$  git  log  commit  19dd00d4913497107ef6de07e0ee00a9b9315304  Author:  Marco  Antonio  Filho  <marcoafilho@gmail.com>  Date:      Thu  Apr  11  02:51:03  2013  -­‐0300            Creating  index  and  modifying  README.md    commit  a44995e61542e54aa88e55908cf09133578a43f6  Author:  Marco  Antonio  Filho  <marcoafilho@gmail.com>  Date:      Thu  Apr  11  02:37:13  2013  -­‐0300            Initial  commit  
  22. 22. FLUXO GIT LOCAL REMOTOWorking directory Staging Area Local Repository Remote Repository git  add   git  commit   git  push   git  pull   git  checkout   git  merge  
  23. 23. COMPREENDENDO STAGING AREA
  24. 24. DIFERENÇAS ENTRE COMMITS PODEMOS VER O QUE MODIFICAMOS EM RELAÇÃO AO REPOSITÓRIO LOCAL$  git  diff  diff  -­‐-­‐git  a/README.md  b/README.md  index  9d1d09d..61f26f8  100644  -­‐-­‐-­‐  a/README.md  +++  b/README.md  @@  -­‐1,2  +1,4  @@    My  dungeon  crawlers    ===================  +  +A  warrior  should  fight  with  his  heart  instead  of  his  sword.  $  git  add  README.md  $  git  diff    
  25. 25. ADD ACIDENTAL COMO FAZER PARA REMOVER ARQUIVOS ADICIONADOS ACIDENTALMENTE?$  git  status  #  On  branch  master  #  Changes  to  be  committed:  #      (use  "git  reset  HEAD  <file>..."  to  unstage)  #  #  modified:      README.md  #  $  git  reset  HEAD  README.md  Unstaged  changes  after  reset:  M  README.md  
  26. 26. DESCARTANDO MODIFICAÇÕES E SE EU QUISER VOLTAR COMO ESTAVA ANTES?$  git  status  #  On  branch  master  #  Changes  not  staged  for  commit:  #      (use  "git  add  <file>..."  to  update  what  will  be  committed)  #      (use  "git  checkout  -­‐-­‐  <file>..."  to  discard  changes  in  working  directory)  #  #  modified:      README.md  #  no  changes  added  to  commit  (use  "git  add"  and/or  "git  commit  -­‐a")  $  git  checkout  -­‐-­‐  README.md  $  git  status  
  27. 27. REFAZENDO COMMITS E SE EU ESQUECI DE ADICIONAR ALGUMA COISA?$  git  reset  -­‐-­‐soft  HEAD^  $  git  status  #  On  branch  master  #  Changes  to  be  committed:  #      (use  "git  reset  HEAD  <file>..."  to  unstage)  #  #  modified:      README.md  #  new  file:      dungeons_index.html  #  
  28. 28. ADICIONANDO A UM COMMIT E SE EU ESQUECI DE ADICIONAR ALGUMA COISA?$  git  add  dungeon_new.html  $  git  commit  -­‐-­‐amend  -­‐m  "Adding  dungeon  index  and  form"  
  29. 29. COMPARTILHANDO REPOSITÓRIOS
  30. 30. REPOSITÓRIO REMOTO git  pull   git  push   git  pull  
  31. 31. GITHUB
  32. 32. ADICIONANDO COLABORADORES
  33. 33. ADICIONANDO O SERVIDOR REMOTO PRECISAMOS DEFINIR QUEM VAI SER O NOSSO SERVIDOR CENTRAL$  git  remote  add  origin  https://github.com/<user>/<project>.git  $  git  push  -­‐u  origin  master   PARA QUE AS PESSOAS PEGUEM AS MODIFICAÇÕES DO REPOSITÓRIO REMOTO$  git  pull   PARA QUE AS PESSOAS PEGUEM O REPOSITÓRIO REMOTO$  git  clone  https://github.com/<user>/<project>.git  [<folder>]  
  34. 34. EXERCÍCIO 30 MIN OBJETIVO Crie um repositório remoto e colabore com o do colega MÉTODO §  Crie o seu repositório no github e envie o seu código (dica: git remote e git push); §  Adicione o colega do seu lado como colaborador como colaborador; §  Crie uma cópia do repositório do seu colega (dica: git clone); §  Sem contar o que está fazendo, faça as alterações que desejar no projeto dele; §  Envie as suas alterações para o github (dica: git push); §  Volte para o diretório do seu projeto e pegue as alterações feitas pelo seu colega (dica: git pull); §  Identifique as alterações feitas sem perguntar para o colega que as modificou.
  35. 35. MAIS SOBRE COLABORAÇÃO
  36. 36. BRANCHES É MELHOR CRIAR FUNCIONALIDADES EM BRANCHES$  git  branch  char  LISTAR BRANCHES$  git  branch   HEAD  char  *  master   CHARACESSAR BRANCH$  git  checkout  char  Switched  to  branch  char   MASTER
  37. 37. EXERCÍCIO 15 MIN OBJETIVO Crie uma branch e nessa branch crie um formulário para characters MÉTODO §  Crie uma branch (dica: git branch); §  Vá para a branch (dica: git checkout); §  Crie um formulário para salvar personagens; §  Faça o commit dessa funcionalidade; §  Volte para a branch master. §  O que foi que aconteceu?
  38. 38. MERGE BRANCHES TERMINAMOS A FUNÇÃO CHAR. É HORA DE FUNDIR AS BRANCHES$  git  checkout  master   HEAD$  git  merge  char  Updating  c8541d6..a226599  Fast-­‐forward    0  files  changed,  0  insertions(+),  0  deletions(-­‐)    create  mode  100644  chars_new.html   CHARREMOVER BRANCH$  git  branch  -­‐d  char   MASTER
  39. 39. RESOLVENDO CONFLITOS E QUANDO DUAS PESSOAS MEXEM NO MESMO ARQUIVO?$  git  push  !  [rejected]                master  -­‐>   HEADmaster  (non-­‐fast-­‐forward)   IMPORTANTE! REALIZAR GIT PULL ANTES DE GIT PUSH! char.htmlARQUIVO COM CONFLITO! CHAR$  git  pull  CONFLICT  (content):  Merge  conflict  in  char.html   MASTER
  40. 40. RESOLVENDO CONFLITOSARQUIVO COM CONFLITO Seu repositório<<<<<<<  HEAD      <title>DungeonCrawlers  Generations</title>  =======      <title>Dungeon  Crawlers</title>  >>>>>>>  7a61a9b596cdd07120e36f4f916ee65036d5c179  Repositório remotoFIX, COMMIT AND PUSH!!!
  41. 41. EXERCÍCIO 15 MIN OBJETIVO Resolvendo conflitos no seu repositório MÉTODO §  Combine em uma linha para que o seu colega faça uma modificação; §  Faça uma modificação na mesma linha; §  Faça um commit e push no repositório do seu colega; §  Faça um commit e pull no seu repositório; §  Tente agora resolver o conflito; §  Quando o arquivo estiver corrigido, faça commit e push.
  42. 42. DÚVIDAS ? ? ? ? ? ? ? ? ? ? ? ?
  43. 43. MUITO OBRIGADO!marcoafilho@gmail.commarcoafilho@marcoafilho

×