Mudanças entre as edições de "Metodologia de uso do GitHub em projetos"

De GEATI - Grupo de Estudos Avançados em TI
Ir para: navegação, pesquisa
(PRIMEIRA ETAPA: Ações do Gerente de Projeto)
Linha 1: Linha 1:
 
Neste tutorial é apresentado uma Metodologia de uso do ''GitHub'' para gerenciar projetos (TC, Pesquisa etc.)
 
Neste tutorial é apresentado uma Metodologia de uso do ''GitHub'' para gerenciar projetos (TC, Pesquisa etc.)
 +
==Cenário de uso==
 +
Este tutorial apresenta uma metodologia de trabalho simples para ser adotada no gerenciamento de código de um projeto.
 +
A ideia central é separar o código EM PRODUÇÃO (''master'') do código EM DESENVOLVIMENTO (''branch'').
 +
O aluno trabalha em um ''branch'' e o professor é responsável por atualizar o ''master''. Assim, podem coexistir um único ''master'' e vários ''branches''.
 +
O tutorial também considera que é um projeto PRIVADO. Para projetos públicos pode mudar alguns passos.
  
 
==Atores==
 
==Atores==

Edição das 16h25min de 9 de dezembro de 2016

Neste tutorial é apresentado uma Metodologia de uso do GitHub para gerenciar projetos (TC, Pesquisa etc.)

Cenário de uso

Este tutorial apresenta uma metodologia de trabalho simples para ser adotada no gerenciamento de código de um projeto. A ideia central é separar o código EM PRODUÇÃO (master) do código EM DESENVOLVIMENTO (branch). O aluno trabalha em um branch e o professor é responsável por atualizar o master. Assim, podem coexistir um único master e vários branches. O tutorial também considera que é um projeto PRIVADO. Para projetos públicos pode mudar alguns passos.

Atores

Professor
Responsável pelo projeto e por gerenciar o código (Gerente de Projeto)
Aluno
Responsável pelo desenvolvimento do código

Glossário

Aqui você encontra a explicação de alguns termos usados no decorrer deste tutorial

Dono_do_projeto
É o usuário do professor responsável pelo projeto no GitHub, também caracterizado como Gerente de Projeto
P.ex.:
GEATI-IFC
Link_producao
É o link (endereço) do repositório principal do projeto
P.ex.:
https://github.com/GEATI-IFC/teste 
Branch_de_trabalho
É o branch atualmente em uso (versão em desenvolvimento do projeto)
P.ex.:
versao-0.0.1
Link_clone
É o link (endereço) do clone do projeto criado no GitHub, com o login do aluno
P.ex.:
https://github.com/ALUNO_GH/teste

PRIMEIRA ETAPA: Ações do Gerente de Projeto

P01. Criar um novo repositório no GitHub
Atenção para definir o repositório como Público ou Privado
Após a criação, anotar o link do repositório (Link_producao).
P. ex.:
https://github.com/GEATI-IFC/teste
Adicionar a licença e inicializar o repositório com um README
Na dúvida, pode usar GNU General Public Licence v3.0
P02. Criar um branch para a nova versão do código a ser desenvolvido
Sugestão para numerar versões: versão a.b.c.d - sendo
'a': 1o. nível - versão principal
'b': 2o. nível - geralmente usado quando novas funcionalidades são adicionadas na versão principal
'c': 3o. nível - usado para indicar correções de bugs
'd': 4o. nível - usado para indicar compilações.
Para nomear um branch use até o 3o. nível da versão
P.ex.:
versao-0.0.1
P03. No caso de repositório Privado, colocar o aluno como Colaborador nas configurações do repositório (???)
O aluno deve ter um cadastro no GitHub e passar o código do seu usuário para o professor
P. ex.:
ALUNO_GH
P04. Passar o Link_produção e o Branch_de_trabalho para o aluno
P. ex.:
Link_producao = https://github.com/GEATI-IFC/teste 
Branch_de_trabalho = versao-0.0.1

SEGUNDO PASSO: Ações do Aluno

Neste passo, o aluno vai preparar o ambiente de desenvolvimento e sincronizar sua pasta de trabalho com o Projeto principal no GitHub.

