Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Git: Aula Prática

Git: Aula Prática

Rodrigo Barros Bernardino

October 04, 2015
Tweet

More Decks by Rodrigo Barros Bernardino

Other Decks in Programming

Transcript

  1. Git: Interface Gráfica • SourceTree ◦ Todas as funcionalidades ◦

    Interface gráfica ◦ Bonito e intuitivo ◦ Servidores: GitHub, BitBucket... ◦ https://www.sourcetreeapp.com/
  2. Git: Interface por Linha de Comando • git ◦ Programa

    original ◦ Git bash (windows) ▪ https://git-scm.com/ ◦ $apt-get install git • Exemplos ◦ git add . ◦ git commit -m “meu commit” ◦ git push ◦ git push origin master
  3. Git: Interface Gráfica (linux) • gitg ◦ Funcionalidades básicas ◦

    Interface gráfica ◦ Simples • Instalação ◦ $apt-get install git-gui gitg
  4. Git: Interface Gráfica (linux) • gitk ◦ Apenas visualização ◦

    Interface gráfica • Instalação ◦ $apt-get install git gitk
  5. Git: Conceitos Fundamentais • Repositório (repository - repo) 1. Grupo

    de arquivos ▪ Organizado por pastas ▪ Representa um projeto
  6. Git: Conceitos Fundamentais • Repositório (repository - repo) 1. Grupo

    de arquivos ▪ Organizado por pastas ▪ Representa um projeto 2. Histórico de Revisões
  7. Git: Conceitos Fundamentais • Repo. Remotos (remote) ◦ Nuvem ◦

    GitHub ◦ Cópia do repo local • Repo. Locais (local) ◦ Onde as mudanças ocorrem ◦ Sync: atualiza c/ mudanças ▪ Recebe do remoto ▪ Envia para remoto
  8. Git: Conceitos Fundamentais Rmt repositório Arquivos / Pastas cópia da

    versão atual versão atual todas as versões
  9. Git: Workflow Genérico em Detalhes $git clone $git pull $git

    checkout v0.7 $git checkout nome-do-branch $git add . $git add file1 file2 file3 $git commit -m “msg de commit” $git push : um ou outro
  10. Git: Principais funções (SourceTree) • Clone / New • Commit

    • Discard • Push / Pull • Tag • Stash • Log / History • Checkout • • • • • • • • Clonar / Novo Commit Descartar Enviar / Puxar Etiqueta Esconder Log / Histórico Cheque
  11. Instalando o Git (2.1) - SourceTree 1. https://www.sourcetreeapp.com/ 2. Download

    e execute 3. Ao finalizar, “Instalar arquivo ignore globalmente” -> clique em “Sim” 4. Adicionar uma conta… a. Criar conta no Bitbucket
  12. Instalando o Git (2.2) - Bitbucket 1. https://www.sourcetreeapp.com/ 2. Download

    e excute 3. Ao finalizar, “Instalar arquivo ignore globalmente” -> clique em “Sim” 4. Adicionar uma conta… a. Criar conta no Bitbucket Bitbucket • Free: até 5 membros • Número ilimitado de repositórios • Públicos ou privados • https://bitbucket.org/ (GitHub é pago para ser privado)
  13. Instalando o Git (2.2) - Bitbucket 1. https://www.sourcetreeapp.com/ 2. Download

    e excute 3. Ao finalizar, “Instalar arquivo ignore globalmente” -> clique em “Sim” 4. Adicionar uma conta… a. Criar conta no Bitbucket (personal account) b. Confirmar e-mail
  14. Git e Segurança: Chave SSH • Permissão para usar servidor

    de Git • Garantir que é você mesmo • Permissão para alterar arquivos • HTTPS: inserir username/pwd • Chaves SSH (pública + privada)
  15. Chave SSH: (1) Criando Chave (Terminal) • Abra o “Git

    Bash”: 1. $ssh-keygen → [ENTER] 2. 'Enter the file…' → [ENTER] 3. 'Enter passphrase…' → [sua senha!] x2 4. $start /c/Users/rodri_000/.ssh/ → [ENTER] Não precisa se for o seu computador pessoal
  16. Chave SSH: (2) Criando Chave (GUI) 1. SourceTree → Ferramentas

    → ... Importar Chaves SSH 2. Conversions → Import Key 3. %USERPROFILE%/.ssh → id_rsa (chave privada) 4. Digite a senha 5. Aperte “Save public key” 6. Aperte “Save private key” 7. Ctrl+C em “Key” (conteúdo do id_rsa.pub) - mesmo lugar de 3. - qualquer nome
  17. Chave SSH: (3) Servidor Bitbucket 0. Site do “Bitbucket”: 1.

    Manage account → Security → SSH keys 2. Add Key 3. Label: “PC ocean” 4. Key: Ctrl+V a. conteúdo começa e termina com isso: i. ssh-rsa … … … imported-openssh-key
  18. Sourcetree: Registro • Gratuito, porém requer registro ◦ Após 30

    dias só pode usar se registrar • Arquivo → Registro… • Apertar “Faça o Registro Agora! É Gratuito!” • Insira e-mail • Aperte “OK” • Simples assim!
  19. SourceTree: Local dos Repositórios • Ferramentas → Opções • Diversos

    → Pasta do projeto → botão “...” • Documentos → “Nova pasta” → “git” • “Selecionar pasta” → “OK”
  20. 1. 1. https://bitbucket.org/ → Log in 2. Create a repository

    → “testeGit” 3. Language → UnityScript → Create! 4. Abra o “SourceTree” no seu PC 5. Aperte “Clonar/Novo” 6. Em “Caminho Fonte…” → Ícone de “globo” 7. “testeGit” → “OK” → “Clonar” Meu primeiro repo (pelo site)
  21. 2. 1. Abra o “SourceTree” 2. “Clonar/Novo” → Ícone de

    “globo” → “Criar” 3. “testeGit2” → “Criar Repositório” → “OK” 4. Criar 3 arquivos - (.txt + .jpg + .zip) a. Verificar mudanças locais Meu segundo repo (pelo prog.)
  22. 2. 6. Apertar em “Commit” no canto sup/esq a. Ctrl+Shift

    + C → ERRO! b. Clicar “Arquivos não elencados” (git add) 7. Digitar mensagem de commit a. “Sempre escreva uma mensagem com o que foi feito” 8. Apertar “Commit” a. Ctrl + Enter → ERRO! → configurar usuário Meu segundo repo (pelo prog.)
  23. 2. 6. Apertar em “Commit” no canto sup/esq a. Ctrl+Shift

    + C → ERRO! b. Clicar “Arquivos não elencados” (git add) 7. Digitar mensagem de commit a. “Sempre escreva uma mensagem com o que foi feito” 8. Apertar “Commit” a. Ctrl + Enter → ERRO! → configurar usuário Meu segundo repo (pelo prog.) git config • GUI (SourceTree) ◦ Ferramentas → Opções ◦ Informações padrão do usuário ◦ Insira seu nome e e-mail • Terminal (Git Bash) ◦ git config --global user.name “Rod BB” ◦ git config --global user.email “[email protected]
  24. 2. 6. Apertar em “Commit” no canto sup/esq a. Ctrl+Shift

    + C → ERRO! b. Clicar “Arquivos não elencados” (git add) 7. Digitar mensagem de commit a. “Sempre escreva uma mensagem com o que foi feito” 8. Apertar “Commit” a. Ctrl + Enter → OK! b. Verificar Log Meu segundo repo (pelo prog.)
  25. 2. 10. Verificar no site (ainda nada) 11. Apertar em

    “Enviar” (push) a. Criar novo branch remoto 12. Verificar Log novamente 13. Verificar no site novamente Meu segundo repo (pelo prog.)
  26. Colaborativo 1. Qual seu username? a. notepub.com → u: aulaGit

    p: 1234 b. Eu vou dar permissão a vocês 2. Clone do meu repo aulaGit 3. Abra arquivo_de_texto.txt 4. Alguém muda linha 1. 5. Todos atualizam 2.
  27. Merge Manual (ruim) 1. Pessoa P altera arquivo (Linha 2)

    2. Eu altero mesmo arquivo (Linha 3) 3. A: Commit → Enviar (ver site) 4. Eu: tenta Puxar → ERRO! 5. Copia arquivo modificado (pra fora) 6. Puxar → Ver mudanças → Altera linha 3 3.
  28. Merge Manual Corretamente 1. Pessoa P altera arquivo (Linha 2)

    2. Eu altero mesmo arquivo (Linha 4) 3. A: Commit → Enviar (ver site) 4. Eu: tenta Puxar → ERRO! 5. Esconde mudanças (salva, guarda…) 6. Puxar → Aplica mudanças 7. Commit + Enviar 4.
  29. Merge automático 1. Pessoa P altera arquivo X a. Crie

    um arquivo com seu nome b. Atualize antes de enviar! (Puxar) c. Commit + Enviar 2. Eu altero arquivo Y 3. Eu: Puxar → novas bolinhas / revisões! a. Commit minhas mudanças 4. Atualizem (Puxar) 5.
  30. 1. A modifica X → commita 2. B modifica Y

    → commita 3. A -- Envia → remoto (1o a enviar) 4. B -- Envia → remoto a. 5. C -- Envia → remoto Commit Simultâneo 5.