owned this note
owned this note
Published
Linked with GitHub
---
title: IPT Git Course Planning
tags: git, IPT, teaching
---
### Aula 1 (01/09)
Comandos básicos, criação de repositórios, visualizando o histórico de mudanças
e removendo mudanças recentes;
1. Introdução a Sistemas de controle de versão
* Centralizado vs descentralizado;
1. Funcionamento básico
* Stage Area
1. Git Setup (`git config`)
1. Inicialização de repositórios
* Inicialização local (`git init`)
* Criação de repositórios no gitlab (`git clone`)
1. Adicionando mudanças ao repositório
* `git status`, `git add`, `git commit`, `git push`, `git log`,
`git pull`, `git rm`, `git mv`;
1. Inspecionando e desfazendo mudanças
* Desfazendo mudanças (`git checkout`/`git restore`)
* Remoção do *stage area* (`git reset`/`git restore --staged`)
* Opções do `git log`
* Verificando mudanças (`git diff`)
---
### Aula 2 (02/09)
Trabalhando de forma distribuída com repositórios remotos, etiquetas,
ramificações e unificação
1. Repositórios remotos
* Gerência de repositórios remotos (`git remote`);
* Sincronização de repositórios (`git fetch`);
1. Ramificações
* Criação e mudança de *branches* (`git branch`, `git switch`, `git branch --move`)
* Revisões e Referências
* The `HEAD` pointer;
* Comparando e Unificando *branches* (`git diff`, `git merge`)
* Lidando com conflitos;
* Sincronização com *branches* remotas (*remote tracking*)
---
### Aula 3 (03/09)
Trabalhando de forma distribuída com repositórios remotos, etiquetas,
ramificações e unificação
1. Ramificações
* Movendo commits entre *branches* (`git cherry-pick`)
* Reescrevendo o histórico de commits (`git rebase`)
* Fluxo de trabalho com *branches*;
1. Recuperando versões antigas de trabalho (`git reset` e `git revert`)
1. Alterando o último *commit* (`git commit --amend`)
1. Escondendo mudanças (`git stash`)
1. Encontrando bugs introduzidos em um *commit* arbitrário (`git bisect`)
---
### Aula 4 (08/09)
Sistema de issues, quadros de projeto no *Gitlab*.
Estratégias para o desenvolvimento colaborativo (*git workflows*, *pull/merge
requests*)
1. Sistemas de Issues
* Labels, Milestones;
* Fechando Issues;
* Com uma msg de commit;
* Kanban Boards
1. Git Workflows
* *Centralized Workflow*, *Feature Branch Workflow*, *Gitflow Workflow*,
*Forking Workflow*;
* Unindo, dividindo e deletando commits (`git squash`, `git rebase -i`)
---
### Aula 5 (09/09)
1. Assinando commits com *gpg*
1. Submódulos
1. Utilizando emails para distribuir commits (`git bundle`, `git am`, `git format-patch`)
1. Exemplos da comunidade
---
### Aula 6 (10/09)
Tópicos avançados;
1. Git hooks
1. Integração contínua;