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.
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:
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’ : *******
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
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

EIIFRO2014 - Desenvolvimento Colaborativo de Software

  • 2.
    CONTEÚDO - VisãoGeral - Controle de Versão Git - Gerenciamento de Projeto com Github - Projeto Prático – Aplicações de Conceitos
  • 3.
    Tudo começa como “Grande Projeto” • A partir de uma ideia • Oportunidade de negócio • Necessidade
  • 4.
    Como elaborar o“Grande Projeto”?
  • 5.
  • 6.
  • 7.
    Como Desenvolver oProjeto? Esta ideia é brilhante acredito que posso realizar sozinho Assim ficarei com todo dinheiro que ganhar sem precisar dividir DESENVOLVEDOR INDIVIDUAL
  • 8.
    Como Desenvolver oProjeto? Temos pessoal capacitado para realizar o projeto? Temos recursos suficientes para bancar o projeto? EMPRESA
  • 9.
  • 10.
    Durante o desenvolvimento ENTREGA FORA DO PRAZO AUMENTO DE CUSTO INÚMEROS BUGS SOBRECARGA... SOBRECARGA... SOBRECARGA... ESTRESSE... ESTRESSE...
  • 11.
  • 12.
    Possíveis resultados -Nuncacomeçar -Nunca concluir -Software de baixa qualidade -Não atender necessidades do cliente -Não evoluir ou lenta evolução
  • 13.
  • 14.
  • 15.
    Por que issoacontece? 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 delado Como receber partes do software e integrá-las a próxima versão? Como gerenciar pessoas que participam do projeto?
  • 19.
  • 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 umapasta 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 umarquivo “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) Inicieo 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 $ gitstatus # 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) Adicionartodos 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 $ gitadd --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 $ gitcommit 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 $ gitcommit –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 oarquivo 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 eveja 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 parao 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 umpasta com nome “Casa” $ mkdir Casa a)Crie o arquivo despesas.txt $ cd Casa $ touch despesas.txt $ notepad despesas.txt
  • 43.
    Prática a)Adicione oconteú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 cadaversão confirmada, o GIT gera um hash alfanumérico de 40 caracteres, ou seja, o ID das versões. 87009612804e9a9a37dcddcc02064fe825ebc4be
  • 46.
    As vezes acidentesou 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)Devolta 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.
  • 52.
  • 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, acessesua 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 chaveno 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
  • 69.
  • 70.
    Selecione “SSH keys”e clique em “Add SSH key”
  • 71.
    Define um títulopara 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
  • 75.
  • 76.
    FORK Possibilita clonarrepositó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 finaisde 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
  • 78.
  • 79.
    PULL REQUESTS Recursoque 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.
  • 80.
  • 81.
  • 82.
  • 83.
    Issues: seção dequestõ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.
  • 84.
  • 85.
  • 86.
  • 87.
    Definir pra qualmeta pertence e atribuir a tarefa a um colaborador
  • 88.
    Definir qual metapertence e atribuir a tarefa a um colaborador
  • 89.
    Você deverá definir“Labels” para informar do que se trata a tarefa.
  • 90.
    “Labels” ou etiquetaspode 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;
  • 91.
  • 92.
    Uma issue possuidois estados (Open, Closed), assim que o objetivo for concluído ela deve ser fechada.
  • 93.
    Assim que asissues da milestone vão sendo concluídas, acompanhamos a progressão de conclusão da meta.
  • 94.
  • 95.
  • 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
  • 98.
  • 99.
  • 100.
    CRÉDITOS http://git-scm.com/book/pt-br https://training.github.com/kit/downloads/pt/github-git-cheat-sheet.pdfhttps://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