O documento fornece uma introdução sobre como gerenciar mudanças de código usando o sistema de controle de versão Git. Ele discute a importância do controle de versão, apresenta conceitos básicos como branches e commits, e guia os leitores através de exemplos práticos de como configurar e usar o Git localmente e em projetos remotos hospedados no GitHub.
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
Gerencie as Mudanças de Seu Código Usando Git
1. Gerencie as Mudanças de Seu Código
Usando Git
Prof. Orlewilson Bentes Maia
prof.orlewilson@gmail.com
2. 2018 Gerencie as Mudanças de Seu Código Usando Git 2
Quem sou eu?
Bacharelado em
Ciência da Computação
(2002 – 2006)
Mestrado em
Engenharia Elétrica
(2007 – 2009)
Doutorado em
Engenharia Elétrica
(2010 – 2015)
3. 2018 Gerencie as Mudanças de Seu Código Usando Git 3
Objetivo da Oficina
Mostrar importância de gerenciar mudanças de código.
Aplicar controle de versão de código usando Git.
4. Internet das Coisas (IoT)Roteiro
Mão na Massa
Como Gerenciar Códigos?
Contextualização
6. 2018 Gerencie as Mudanças de Seu Código Usando Git 6
Quando você precisa de
controle de versão?
Contextualização1
7. 2018 Gerencie as Mudanças de Seu Código Usando Git 7
Contextualização1
8. 2018 Gerencie as Mudanças de Seu Código Usando Git 8
Contextualização1
9. 2018 Gerencie as Mudanças de Seu Código Usando Git 9
E no desenvolvimento
de aplicativos?
Contextualização1
10. 2018 Gerencie as Mudanças de Seu Código Usando Git 10
Contextualização1
11. 2018 Gerencie as Mudanças de Seu Código Usando Git 11
Contextualização1
Mudanças
Não são analisadas antes de ser feitas
Não são registradas antes de ser implementadas
Não são relatadas àqueles que precisam saber
Não são controladas de forma que melhore a qualidade e reduza
erros
12. 2018 Gerencie as Mudanças de Seu Código Usando Git 12
Contextualização1
Gestão de Configuração de Software
Durante o desenvolvimento do software queremos saber:
O que mudou e quando? (controle de versão)
Por que mudou? (controle de mudanças)
Quem fez a mudança? (auditoria de configuração)
Podemos reproduzir esta mudança? (auditoria de configuração)
13. 2018 Gerencie as Mudanças de Seu Código Usando Git 13
Contextualização1
Gestão de Configuração de Software
“É uma atividade guarda-chuva aplicada ao longo de todo o
processo de software para identificar modificações,
controlar modificações, garantir que as modificações sejam
adequadamente implementaras e relatar as modificações a
outros que possam ter interesse,”
Pressman (2006)
14. 2018 Gerencie as Mudanças de Seu Código Usando Git 14
Qual a importância do
controle de versão?
Contextualização1
15. 2018 Gerencie as Mudanças de Seu Código Usando Git 15
Contextualização1
Exemplo
Você precisa editar um site hospedado em um servidor:
1. Você faz o download via FTP
2. Faz as alterações necessárias
3. Envia os arquivos alterados para o servidor via FTP
16. 2018 Gerencie as Mudanças de Seu Código Usando Git 16
Contextualização1
Exemplo
Agora outro desenvolvedor também deve fazer alterações no site...
1. Baixa o mesmo arquivo junto com você
2. Edita e manda para o servidor depois de você
3. Sobrescreve suas alterações!!!
18. 2018 Gerencie as Mudanças de Seu Código Usando Git 18
Como Gerenciar Códigos?2
19. 2018 Gerencie as Mudanças de Seu Código Usando Git 19
O que é Controle de Versão?
Características fundamentais (APRENDENDOWWW, 2018):
Ele salva seu histórico
Qualquer alteração no projeto, aquela linha modificada, ele irá
salvar a modificação. Isso ajuda muito para saber o que foi
mudado de uma versão para outra.
Como Gerenciar Códigos?2
20. 2018 Gerencie as Mudanças de Seu Código Usando Git 20
O que é Controle de Versão?
Características fundamentais (APRENDENDOWWW, 2018):
Você pode desenvolver versões diferentes
Os sistemas possuem branches (ramificações), permitindo que
você crie versões diferentes do mesmo sistema sem afetar
outros.
Como Gerenciar Códigos?2
21. 2018 Gerencie as Mudanças de Seu Código Usando Git 21
O que é Controle de Versão?
Características fundamentais (APRENDENDOWWW, 2018):
Programar em paralelo
Permiti que os desenvolvedores possam programar
paralelamente sem haver alterações no código alheio.
Como Gerenciar Códigos?2
22. 2018 Gerencie as Mudanças de Seu Código Usando Git 22
Como funciona um Controle de Versão (centralizado)?
Como Gerenciar Códigos?2
commit – envia o conjunto de arquivos alterados ao servidor, gerando um novo
histórico de atualização.
update – manda a última versão dele ao computador do desenvolvedor.
23. 2018 Gerencie as Mudanças de Seu Código Usando Git 23
Como funciona um Controle de Versão (distribuído)?
Como Gerenciar Códigos?2
pull – atualiza seu repositório local.
push – atualiza repositório remoto.
24. 2018 Gerencie as Mudanças de Seu Código Usando Git 24
O que é Git?
Sistema de Controle de Versão Distribuído
Criado por Linus Torvalds (2005)
Auxiliar no Desenvolvimento do Linux
Como Gerenciar Códigos?2
25. 2018 Gerencie as Mudanças de Seu Código Usando Git 25
Quem usa Git?
Como Gerenciar Códigos?2
26. 2018 Gerencie as Mudanças de Seu Código Usando Git 26
Ferramentas
Git (https://git-scm.com/)
Como Gerenciar Códigos?2
27. 2018 Gerencie as Mudanças de Seu Código Usando Git 27
Ferramentas
GitKraken (https://www.gitkraken.com/)
Como Gerenciar Códigos?2
28. 2018 Gerencie as Mudanças de Seu Código Usando Git 28
Ferramentas
GitHub (https://github.com/)
Como Gerenciar Códigos?2
29. 2018 Gerencie as Mudanças de Seu Código Usando Git 29
Ferramentas
Bitbucket (https://bitbucket.org/)
Como Gerenciar Códigos?2
31. 2018 Gerencie as Mudanças de Seu Código Usando Git 31
Mão na Massa3
32. Gerencie as Mudanças de Seu Código Usando Git
Configure o Ambiente
Download do Git
https://git-scm.com/downloads
Mão na Massa3
2018 32
33. Gerencie as Mudanças de Seu Código Usando Git
Configure o Ambiente
Linux (distribuição debian)
sudo apt-get install git
Mão na Massa3
2018 33
34. 2018 Gerencie as Mudanças de Seu Código Usando Git 34
Mão na Massa3
Configure o Git
git config -l
git config --global <variavel> <parâmetro>
git config --global user.name Nome
git config --global user.email meu@email.com
35. 2018 Gerencie as Mudanças de Seu Código Usando Git 35
Mão na Massa3
Caso precise de ajuda no Git
git help
ou
git help <parâmetro>
36. 2018 Gerencie as Mudanças de Seu Código Usando Git 36
Mão na Massa3
Como funciona o Git (local)?
Git (2018)
37. 2018 Gerencie as Mudanças de Seu Código Usando Git 37
Mão na Massa3
Inicie um repositório
# inicia repositório quando você está dentro da pasta
mkdir oficina-git
cd oficina-git
git init
ou
# cria a pasta e inicia repositório
git init oficina-git
38. 2018 Gerencie as Mudanças de Seu Código Usando Git 38
Mão na Massa3
Adicione arquivos
Criar um arquivo seriados.txt
# mostra o status de modificações
git status
39. 2018 Gerencie as Mudanças de Seu Código Usando Git 39
Mão na Massa3
Rastreie mudanças em arquivos
# adiciona um arquivo para ser adicionado ao repositório
git add seriados.txt
# inclui todos os arquivos para seres adicionados ao
# repositório
git add .
40. 2018 Gerencie as Mudanças de Seu Código Usando Git 40
Mão na Massa3
Grave as mudanças dos arquivos
# grava a mudança no repositório
git commit -m “Arquivo inicial de seriados para assistir”
git status
git log
41. 2018 Gerencie as Mudanças de Seu Código Usando Git 41
Mão na Massa3
Ramificações
Branch é uma ramificação do repositório
Alterações (commits) ocorrem na branch
Muito útil para trabalhos colaborativos
Branchs de desenvolvimento facilitam o controle
42. 2018 Gerencie as Mudanças de Seu Código Usando Git 42
Mão na Massa3
Ramificações
43. 2018 Gerencie as Mudanças de Seu Código Usando Git 43
Mão na Massa3
Ramificações
# lista ramificações existentes
git branch
# cria ramificação
git branch nome_da_branch
# troca ramificação
git checkout nome_da_branch
# cria e troca ramificação
git checkout -b nome_da_branch
44. 2018 Gerencie as Mudanças de Seu Código Usando Git 44
Mão na Massa3
Mesclando Ramificações
# saber quais ramificações que não foram mescladas com o
# master
git branch --no-merged
45. 2018 Gerencie as Mudanças de Seu Código Usando Git 45
Mão na Massa3
Mesclando Ramificações
git checkout master
Editar arquivo seriados.txt
git add seriados.txt
git commit -m “seriados antigos”
46. 2018 Gerencie as Mudanças de Seu Código Usando Git 46
Mão na Massa3
Mesclando Ramificações
git checkout nome_da_branch
Editar arquivo seriados.txt
git add seriados.txt
git commit -m “seriados novos”
47. 2018 Gerencie as Mudanças de Seu Código Usando Git 47
Mão na Massa3
Mesclando Ramificações
git checkout master
# mesclando ramificações
git merge nome_da_branch -m “Mesclando seriados”
48. 2018 Gerencie as Mudanças de Seu Código Usando Git 48
Como faço para resolver
esse conflito?
Mão na Massa3
49. 2018 Gerencie as Mudanças de Seu Código Usando Git 49
Mão na Massa3
Mesclando Ramificações
50. 2018 Gerencie as Mudanças de Seu Código Usando Git 50
Mão na Massa3
Mesclando Ramificações
Editar arquivo seriados.txt (remover conflitos)
git add seriados.txt
git commit -m “seriados mesclados”
# apaga ramificação
git branch -d nome_da_branch
51. 2018 Gerencie as Mudanças de Seu Código Usando Git 51
Mão na Massa3
Ignorando arquivos
Não subir arquivos criados durante o desenvolvimento
Pasta bin
Arquivos .class ou .exe
52. 2018 Gerencie as Mudanças de Seu Código Usando Git 52
Mão na Massa3
Ignorando arquivos
Depende do projeto
https://github.com/github/gitignore
53. 2018 Gerencie as Mudanças de Seu Código Usando Git 53
Mão na Massa3
Ignorando arquivos
Depende do projeto
https://www.gitignore.io/
54. 2018 Gerencie as Mudanças de Seu Código Usando Git 54
Mão na Massa3
Dúvidas?!
55. 2018 Gerencie as Mudanças de Seu Código Usando Git 55
Mão na Massa3
Atividade Prática 1
#1 Crie um diretório chamado atividade-pratica-1 e entre
nele via terminal
#2 Use git config e informe seu nome e email
#3 git init
#4 git status
#5 Crie um arquivo anotacoes.txt nesse diretório, inclua
seu nome nesse arquivo
#6 git add anotacoes.txt
#7 git commit -m “meu primeiro commit”
#8 git status
56. 2018 Gerencie as Mudanças de Seu Código Usando Git 56
Mão na Massa3
Atividade Prática 1
#9 Crie uma branch e chame de feedback (git checkout -b
feedback)
#10 Abra o arquivo anotacoes.txt e veja se contém seu
nome
#11 Altere o anotacoes.txt (nessa branch), apague seu
nome e digite o que achou da aula :)
#12 git status
#13 git add anotacoes.txt
#14 git commit -m “meu commit na branch feedback”
57. 2018 Gerencie as Mudanças de Seu Código Usando Git 57
Mão na Massa3
Atividade Prática 1
#15 Mude para a branch master e faça o merge com a
branch feedback
#16 Resolva o conflito (edite o arquivo anotacoes.txt)
#17 git add anotacoes.txt
#18 git commit -m “resolvendo conflitos”
#19 delete a branch feedback
58. 2018 Gerencie as Mudanças de Seu Código Usando Git 58
Mão na Massa3
Para próxima aula
Configurando acesso ao Github por SSH
Gerando a chave SSH
Adicionando chave SSH
Elaboração de projeto
Criar repositório remoto
Elaborar um projeto em equipe
Enviar para repositório remoto
59. 2018 Gerencie as Mudanças de Seu Código Usando Git 59
Mão na Massa3
Criando Repositório no Github
Acesse o site github.com e crie uma conta
60. 2018 Gerencie as Mudanças de Seu Código Usando Git 60
Mão na Massa3
Configurando chave SSH
#criar chave ssh
ssh-keygen -t rsa -b 4096 -C “seu e-mail"
#copiar chave ssh e armazenar no github
cat ~/.ssh/id_rsa.pub
61. 2018 Gerencie as Mudanças de Seu Código Usando Git 61
Mão na Massa3
Como funciona o Git (remoto)?
Git (2018)
62. 2018 Gerencie as Mudanças de Seu Código Usando Git 62
Mão na Massa3
Revisão Scrum
63. 2018 Gerencie as Mudanças de Seu Código Usando Git 63
Mão na Massa3
Revisão Scrum
64. 2018 Gerencie as Mudanças de Seu Código Usando Git 64
Mão na Massa3
Formando Equipes
65. 2018 Gerencie as Mudanças de Seu Código Usando Git 65
Mão na Massa3
Projeto
Gato
- cor: String
- nome: String
- idade: int
+ correr(): void
+ dormir(): void
+ comer(): void
66. 2017 Gerencie as Mudanças de Seu Código Usando Git 66
http://rogerdudler.github.io/git-guide/index.pt_BR.html
Mão na Massa3
67. 2018 Gerencie as Mudanças de Seu Código Usando Git 67
Mão na Massa3
Roteiro
#1 Criar repositório, adicionar colaboradores e criar o
arquivo .gitignore
#2 Fazer o clone do repositório
#3 Separar funcionalidades em branches
#4 Fazer merge das branches
#5 Enviar para o repositório remoto
69. 2017 Gerencie as Mudanças de Seu Código Usando Git 69
Próximos Passos
Título: Pro Git
Autores: Scott Chacon e Bem Straub
Editora: Apress
Edição: 2ª
Ano: 2014
Quantidade de Páginas: 456
70. 2017 Gerencie as Mudanças de Seu Código Usando Git 70
Próximos Passos
Título: Controlando versões com Git e
GitHub
Autores: Alexandre Aquiles, Rodrigo
Ferreira
Editora: Casa do Código
Edição: 1ª
Ano: 2014
Quantidade de Páginas: 199
71. 2017 Gerencie as Mudanças de Seu Código Usando Git 71
Próximos Passos
https://try.github.io
72. 2017 Gerencie as Mudanças de Seu Código Usando Git 72
Próximos Passos
http://rogerdudler.github.io/git-guide/index.pt_BR.html
73. 2018 Gerencie as Mudanças de Seu Código Usando Git 73
orlewilsonmaiaprof.orlewilson@gmail.com
https://github.com/orlewilsonorlewilson
75. 2018 Mídias Sociais e Redes Sociais 752018/1 Sistemas Operacionais 75
Recapitulando...
Importância de gerenciar
mudanças
Como gerenciar códigos
Principais comandos
Git
76. Gerencie as Mudanças de Seu Código
Usando Git
Prof. Orlewilson Bentes Maia
prof.orlewilson@gmail.com
77. Gerencie as Mudanças de Seu Código Usando Git
Referências Utilizadas
AprendendoWWW. Controle de Versão,Git, Github e Bitbucket – Afinal, o que é
tudo isso? Disponível em:
<https://aprendendowww.wordpress.com/2015/02/20/controle-de-versaogit-
github-e-bitbucket-afinal-o-que-e-tudo-isso/>. Acesso em: 05/02/2018.
Git. Getting Started - Git Basics. Disponível em: <https://git-
scm.com/book/en/v2/Getting-Started-Git-Basics>. Acesso em: 05/02/2018.
Pressman, R. S. Engenharia de Software: Uma Abordagem Profissional. 6 ed.
São Paulo: McGraw-Hill, 2006. 720 p.
Orlandi, Bruno. Git, primeiros passos. Disponível em:
<https://brorlandi.github.io/2017/03/12/Git-primeiros-passos/>. Acesso em:
05/02/2018.
78. Gerencie as Mudanças de Seu Código Usando Git
Referências Utilizadas
Orlandi, Bruno. Git, desfazendo commits. Disponível em:
<https://brorlandi.github.io/git-desfazendo-commits>. Acesso em: 05/02/2018.
Santiago, Victor Hugo. Gerenciamento de Configuração de Software.
Disponível em:
<https://edisciplinas.usp.br/pluginfile.php/3351604/mod_resource/content/1/
Aula_GCS.pdf>. Acesso em: 05/02/2017.
Sink, Eric. Version Control by Example. Disponível em:
<http://ericsink.com/vcbe/vcbe_a4_lo.pdf>. Acesso em: 05/02/2017.