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
- Motivação para uso de sistemas de controle de versão
- Sistema de controle de versão centralizado (SVN) vs sistema de controle de versão distribuído (git)
- Github, Gitlab ou Bitbucket, qual usar?
- Github Classroom e GitHub Education Campus Advisors
- Apresentação das ferramentas git e Visual Studio Code (com os plugins git lens e git history)
- Configurando identidade (nome e email)
- Como criar apelidos para comandos git no arquivo
.gitconfig
- Configuração do ambiente e criação de conta acadêmica no GitHub.com (conta pessoal vs organização)
- Como iniciar um repositório git e registrar as modificações (commit)
- Boas práticas para fazer commit
- Quais os estados que um arquivo pode estar quando controlado com o git
- Introdução à linguagem de marcação Markdown
- Comandos git: status, add, commit, reset, diff, log, rm e mv
- Criação de repositório remoto no Github
- Evitando o controle de alguns arquivos por meio do
.gitignore
- Clonando repositório remoto e sincronizando repositório local com o remoto
- Trabalhando de forma colaborativa
- Comandos git: remote, clone, push, pull e fetch
- Motivação para uso de ramos (branches)
- Fluxos de trabalho com ramos em projetos colaborativos
- Resolvendo conflitos em uma mesclagem (merge conflict)
- Fluxo de trabalho em projeto colaborativos no github com Pull Request
- Comandos git: branch, checkout, merge e rebase
- Lista de exercícios
- Fazendo forks de repositórios com Github
- Usando issues do Github como forma de retorno para alunos
- Usando project boards do Github
- Preparando ambiente para o Github Classroom
- Criando uma sala de aula e lista de exercícios com Github Classroom
- Clonando em lote todos os repositórios dos alunos do Github Classroom
- Enviando correções em lote para os repositórios dos alunos
- Teste de unidade automáticos e integração do Github com a ferramenta de integração contínua TravisCI.