P05. Criar uma pasta de desenvolvimento na estação de trabalho do aluno
A ideia é deixar organizado o ambiente de desenvolvimento no computador usado pelo aluno
P.ex.:
 D:\Documentos\ProjetosProgramacao

No site do GitHub

P06. Criar uma conta do aluno no GitHub (se ainda não tiver sido feito)
P07. O aluno deve fazer login no GitHub e acessar o link principal do projeto, ou seja, o Link_producao
P08. Fazer um Fork do projeto principal
P09. Na aba <>CODE, botão Clone or download, copiar o endereço do clone no repositório do aluno (Link_clone), para depois criar um clone do projeto via linha de comando
P.ex.:
https://github.com/ALUNO_GH/teste.git

No TERMINAL (ou Prompt de comando)

P10. Na pasta de desenvolvimento, executar o comando
git clone Link_clone
Este comando vai criar uma pasta do projeto na pasta de desenvolvimento no computador do aluno
P.ex.:
 git clone https://github.com/ALUNO_GH/teste.git
P11. Acessar a pasta do projeto
P.ex:
cd  D:\Documentos\ProjetosProgramacao\teste
P12. Adicionar o repositório remoto do projeto
alias_dono_projeto é um apelido atribuido para a conexão
git remote add alias_dono_projeto Link_do_producao
P.ex.:
git remote add GEATI  https://github.com/GEATI-IFC/teste
P13. Atualiza o código na pasta local com a versão do branch no repositório remoto do aluno
git checkout -b Branch_trabalho

P.ex.:

git checkout -b versao-0.0.1
P14. Sincroniza os repositorios local e remoto
git fetch alias_dono_projeto Branch_trabalho
P.ex.:
git fetch GEATI versao-0.0.1

Ações do dia a dia

Pronto, a partir de agora o aluno pode iniciar o desenvolvimento de seu projeto localmente e periodicamente fazer a sincronização do código com o GitHub. No dia-a-dia, o aluno terá apenas 4 (quatro) sequências de comandos para executar. Sugere-se que os passos P16 a P18 sejam executados regularmente.

P15. Atualiza a pasta local conforme o repositorio remoto do aluno
origin é um atalho padrão para o repositório do aluno
git pull origin Branch_de_trabalho

P.ex.:

git pull origin versao-0.0.1  
P16. Adiciona os arquivos para commit
git add *
git add nome_de_arquivos

P.ex.:

git add *
P17. Faz o commit
É importante deixar uma mensagem do que foi feito a cada commit
git commit -m "mensagem"
P.ex.:
git commit -m "Atualização do arquivo config.js"
P18. Envia os commits locais para repositório remoto do aluno
git push origin Branch_de_trabalho

P.ex.:

git push origin versao-0.0.1

Comandos adicionais

P19. Obtém informações gerais e verifica se tem modificações pendentes no repositório local
git status
P20. Mostra todos os branchs locais
git branch -a
P21. Cria um novo branch (IMPORTANTE. Este novo branch não poderá ser sincronizado no Projeto principal).
git checkout -b versao-0.0.1.test

TERCEIRO PASSO: Sincronizar o repositório do aluno com o repositório principal do projeto

No site do GitHub, com o login do aluno

P22. Acessar o repositório do aluno
P.ex.:
git clone https://github.com/ALUNO_GH/teste.git
P23. Selecionar o botão New pull request ou o botão Compare & pull request
Configurar os parâmetros branch fork: e base: - relacionados ao projeto principal e branch de trabalho
Configurar os parâmetros head fork: e compare: - relacionados ao branch em desenvolvimento
P24. Selecionar o botão Create pull request
Informar o título e descrição das alterações efetuadas feitas nesta atualização
P25. Selecionar o botão Merge pull request
Se desejar, pode adicionar um comentário sobre as alterações
P26. Selecionar o botão Confirm merge

No site do GitHub, com o login do Professor

P27. Selecionar o branch de trabalho atual do projeto e acessar o botão Pull request ou Compare & pull request
P29. Para tornar um branch na versão master, repete os passos P23 a P26, no projeto principal
branch base será o master
branch compare será o branch de trabalho