SlideShare uma empresa Scribd logo
1 de 43
Baixar para ler offline
Git
                        17 de Abril



marcoafilho@gmail.com
marcoafilho

@marcoafilho
LICENÇA
MARCO ANTONIO
                              FILHO
COORDENADOR DE TI INPACT.ME
UMA VELHA
   HISTÓRIA
A PRINCESA FOI CAPTURADA
OS HERÓIS SURGEM
REQUISITOS
§    Cadastro de heróis
§    Cadastro de times
§    Cadastro de masmorras (dungeons)
§    Envio de times a masmorras
§    Times devem batalhar entre si


REGRAS UTILIZADAS
Manual 3D&T de Marcelo Cassaro
DUNGEON CRAWLER




                                                  Dungeon
                    Character              Team
                                Battle




Monte os seus personangens: goo.gl/qoRFp
REGRAS - Criação de Personagens
PERSONAGENS
§  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);
REGRAS - Batalhas
PERSONAGENS
1.    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;
INTRODUZINDO
  O CONTROLE DE VERSÃO GIT
PROBLEMAS DE COLABORAÇÃO
CONTROLE DE VERSÃO




                     TEMPO
          MERGE
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	
  
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	
  
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);
FLUXO DE
DESENVOLVIMENTO GIT
FLUXO GIT
                                LOCAL                                                 REMOTO

Working directory              Staging Area            Local Repository        Remote Repository


              git	
  add	
  
                                          git	
  commit	
  

                                                                    git	
  push	
  


                                                                      git	
  pull	
  
                           git	
  checkout	
  


                               git	
  merge	
  
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	
  
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	
  
#	
  
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)	
  
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.
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	
  
FLUXO GIT
                                LOCAL                                                 REMOTO

Working directory              Staging Area            Local Repository        Remote Repository


              git	
  add	
  
                                          git	
  commit	
  

                                                                    git	
  push	
  


                                                                      git	
  pull	
  
                           git	
  checkout	
  


                               git	
  merge	
  
COMPREENDENDO
     STAGING AREA
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	
  
	
  
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	
  
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	
  
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	
  
#	
  
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"	
  
COMPARTILHANDO
    REPOSITÓRIOS
REPOSITÓRIO REMOTO

                           git	
  pull	
  




         git	
  push	
  



                           git	
  pull	
  
GITHUB
ADICIONANDO COLABORADORES
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>]	
  
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.
MAIS SOBRE
    COLABORAÇÃO
BRANCHES
   É MELHOR CRIAR FUNCIONALIDADES EM BRANCHES
$	
  git	
  branch	
  char	
  


LISTAR BRANCHES
$	
  git	
  branch	
                                        HEAD
	
  char	
  
*	
  master	
  

                                                     CHAR
ACESSAR BRANCH
$	
  git	
  checkout	
  char	
  
Switched	
  to	
  branch	
  'char'	
  


                                                MASTER
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?
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	
  
                                                                    CHAR

REMOVER BRANCH
$	
  git	
  branch	
  -­‐d	
  char	
  


                                                               MASTER
RESOLVENDO CONFLITOS
    E QUANDO DUAS PESSOAS MEXEM NO MESMO ARQUIVO?

$	
  git	
  push	
  
!	
  [rejected]	
  	
  	
  	
  	
  	
  	
  	
  master	
  -­‐>	
     HEAD
master	
  (non-­‐fast-­‐forward)	
  

    IMPORTANTE! REALIZAR GIT PULL ANTES DE GIT PUSH!                                   char.html

ARQUIVO COM CONFLITO!
                                                                                CHAR
$	
  git	
  pull	
  
CONFLICT	
  (content):	
  Merge	
  conflict	
  
in	
  char.html	
  



                                                                           MASTER
RESOLVENDO CONFLITOS
ARQUIVO COM CONFLITO                                    Seu repositório


<<<<<<<	
  HEAD	
  
	
  	
  <title>DungeonCrawlers	
  Generations</title>	
  
=======	
  
	
  	
  <title>Dungeon	
  Crawlers</title>	
  
>>>>>>>	
  7a61a9b596cdd07120e36f4f916ee65036d5c179	
  




Repositório remoto

