Uso do git e github como ferramenta de apoio às atividades docente

Objetivos: Apresentar a ferramenta de controle de versão git, bem como seus benefícios para a atividade docente. No curso também serão apresentadas as facilidades do Github para projetos colaborativos e da ferramenta Github Classroom, criada especificamente para permitir a publicação e coleta de listas de exercícios dos alunos.

Carga horária total: 12 horas

1. Introdução (30m)

  1. Motivação para uso de sistemas de controle de versão
  2. Sistema de controle de versão centralizado (SVN) vs sistema de controle de versão distribuído (git)
  3. Github, Gitlab ou Bitbucket, qual usar?
  4. Github Classroom e GitHub Education Campus Advisors
  5. Apresentação das ferramentas git e Visual Studio Code (com os plugins git lens e git history)
  6. Configurando identidade (nome e email)
  7. Como criar apelidos para comandos git no arquivo .gitconfig
  8. Configuração do ambiente e criação de conta acadêmica no GitHub.com (conta pessoal vs organização)

2. Git básico (2h30m)

  1. Como iniciar um repositório git e registrar as modificações (commit)
  2. Boas práticas para fazer commit
  3. Quais os estados que um arquivo pode estar quando controlado com o git
  4. Introdução à linguagem de marcação Markdown
  5. Comandos git: status, add, commit, reset, diff, log, rm e mv

3. Trabalhando com repositórios remotos (3h)

  1. Criação de repositório remoto no Github
  2. Evitando o controle de alguns arquivos por meio do .gitignore
  3. Clonando repositório remoto e sincronizando repositório local com o remoto
  4. Trabalhando de forma colaborativa
  5. Comandos git: remote, clone, push, pull e fetch

4. Trabalhando com ramos (3h)

  1. Motivação para uso de ramos (branches)
  2. Fluxos de trabalho com ramos em projetos colaborativos
  3. Resolvendo conflitos em uma mesclagem (merge conflict)
  4. Fluxo de trabalho em projeto colaborativos no github com Pull Request
  5. Comandos git: branch, checkout, merge e rebase
  6. Lista de exercícios

5. Github e Github Classroom (3h)

  1. Fazendo forks de repositórios com Github
  2. Usando issues do Github como forma de retorno para alunos
  3. Usando project boards do Github
  4. Preparando ambiente para o Github Classroom
  5. Criando uma sala de aula e lista de exercícios com Github Classroom
  6. Clonando em lote todos os repositórios dos alunos do Github Classroom
  7. Enviando correções em lote para os repositórios dos alunos
  8. Teste de unidade automáticos e integração do Github com a ferramenta de integração contínua TravisCI.