EIIFRO2014 - Desenvolvimento Colaborativo de Software

Aldson Diego
Aldson DiegoProfessor EBTT en IFRO (Instituto Federal de Educação, Ciência e Tecnologia de Rondônia
EIIFRO2014 - Desenvolvimento Colaborativo de Software
CONTEÚDO 
- Visão Geral 
- Controle de Versão Git 
- Gerenciamento de Projeto com Github 
- Projeto Prático – Aplicações de Conceitos
Tudo começa com o “Grande Projeto” 
• A partir de uma ideia 
• Oportunidade de negócio 
• Necessidade
Como elaborar o “Grande Projeto”?
Recorrer a Engenharia de Software?
Conjunto de Requisitos | Cronograma
Como Desenvolver o Projeto? 
Esta ideia é brilhante acredito que posso realizar sozinho 
Assim ficarei com todo dinheiro que ganhar sem precisar dividir 
DESENVOLVEDOR INDIVIDUAL
Como Desenvolver o Projeto? 
Temos pessoal capacitado para realizar o projeto? 
Temos recursos suficientes para bancar o projeto? 
EMPRESA
Desenvolvendo o Projeto
Durante o desenvolvimento 
ENTREGA FORA DO PRAZO 
AUMENTO DE CUSTO 
INÚMEROS BUGS 
SOBRECARGA... 
SOBRECARGA... 
SOBRECARGA... 
ESTRESSE... 
ESTRESSE...
Você escolheria este processo?
Possíveis resultados 
-Nunca começar 
-Nunca concluir 
-Software de baixa qualidade 
-Não atender necessidades do cliente 
-Não evoluir ou lenta evolução
Prejuízo e projeto cancelado
E todos...
Por que isso acontece? 
Cérebro, um software complexo?
Analogia sobre complexidade 
A união faz a força
Dividir pra conquistar 
Alocar tarefas a pessoas de acordo com suas habilidades.
Complexidade muda de lado 
Como receber partes do software e integrá-las a próxima versão? 
Como gerenciar pessoas que participam do projeto?
Controle de Versão
Controle de Versão 
- Permite gerenciar mudanças; 
- Identificar autor da mudança; 
- Mesclar versões; 
- Lançar “releases” estáveis.
1.0 
1.1 
1.2 
Exemplo
Controle de Versão - TIPOS 
- Local 
- Centralizado 
- Distribuido
Controle de Versão - TIPOS 
Local 
1.0 
1.1 
1.2 
1.3
Controle de Versão - TIPOS 
Centralizado
Controle de Versão - TIPOS 
Distribuído
Introdução ao GIT 
- Sistema de Controle Distribuído; 
- Inicialmente projetado para o de- senvolvimento do kernel do Linux; 
- Seu criador Linus Torvalds.
EIIFRO2014 - Desenvolvimento Colaborativo de Software
Instalação do GIT 
http://goo.gl/fID5mg
Prática 
a)Crie uma pasta na área de trabalho 
b)Abra o Git Bash com botão direito
Terminal do Git - Navegação 
a)Acessar uma pasta ou diretório 
$ cd NomeDaPasta 
b) Retrocedor diretório anterior 
$ cd .. 
c) Outros 
$ mkdir pasta //cria uma pasta 
$ touch file.txt // cria um arquivo 
$ ls //lista arquivos e pastas do diretório 
$ ls –a // com “-a” também arquivos ocultos
Prática 
a)Crie um arquivo “seuNome.txt” 
a)Insira as seguintes informações no arquivo com os seus dados : 
$ touch seuNome.txt $ notepad seuNome.txt 
I EIIFRO 2014 - Desenvolvimento Colaborativo de Software Participante: _ _ _ _ _ _ _ _ Email: _ _ _ _ _ _ _ _ _ _ _ _ Campus Origem: _ _ _ _ _ _
Prática 
b) Inicie o repositório GIT 
$ git config --global user.name “Seu nome Aqui” 
$ git config --global user.email “seu_nome@exemplo.com” 
a) Define as configurações globais 
$ git init
Ciclos de inserção, modificação ou exclusão de arquivos.
Prática 
$ git status 
# On branch master 
# Untracked files: 
# (use "git add <file>..." to include in what will be committed) 
# 
# seuNome.txt 
nothing added to commit but untracked files present (use "git add" to track) 
a) Ver status atual dos arquivos.
Exemplos 
b) Adicionar todos do diretório atual 
$ git add seuNome.txt 
a) Adicionar um arquivo 
$ git add . 
c) Adicionar todos de um tipo 
$ git add *.txt
Prática 
$ git add --all 
a) Adicionar todos arquivos do projeto 
$ git add seuNome.txt $ git status # On branch master # Changes to be committed: # (use "git rm –cached <file>..." to unstage) # # new file: seuNome.txt #
Exemplo 
$ git commit 
a) Criando a primeira versão 
l 
# Please enter the commit message for your changes. Lines starting 
# with ‘#’ will be ignored, and an empty message aborts the commit. 
# On branch master 
# 
# Initial commit 
# 
# Changes to be committed 
# new file: seuNome.txt
Prática 
$ git commit –m “Commit Inicial” 
a) Do jeito mais fácil 
# [master (root-commit) 27a9d36] Commit Inicial 
# 1 file changed, 4 insertions (+) 
# create mode 100644 seuNome.txt 
$ git status 
b) Veja o status atual 
On branch master nothing to commit, working directory clean
Prática 
a)Edite o arquivo e add + duas linhas 
Curso: _ _ _ _ _ _ _ _ _ _ _ 
Turma: _ _ _ _ _ _ _ _ _ _ _ 
I EIIFRO 2014 - Desenvolvimento Colaborativo de Software 
Participante: _ _ _ _ _ _ _ _ 
Email: _ _ _ _ _ _ _ _ _ _ _ _ 
Campus Origem: _ _ _ _ _ _ 
Curso: _ _ _ _ _ _ _ _ _ _ _ 
Turma: _ _ _ _ _ _ _ _ _ _ _ 
$ notepad seuNome.txt
Prática 
a)Salve e veja o status do arquivo. 
$ 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 work... 
# 
# modified: seuNome.txt 
# 
# no changes added to commit (use “git add” and/or ...)
Prática 
a)Adicione para o próximo commit 
$ git add seuNome.txt 
b) E confirmar nova versão 
$ git commit –m “Alteração no arquivo seuNome.txt”
Prática 
a)Crie um pasta com nome “Casa” 
$ mkdir Casa 
a)Crie o arquivo despesas.txt 
$ cd Casa $ touch despesas.txt $ notepad despesas.txt
Prática 
a)Adicione o conteúdo 
Supermercado R$ 182,60 Combustível R$ 250,00 Vestuário R$ 80,00 Farmácia R$ 67,00 Outros R$ 122,00 
Faça todos os procedimentos necessários para confirmar a terceira versão do projeto. 
$ git commit –m “add pasta ‘Casa’ e arquivo despesas.txt”
Prática 
a)Verificando versões 
$ git log 
$ git log --pretty=oneline 
9de55c49e83c8040537daa86b8ba098c5d559d46 Add da pasta 'Casa' e arquivo despesas. 
87009612804e9a9a37dcddcc02064fe825ebc4be Alteração no arquivo AldisonDiego.txt 
27a9d361341413c22666192158e27f050aae2732 Commit Inicial 
b) De uma maneira limpa e resumida
Prática 
Para cada versão confirmada, o GIT gera um hash alfanumérico de 40 caracteres, ou seja, o ID das versões. 
87009612804e9a9a37dcddcc02064fe825ebc4be
As vezes acidentes ou erros acontecem. 
a)Apague o conteúdo de seuNome.txt 
$ notepad seuNome.txt 
b) Salve e comite a quarta versão 
$ git commit –a –m “seuNome.txt em branco”
Recuperando conteúdo 
a)De volta ao passado 
$ git reset --hard HEAD~1 (volta ao último commit) 
b) Volta para o commit com a hash xx 
git reset --hard XXXXXX 
Obs: os primeiros 6 números do hash já são suficientes.
As vezes não é necessário incluir todos os arquivos no projeto 
a)Crie o arquivo “inutil.txt” 
$ touch inutil.txt 
$ notepad inutil.txt 
Este arquivo não é necessário fazer parte do projeto 
a)Adicione o conteúdo e Salve-o
As vezes não é necessário incluir todos os arquivos no projeto 
a)Veja o status 
$ git status # On branch master # Untracked files: # (use "git add <file>..." to include in what will be committed) # # inutil.txt nothing added to commit but untracked files present (use "git add" to track)
As vezes não é necessário incluir todos os arquivos no projeto 
$ touch .gitignore 
a)Crie o arquivo “.gitignore” 
.gitignore inutil.txt # pasta/ (use “/” para ignorar diretórios) 
b) Adicione as seguintes informações
As vezes não é necessário incluir todos os arquivos no projeto 
a)Veja novamente o status 
$ git status # On branch master # nothing to commit, working directory clean 
Em projetos que usam alguma ferramenta de desenvolvimento, alguns arquivos são configurações locais e devem ser ignorados.
Gerador de “.gitignore”
Documentação do git 
$ git log --help $ git status --help $ git commit --help $ git branch --help 
Adicionando “--help” a frente do comando, o git abre no navegador a documentação completa sobre o comando.
Agora que você já aprendeu o básico do GIT, vamos conhecer o:
EIIFRO2014 - Desenvolvimento Colaborativo de Software
EIIFRO2014 - Desenvolvimento Colaborativo de Software
EIIFRO2014 - Desenvolvimento Colaborativo de Software
EIIFRO2014 - Desenvolvimento Colaborativo de Software
EIIFRO2014 - Desenvolvimento Colaborativo de Software
Vamos começar 
Usuario@meupc ~/Desktop/projeto1 (master) $ cd .. Usuario@meupc ~/Desktop $ 
Crie um novo projeto, nomeie “treino” 
$ git init treino 
Navegue até o diretório “Desktop” 
Usuario@meupc ~/Desktop/ $ cd treino
Github 
Usuario@meupc ~/Desktop/treino (master) 
$ touch README.md 
$ git init 
$ git add README.md 
$ git commit -m “Commit Inicial" 
$ git remote add origin https://github.com/username/Treino.git 
$ git push -u origin master 
Faça os seguintes procedimentos 
Username for ‘https://github.com’ : aldisondias Password for ‘https://aldisondias@github.com’ : *******
EIIFRO2014 - Desenvolvimento Colaborativo de Software
Github 
#DCS - Desenvolvimento Colaborativo de Software# **I Encontro de Informática do Instituto Federal de Rondônia** ###Versão### ***1.0*** 
Edite o arquivo README.md, inserindo: 
$ git commit -a -m “Add informações no arquivo Readme.md” $ git push origin master 
Salve e digite os seguintes comandos
EIIFRO2014 - Desenvolvimento Colaborativo de Software
Facilitando a vida 
Para isso, gere uma chave na sua máquina 
Você não precisa ficar todo tempo fazendo “Login”, é possível através de uma conexão segura via SSH, permitir acesso aos repositórios da sua máquina 
$ ssh-keygen -t rsa -C “aldison.dias@ifro.edu.br” 
Generating public/private rsa key pair. 
Enter file in which to save the key (/c/Users/INFO-01/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again:
Logo após, acesse sua pasta de usuário e entre na na pasta “.ssh”
Abra o arquivo “id_rsa.pub” e copie todo seu conteúdo.
Inserindo a chave no Github 
O github precisa saber que sua máquina é confiável através da chave gerada, para isso você deve informá-lo. 
Repositório aldisondias
Acesse suas configurações do Github
Selecione “SSH keys” e clique em “Add SSH key”
Define um título para chave e insira o conteúdo copiado de “id_rsa.pub”
Repositório remoto 
Usuario@meupc ~/Desktop/treino (master) $ git remote rm origin 
Volte ao projeto e remova o remote atual 
Copie a URL SSH no Github
Repositório remoto 
Usuario@meupc ~/Desktop/treino (master) $ git remote add origin git@github.com:aldisondias/Treino.git 
Adicione a URL no seu projeto 
Edite o arquivo README, inserindo: 
... ###Autor### ***Aldison Dias*** //substitua pelo seu nome
Repositório remoto 
Usuario@meupc ~/Desktop/treino (master) $ git commit -a -m “Add autor em readme.md” Usuario@meupc ~/Desktop/treino (master) $ git push origin master 
Salve, comite e envie para o github 
Agora, ficou fácil enviar uma nova versão do projeto para o repositório remoto do Github
Alguns recursos do github
FORK 
Possibilita clonar repositórios de outras contas para a sua, assim você faz suas alterações sem depender do projeto original, porém há uma ligação. 
UNWATCH (ASSISTIR) Permite você acompanhar o projeto, todas notificações presentes irão aparecer na sua timeline do github. 
STAR 
Com esta opção você irá premiar o projeto com uma estrela e torná-lo com uns dos projetos favoritos.
RELEASES Versões finais de objetivos concluídos do projeto 
COMMITS Acompanhar, visualizar andamento das versões 
BRANCH Por padrão, o git possui a branch “master”, essas branchs “ramas” permite subdividir o projeto para uma finalidade específica e não comprometer a principal “master”, que é a branch de produção. 
CONTRIBUTORS Números de contribuidores no projeto
Visualizando commits
PULL REQUESTS 
Recurso que permite que um usuário de projeto “fork” solicite ao administrador do projeto original, aceitar suas modifi- cações para o projeto principal. 
Wiki 
Construir a documentação do projeto 
PULSE E GRAPHS 
Estatísticas do projeto. 
SETTINGS 
Configurações do projeto.
Documentação para o projeto
Seção de Issues
Seção de Issues
Issues: seção de questões do projeto, um dos mais importantes recursos do Github, com ele você pode: 
•Definir metas do projeto com “Milestone”; 
•Lançar tarefas e atribuir aos seus colaboradores; 
•Reportar erros, discutir problemas e solucioná-los junto aos colaboradores.
Definindo metas
Criando uma tarefa
Criando uma tarefa
Definir pra qual meta pertence e atribuir a tarefa a um colaborador
Definir qual meta pertence e atribuir a tarefa a um colaborador
Você deverá definir “Labels” para informar do que se trata a tarefa.
“Labels” ou etiquetas pode ter várias definições, as mais comuns: 
•Bug: um erro de código, função etc.; 
•Enhancement: melhoria a ser implementada. 
•Front-end: codificação e marcação do lado do cliente(HTML, CSS e Javascript); 
•Back-end: issues relacionados à implementação do back- end; 
•Duplicate: informar algo duplicado 
•Feature: implementação de nova funcionalidade; 
•Invalid: quando algo é inválido 
•Question: para debater algo e decidir entre os membros. 
•Wontfix: issues sem soluções;
Comentários na Issue
Uma issue possui dois estados (Open, Closed), assim que o objetivo for concluído ela deve ser fechada.
Assim que as issues da milestone vão sendo concluídas, acompanhamos a progressão de conclusão da meta.
Adicionando colaboradores
Adicionando colaboradores
Clonando o Repositório 
Usuario@meupc ~/Desktop/treino (master) $ git clone git@github.com:aldisondias/Treino.git 
Clone o seu próprio repositório 
Você pode renomeá-lo 
Usuario@meupc ~/Desktop/treino (master) $ git clone git@github.com:aldisondias/Treino.git novoNome 
Ele já vem com o repositório remoto configurado, pronto para o trabalhar.
Clonando o Repositório 
https://github.com/twbs/bootstrap 
https://github.com/jquery/jquery 
https://github.com/bcit-ci/CodeIgniter 
Faça download de outros projetos 
Escolha um e copie a URL “https” pra clonar 
Usuario@meupc ~/Desktop/treino (master) $ git clone https://github.com/jquery/jquery.git jquery-project
Grandes projetos 
http://goo.gl/j6apP5
Grandes empresas no Github
CRÉDITOS http://git-scm.com/book/pt-br https://training.github.com/kit/downloads/pt/github-git-cheat-sheet.pdf https://training.github.com/ http://dev.rbtech.info/curso-controle-versao-git-aula-1/ http://git-scm.com/book/pt-br/v1/Git-Essencial-Gravando-Altera%C3%A7%C3%B5es-no-Reposit%C3%B3rio http://blog.gustavohenrique.net/2011/03/comandos-basicos-do-git http://www.neuroniodigital.com.br/empresas-no-github http://naofalacomputa.blogspot.com.br/2013/02/como-utilizar-issues-do-github.html https://guides.github.com/features/issues/index.html http://adereth.github.io/blog/2013/12/23/counting-stars-on-github https://help.github.com/articles/creating-releases https://github.com/trending http://www.computerworld.com/article/2473298/application-development/120001-GitHub-s-top-10-rock-star- projects.html http://www.akitaonrails.com/2010/08/17/screencast-comecando-com-git
EIIFRO2014 - Desenvolvimento Colaborativo de Software
1 de 101

Más contenido relacionado

La actualidad más candente

Git+githubGit+github
Git+githubGuilherme Lima Pereira
591 vistas86 diapositivas
Controle de Versões com GitControle de Versões com Git
Controle de Versões com GitVagner Santana
831 vistas40 diapositivas
GitGit
GitIlan Pegoraro
498 vistas39 diapositivas
Git e GitHubGit e GitHub
Git e GitHubLeonardo Marcelino
929 vistas45 diapositivas

La actualidad más candente(20)

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
Bruno Calheira1.4K vistas
Git+githubGit+github
Git+github
Guilherme Lima Pereira591 vistas
Controle de Versões com GitControle de Versões com Git
Controle de Versões com Git
Vagner Santana831 vistas
GitGit
Git
Ilan Pegoraro498 vistas
Git e GitHubGit e GitHub
Git e GitHub
Leonardo Marcelino929 vistas
Git Rápido e FácilGit Rápido e Fácil
Git Rápido e Fácil
Giordano Alves388 vistas
Introdução ao GitIntrodução ao Git
Introdução ao Git
Walmyr Carvalho959 vistas
Git flow no projetoGit flow no projeto
Git flow no projeto
Carlos Anders255 vistas
Git - GitHubGit - GitHub
Git - GitHub
Wagner946 vistas
Git Overview: Grupo RBSGit Overview: Grupo RBS
Git Overview: Grupo RBS
Evandro Eisinger274 vistas
Controle de versão e colaboração com GitControle de versão e colaboração com Git
Controle de versão e colaboração com Git
Fernando Henrique Bonfim Moreno del Rio592 vistas
Consegi 2011: PuppetConsegi 2011: Puppet
Consegi 2011: Puppet
Jose Augusto Carvalho1.2K vistas
Git - Fluxo do Versionamento adotadoGit - Fluxo do Versionamento adotado
Git - Fluxo do Versionamento adotado
William Lima1.3K vistas

Similar a EIIFRO2014 - Desenvolvimento Colaborativo de Software

Minicurso GIT 2022 - SENACMinicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENACDanilo Pinotti
33 vistas78 diapositivas
GitGit
GitMartins Isata Isata
242 vistas28 diapositivas

Similar a EIIFRO2014 - Desenvolvimento Colaborativo de Software(20)

Minicurso GIT 2022 - SENACMinicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENAC
Danilo Pinotti33 vistas
Minicurso GIT Completo (2022)Minicurso GIT Completo (2022)
Minicurso GIT Completo (2022)
Danilo Pinotti64 vistas
Git - Rápido, seguro, eficienteGit - Rápido, seguro, eficiente
Git - Rápido, seguro, eficiente
Waldyr Felix1.9K vistas
GitGit
Git
Martins Isata Isata242 vistas
Controle de versionamento com GitControle de versionamento com Git
Controle de versionamento com Git
Raphael Cruzeiro784 vistas
Conhecendo o GITConhecendo o GIT
Conhecendo o GIT
Xhamps Rapha545 vistas
GitGit
Git
Edilton Gouveia230 vistas
Git - Não perca o que estava funcionando!Git - Não perca o que estava funcionando!
Git - Não perca o que estava funcionando!
Ana Carolina Rezende Soares170 vistas
Git e githubGit e github
Git e github
Kevin Fernandes319 vistas
Conhecendo o git.Conhecendo o git.
Conhecendo o git.
Rafael Ivan624 vistas
Git na praticaGit na pratica
Git na pratica
viniciusban741 vistas
Git ao GitHubGit ao GitHub
Git ao GitHub
Ewerton Luan77 vistas
Oficina de Git EEDACT2015Oficina de Git EEDACT2015
Oficina de Git EEDACT2015
Sérgio Bezerra da Silva48 vistas
Git & GitHub for beginnersGit & GitHub for beginners
Git & GitHub for beginners
Wendreo L. Fernandes73 vistas
Git e GitHub: Versionamento de Código FácilGit e GitHub: Versionamento de Código Fácil
Git e GitHub: Versionamento de Código Fácil
Tiago Antônio da Silva2.2K vistas
GitGit
Git
Marco Antonio Filho557 vistas
Desmistificando a ferramenta gitDesmistificando a ferramenta git
Desmistificando a ferramenta git
Diogo Souza Machado514 vistas

Último(20)

 -POR UMA ALIMENTAÇÃO SAUDÁVEL - Palestra -POR UMA ALIMENTAÇÃO SAUDÁVEL - Palestra
-POR UMA ALIMENTAÇÃO SAUDÁVEL - Palestra
Colégio Santa Teresinha438 vistas
Meteoritos caídos em PortugalMeteoritos caídos em Portugal
Meteoritos caídos em Portugal
Casa Ciências33 vistas
perguntas do BINGO FEUDALISMO.docxperguntas do BINGO FEUDALISMO.docx
perguntas do BINGO FEUDALISMO.docx
Jean Carlos Nunes Paixão24 vistas
Gabarito CAÇA PALAVRAS BANDEIRA.docxGabarito CAÇA PALAVRAS BANDEIRA.docx
Gabarito CAÇA PALAVRAS BANDEIRA.docx
Jean Carlos Nunes Paixão20 vistas
ATIVIDADE 1 - PSICOLOGIA ORGANIZACIONAL - 54/2023ATIVIDADE 1 - PSICOLOGIA ORGANIZACIONAL - 54/2023
ATIVIDADE 1 - PSICOLOGIA ORGANIZACIONAL - 54/2023
azulassessoriaacadem2112 vistas
POR UMA ALIMENTAÇÃO SAUDÁVEL - ExposiçãoPOR UMA ALIMENTAÇÃO SAUDÁVEL - Exposição
POR UMA ALIMENTAÇÃO SAUDÁVEL - Exposição
Colégio Santa Teresinha436 vistas
Feliz Ano NovoFeliz Ano Novo
Feliz Ano Novo
Lucas Araujo13 vistas
Tecnologia Hanak Anacona Ayala.docxTecnologia Hanak Anacona Ayala.docx
Tecnologia Hanak Anacona Ayala.docx
HanaAnaconaAyala11 vistas

EIIFRO2014 - Desenvolvimento Colaborativo de Software

  • 2. CONTEÚDO - Visão Geral - Controle de Versão Git - Gerenciamento de Projeto com Github - Projeto Prático – Aplicações de Conceitos
  • 3. Tudo começa com o “Grande Projeto” • A partir de uma ideia • Oportunidade de negócio • Necessidade
  • 4. Como elaborar o “Grande Projeto”?
  • 5. Recorrer a Engenharia de Software?
  • 6. Conjunto de Requisitos | Cronograma
  • 7. Como Desenvolver o Projeto? Esta ideia é brilhante acredito que posso realizar sozinho Assim ficarei com todo dinheiro que ganhar sem precisar dividir DESENVOLVEDOR INDIVIDUAL
  • 8. Como Desenvolver o Projeto? Temos pessoal capacitado para realizar o projeto? Temos recursos suficientes para bancar o projeto? EMPRESA
  • 10. Durante o desenvolvimento ENTREGA FORA DO PRAZO AUMENTO DE CUSTO INÚMEROS BUGS SOBRECARGA... SOBRECARGA... SOBRECARGA... ESTRESSE... ESTRESSE...
  • 12. Possíveis resultados -Nunca começar -Nunca concluir -Software de baixa qualidade -Não atender necessidades do cliente -Não evoluir ou lenta evolução
  • 13. Prejuízo e projeto cancelado
  • 15. Por que isso acontece? Cérebro, um software complexo?
  • 16. Analogia sobre complexidade A união faz a força
  • 17. Dividir pra conquistar Alocar tarefas a pessoas de acordo com suas habilidades.
  • 18. Complexidade muda de lado Como receber partes do software e integrá-las a próxima versão? Como gerenciar pessoas que participam do projeto?
  • 20. Controle de Versão - Permite gerenciar mudanças; - Identificar autor da mudança; - Mesclar versões; - Lançar “releases” estáveis.
  • 21. 1.0 1.1 1.2 Exemplo
  • 22. Controle de Versão - TIPOS - Local - Centralizado - Distribuido
  • 23. Controle de Versão - TIPOS Local 1.0 1.1 1.2 1.3
  • 24. Controle de Versão - TIPOS Centralizado
  • 25. Controle de Versão - TIPOS Distribuído
  • 26. Introdução ao GIT - Sistema de Controle Distribuído; - Inicialmente projetado para o de- senvolvimento do kernel do Linux; - Seu criador Linus Torvalds.
  • 28. Instalação do GIT http://goo.gl/fID5mg
  • 29. Prática a)Crie uma pasta na área de trabalho b)Abra o Git Bash com botão direito
  • 30. Terminal do Git - Navegação a)Acessar uma pasta ou diretório $ cd NomeDaPasta b) Retrocedor diretório anterior $ cd .. c) Outros $ mkdir pasta //cria uma pasta $ touch file.txt // cria um arquivo $ ls //lista arquivos e pastas do diretório $ ls –a // com “-a” também arquivos ocultos
  • 31. Prática a)Crie um arquivo “seuNome.txt” a)Insira as seguintes informações no arquivo com os seus dados : $ touch seuNome.txt $ notepad seuNome.txt I EIIFRO 2014 - Desenvolvimento Colaborativo de Software Participante: _ _ _ _ _ _ _ _ Email: _ _ _ _ _ _ _ _ _ _ _ _ Campus Origem: _ _ _ _ _ _
  • 32. Prática b) Inicie o repositório GIT $ git config --global user.name “Seu nome Aqui” $ git config --global user.email “seu_nome@exemplo.com” a) Define as configurações globais $ git init
  • 33. Ciclos de inserção, modificação ou exclusão de arquivos.
  • 34. Prática $ git status # On branch master # Untracked files: # (use "git add <file>..." to include in what will be committed) # # seuNome.txt nothing added to commit but untracked files present (use "git add" to track) a) Ver status atual dos arquivos.
  • 35. Exemplos b) Adicionar todos do diretório atual $ git add seuNome.txt a) Adicionar um arquivo $ git add . c) Adicionar todos de um tipo $ git add *.txt
  • 36. Prática $ git add --all a) Adicionar todos arquivos do projeto $ git add seuNome.txt $ git status # On branch master # Changes to be committed: # (use "git rm –cached <file>..." to unstage) # # new file: seuNome.txt #
  • 37. Exemplo $ git commit a) Criando a primeira versão l # Please enter the commit message for your changes. Lines starting # with ‘#’ will be ignored, and an empty message aborts the commit. # On branch master # # Initial commit # # Changes to be committed # new file: seuNome.txt
  • 38. Prática $ git commit –m “Commit Inicial” a) Do jeito mais fácil # [master (root-commit) 27a9d36] Commit Inicial # 1 file changed, 4 insertions (+) # create mode 100644 seuNome.txt $ git status b) Veja o status atual On branch master nothing to commit, working directory clean
  • 39. Prática a)Edite o arquivo e add + duas linhas Curso: _ _ _ _ _ _ _ _ _ _ _ Turma: _ _ _ _ _ _ _ _ _ _ _ I EIIFRO 2014 - Desenvolvimento Colaborativo de Software Participante: _ _ _ _ _ _ _ _ Email: _ _ _ _ _ _ _ _ _ _ _ _ Campus Origem: _ _ _ _ _ _ Curso: _ _ _ _ _ _ _ _ _ _ _ Turma: _ _ _ _ _ _ _ _ _ _ _ $ notepad seuNome.txt
  • 40. Prática a)Salve e veja o status do arquivo. $ 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 work... # # modified: seuNome.txt # # no changes added to commit (use “git add” and/or ...)
  • 41. Prática a)Adicione para o próximo commit $ git add seuNome.txt b) E confirmar nova versão $ git commit –m “Alteração no arquivo seuNome.txt”
  • 42. Prática a)Crie um pasta com nome “Casa” $ mkdir Casa a)Crie o arquivo despesas.txt $ cd Casa $ touch despesas.txt $ notepad despesas.txt
  • 43. Prática a)Adicione o conteúdo Supermercado R$ 182,60 Combustível R$ 250,00 Vestuário R$ 80,00 Farmácia R$ 67,00 Outros R$ 122,00 Faça todos os procedimentos necessários para confirmar a terceira versão do projeto. $ git commit –m “add pasta ‘Casa’ e arquivo despesas.txt”
  • 44. Prática a)Verificando versões $ git log $ git log --pretty=oneline 9de55c49e83c8040537daa86b8ba098c5d559d46 Add da pasta 'Casa' e arquivo despesas. 87009612804e9a9a37dcddcc02064fe825ebc4be Alteração no arquivo AldisonDiego.txt 27a9d361341413c22666192158e27f050aae2732 Commit Inicial b) De uma maneira limpa e resumida
  • 45. Prática Para cada versão confirmada, o GIT gera um hash alfanumérico de 40 caracteres, ou seja, o ID das versões. 87009612804e9a9a37dcddcc02064fe825ebc4be
  • 46. As vezes acidentes ou erros acontecem. a)Apague o conteúdo de seuNome.txt $ notepad seuNome.txt b) Salve e comite a quarta versão $ git commit –a –m “seuNome.txt em branco”
  • 47. Recuperando conteúdo a)De volta ao passado $ git reset --hard HEAD~1 (volta ao último commit) b) Volta para o commit com a hash xx git reset --hard XXXXXX Obs: os primeiros 6 números do hash já são suficientes.
  • 48. As vezes não é necessário incluir todos os arquivos no projeto a)Crie o arquivo “inutil.txt” $ touch inutil.txt $ notepad inutil.txt Este arquivo não é necessário fazer parte do projeto a)Adicione o conteúdo e Salve-o
  • 49. As vezes não é necessário incluir todos os arquivos no projeto a)Veja o status $ git status # On branch master # Untracked files: # (use "git add <file>..." to include in what will be committed) # # inutil.txt nothing added to commit but untracked files present (use "git add" to track)
  • 50. As vezes não é necessário incluir todos os arquivos no projeto $ touch .gitignore a)Crie o arquivo “.gitignore” .gitignore inutil.txt # pasta/ (use “/” para ignorar diretórios) b) Adicione as seguintes informações
  • 51. As vezes não é necessário incluir todos os arquivos no projeto a)Veja novamente o status $ git status # On branch master # nothing to commit, working directory clean Em projetos que usam alguma ferramenta de desenvolvimento, alguns arquivos são configurações locais e devem ser ignorados.
  • 53. Documentação do git $ git log --help $ git status --help $ git commit --help $ git branch --help Adicionando “--help” a frente do comando, o git abre no navegador a documentação completa sobre o comando.
  • 54. Agora que você já aprendeu o básico do GIT, vamos conhecer o:
  • 60. Vamos começar Usuario@meupc ~/Desktop/projeto1 (master) $ cd .. Usuario@meupc ~/Desktop $ Crie um novo projeto, nomeie “treino” $ git init treino Navegue até o diretório “Desktop” Usuario@meupc ~/Desktop/ $ cd treino
  • 61. Github Usuario@meupc ~/Desktop/treino (master) $ touch README.md $ git init $ git add README.md $ git commit -m “Commit Inicial" $ git remote add origin https://github.com/username/Treino.git $ git push -u origin master Faça os seguintes procedimentos Username for ‘https://github.com’ : aldisondias Password for ‘https://aldisondias@github.com’ : *******
  • 63. Github #DCS - Desenvolvimento Colaborativo de Software# **I Encontro de Informática do Instituto Federal de Rondônia** ###Versão### ***1.0*** Edite o arquivo README.md, inserindo: $ git commit -a -m “Add informações no arquivo Readme.md” $ git push origin master Salve e digite os seguintes comandos
  • 65. Facilitando a vida Para isso, gere uma chave na sua máquina Você não precisa ficar todo tempo fazendo “Login”, é possível através de uma conexão segura via SSH, permitir acesso aos repositórios da sua máquina $ ssh-keygen -t rsa -C “aldison.dias@ifro.edu.br” Generating public/private rsa key pair. Enter file in which to save the key (/c/Users/INFO-01/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again:
  • 66. Logo após, acesse sua pasta de usuário e entre na na pasta “.ssh”
  • 67. Abra o arquivo “id_rsa.pub” e copie todo seu conteúdo.
  • 68. Inserindo a chave no Github O github precisa saber que sua máquina é confiável através da chave gerada, para isso você deve informá-lo. Repositório aldisondias
  • 70. Selecione “SSH keys” e clique em “Add SSH key”
  • 71. Define um título para chave e insira o conteúdo copiado de “id_rsa.pub”
  • 72. Repositório remoto Usuario@meupc ~/Desktop/treino (master) $ git remote rm origin Volte ao projeto e remova o remote atual Copie a URL SSH no Github
  • 73. Repositório remoto Usuario@meupc ~/Desktop/treino (master) $ git remote add origin git@github.com:aldisondias/Treino.git Adicione a URL no seu projeto Edite o arquivo README, inserindo: ... ###Autor### ***Aldison Dias*** //substitua pelo seu nome
  • 74. Repositório remoto Usuario@meupc ~/Desktop/treino (master) $ git commit -a -m “Add autor em readme.md” Usuario@meupc ~/Desktop/treino (master) $ git push origin master Salve, comite e envie para o github Agora, ficou fácil enviar uma nova versão do projeto para o repositório remoto do Github
  • 76. FORK Possibilita clonar repositórios de outras contas para a sua, assim você faz suas alterações sem depender do projeto original, porém há uma ligação. UNWATCH (ASSISTIR) Permite você acompanhar o projeto, todas notificações presentes irão aparecer na sua timeline do github. STAR Com esta opção você irá premiar o projeto com uma estrela e torná-lo com uns dos projetos favoritos.
  • 77. RELEASES Versões finais de objetivos concluídos do projeto COMMITS Acompanhar, visualizar andamento das versões BRANCH Por padrão, o git possui a branch “master”, essas branchs “ramas” permite subdividir o projeto para uma finalidade específica e não comprometer a principal “master”, que é a branch de produção. CONTRIBUTORS Números de contribuidores no projeto
  • 79. PULL REQUESTS Recurso que permite que um usuário de projeto “fork” solicite ao administrador do projeto original, aceitar suas modifi- cações para o projeto principal. Wiki Construir a documentação do projeto PULSE E GRAPHS Estatísticas do projeto. SETTINGS Configurações do projeto.
  • 83. Issues: seção de questões do projeto, um dos mais importantes recursos do Github, com ele você pode: •Definir metas do projeto com “Milestone”; •Lançar tarefas e atribuir aos seus colaboradores; •Reportar erros, discutir problemas e solucioná-los junto aos colaboradores.
  • 87. Definir pra qual meta pertence e atribuir a tarefa a um colaborador
  • 88. Definir qual meta pertence e atribuir a tarefa a um colaborador
  • 89. Você deverá definir “Labels” para informar do que se trata a tarefa.
  • 90. “Labels” ou etiquetas pode ter várias definições, as mais comuns: •Bug: um erro de código, função etc.; •Enhancement: melhoria a ser implementada. •Front-end: codificação e marcação do lado do cliente(HTML, CSS e Javascript); •Back-end: issues relacionados à implementação do back- end; •Duplicate: informar algo duplicado •Feature: implementação de nova funcionalidade; •Invalid: quando algo é inválido •Question: para debater algo e decidir entre os membros. •Wontfix: issues sem soluções;
  • 92. Uma issue possui dois estados (Open, Closed), assim que o objetivo for concluído ela deve ser fechada.
  • 93. Assim que as issues da milestone vão sendo concluídas, acompanhamos a progressão de conclusão da meta.
  • 96. Clonando o Repositório Usuario@meupc ~/Desktop/treino (master) $ git clone git@github.com:aldisondias/Treino.git Clone o seu próprio repositório Você pode renomeá-lo Usuario@meupc ~/Desktop/treino (master) $ git clone git@github.com:aldisondias/Treino.git novoNome Ele já vem com o repositório remoto configurado, pronto para o trabalhar.
  • 97. Clonando o Repositório https://github.com/twbs/bootstrap https://github.com/jquery/jquery https://github.com/bcit-ci/CodeIgniter Faça download de outros projetos Escolha um e copie a URL “https” pra clonar Usuario@meupc ~/Desktop/treino (master) $ git clone https://github.com/jquery/jquery.git jquery-project
  • 100. CRÉDITOS http://git-scm.com/book/pt-br https://training.github.com/kit/downloads/pt/github-git-cheat-sheet.pdf https://training.github.com/ http://dev.rbtech.info/curso-controle-versao-git-aula-1/ http://git-scm.com/book/pt-br/v1/Git-Essencial-Gravando-Altera%C3%A7%C3%B5es-no-Reposit%C3%B3rio http://blog.gustavohenrique.net/2011/03/comandos-basicos-do-git http://www.neuroniodigital.com.br/empresas-no-github http://naofalacomputa.blogspot.com.br/2013/02/como-utilizar-issues-do-github.html https://guides.github.com/features/issues/index.html http://adereth.github.io/blog/2013/12/23/counting-stars-on-github https://help.github.com/articles/creating-releases https://github.com/trending http://www.computerworld.com/article/2473298/application-development/120001-GitHub-s-top-10-rock-star- projects.html http://www.akitaonrails.com/2010/08/17/screencast-comecando-com-git