FIX, COMMIT AND PUSH!!!
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.
DÚVIDAS
          ?     ? ?
      ?
     ?
     ?
        ?  ?    ?
                  ?
                  ?
            ?
MUITO OBRIGADO!



marcoafilho@gmail.com
marcoafilho

@marcoafilho

Mais conteúdo relacionado

Mais procurados

Mais procurados (8)

Conhecendo o GIT
Conhecendo o GITConhecendo o GIT
Conhecendo o GIT
 
Compilando o Android 5 para o Nexus 5
Compilando o Android 5 para o Nexus 5Compilando o Android 5 para o Nexus 5
Compilando o Android 5 para o Nexus 5
 
Git e GitHub
Git e GitHubGit e GitHub
Git e GitHub
 
Git - GitHub
Git - GitHubGit - GitHub
Git - GitHub
 
Git para quem vem do SVN
Git para quem vem do SVNGit para quem vem do SVN
Git para quem vem do SVN
 
Git e Github
Git e GithubGit e Github
Git e Github
 
Introdução ao Git
Introdução ao GitIntrodução ao Git
Introdução ao Git
 
Git 101
Git 101Git 101
Git 101
 

Destaque

Destaque (7)

Scrum
ScrumScrum
Scrum
 
Rails na prática
Rails na práticaRails na prática
Rails na prática
 
Object Oriented Programming
Object Oriented ProgrammingObject Oriented Programming
Object Oriented Programming
 
Behavior Driven Development com Ruby on Rails
Behavior Driven Development com Ruby on RailsBehavior Driven Development com Ruby on Rails
Behavior Driven Development com Ruby on Rails
 
Escrevendo Estórias do Usuário Eficazes
Escrevendo Estórias do Usuário EficazesEscrevendo Estórias do Usuário Eficazes
Escrevendo Estórias do Usuário Eficazes
 
Reuters: Pictures of the Year 2016 (Part 2)
Reuters: Pictures of the Year 2016 (Part 2)Reuters: Pictures of the Year 2016 (Part 2)
Reuters: Pictures of the Year 2016 (Part 2)
 
The Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post FormatsThe Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post Formats
 

Semelhante a Git

Controle de versionamento com Git
Controle de versionamento com GitControle de versionamento com Git
Controle de versionamento com Git
Raphael Cruzeiro
 

Semelhante a Git (20)

Viajando no Tempo com GIT: Controle de versão para quem quer dormir em paz
Viajando no Tempo com GIT: Controle de versão para quem quer dormir em pazViajando no Tempo com GIT: Controle de versão para quem quer dormir em paz
Viajando no Tempo com GIT: Controle de versão para quem quer dormir em paz
 
Git flow no projeto
Git flow no projetoGit flow no projeto
Git flow no projeto
 
EIIFRO2014 - Desenvolvimento Colaborativo de Software
EIIFRO2014 - Desenvolvimento Colaborativo de SoftwareEIIFRO2014 - Desenvolvimento Colaborativo de Software
EIIFRO2014 - Desenvolvimento Colaborativo de Software
 
Controle de versionamento com Git
Controle de versionamento com GitControle de versionamento com Git
Controle de versionamento com Git
 
Git - Não perca o que estava funcionando!
Git - Não perca o que estava funcionando!Git - Não perca o que estava funcionando!
Git - Não perca o que estava funcionando!
 
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
 
Use o git e perca o medo de errar
Use o git e perca o medo de errarUse o git e perca o medo de errar
Use o git e perca o medo de errar
 
Git na pratica
Git na praticaGit na pratica
Git na pratica
 
Minicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENACMinicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENAC
 
Minicurso GIT Completo (2022)
Minicurso GIT Completo (2022)Minicurso GIT Completo (2022)
Minicurso GIT Completo (2022)
 
Descomplicando o controle de versão com git
Descomplicando o controle de versão com gitDescomplicando o controle de versão com git
Descomplicando o controle de versão com git
 
Git workshop
Git workshopGit workshop
Git workshop
 
GIT - Gerenciamento de Projeto e Versionamento Semântico
GIT - Gerenciamento de Projeto e Versionamento SemânticoGIT - Gerenciamento de Projeto e Versionamento Semântico
GIT - Gerenciamento de Projeto e Versionamento Semântico
 
Aprendendo Git
Aprendendo GitAprendendo Git
Aprendendo Git
 
Git - Rápido, seguro, eficiente
Git - Rápido, seguro, eficienteGit - Rápido, seguro, eficiente
Git - Rápido, seguro, eficiente
 
Git that like a boss: Grupo RBS
Git that like a boss: Grupo RBSGit that like a boss: Grupo RBS
Git that like a boss: Grupo RBS
 
Git - Visão Geral
Git - Visão GeralGit - Visão Geral
Git - Visão Geral
 
Git na prática - Minicurso III SEICOM
Git na prática - Minicurso III SEICOMGit na prática - Minicurso III SEICOM
Git na prática - Minicurso III SEICOM
 
GIT - Hands-On
GIT - Hands-On GIT - Hands-On
GIT - Hands-On
 
Introdução ao Git
Introdução ao GitIntrodução ao Git
Introdução ao Git
 

Git

  • 1. Git 17 de Abril marcoafilho@gmail.com marcoafilho @marcoafilho
  • 3. MARCO ANTONIO FILHO COORDENADOR DE TI INPACT.ME
  • 4. UMA VELHA HISTÓRIA
  • 5. A PRINCESA FOI CAPTURADA OS HERÓIS SURGEM REQUISITOS §  Cadastro de heróis §  Cadastro de times §  Cadastro de masmorras (dungeons) §  Envio de times a masmorras §  Times devem batalhar entre si REGRAS UTILIZADAS Manual 3D&T de Marcelo Cassaro
  • 6. DUNGEON CRAWLER Dungeon Character Team Battle Monte os seus personangens: goo.gl/qoRFp
  • 7. REGRAS - Criação de Personagens PERSONAGENS §  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. REGRAS - Batalhas PERSONAGENS 1.  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. INTRODUZINDO O CONTROLE DE VERSÃO GIT
  • 11. CONTROLE DE VERSÃO TEMPO MERGE
  • 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. 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. 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);
  • 16. FLUXO GIT LOCAL REMOTO Working directory Staging Area Local Repository Remote Repository git  add   git  commit   git  push   git  pull   git  checkout   git  merge  
  • 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. 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. 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. 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. 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. FLUXO GIT LOCAL REMOTO Working directory Staging Area Local Repository Remote Repository git  add   git  commit   git  push   git  pull   git  checkout   git  merge  
  • 23. COMPREENDENDO STAGING AREA
  • 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. 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. 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. 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. 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. COMPARTILHANDO REPOSITÓRIOS
  • 30. REPOSITÓRIO REMOTO git  pull   git  push   git  pull  
  • 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. 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. MAIS SOBRE COLABORAÇÃO
  • 36. BRANCHES É MELHOR CRIAR FUNCIONALIDADES EM BRANCHES $  git  branch  char   LISTAR BRANCHES $  git  branch   HEAD  char   *  master   CHAR ACESSAR BRANCH $  git  checkout  char   Switched  to  branch  'char'   MASTER
  • 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. 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   CHAR REMOVER BRANCH $  git  branch  -­‐d  char   MASTER
  • 39. RESOLVENDO CONFLITOS E QUANDO DUAS PESSOAS MEXEM NO MESMO ARQUIVO? $  git  push   !  [rejected]                master  -­‐>   HEAD master  (non-­‐fast-­‐forward)   IMPORTANTE! REALIZAR GIT PULL ANTES DE GIT PUSH! char.html ARQUIVO COM CONFLITO! CHAR $  git  pull   CONFLICT  (content):  Merge  conflict   in  char.html   MASTER
  • 40. RESOLVENDO CONFLITOS ARQUIVO COM CONFLITO Seu repositório <<<<<<<  HEAD      <title>DungeonCrawlers  Generations</title>   =======      <title>Dungeon  Crawlers</title>   >>>>>>>  7a61a9b596cdd07120e36f4f916ee65036d5c179   Repositório remoto FIX, COMMIT AND PUSH!!!
  • 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. DÚVIDAS ? ? ? ? ? ? ? ? ? ? ? ?