Seu objetivo: guardar duas versões do projeto e explicar a diferença entre elas.
Pense antes de seguir: Um commit envia o projeto automaticamente para o GitHub?
O Git guarda versões do projeto: cada commit é uma fotografia dos arquivos, com uma mensagem dizendo o que mudou. A Kinein Vectis mostra o estado do Git na árvore, no editor e numa janela própria. Neste capítulo, o ola-kinein vira um repositório.
As capturas usam o programa de mensagem do primeiro projeto. Se você já avançou para temperaturas, mantenha seu código: vamos alterar apenas um texto da saída. A quantidade de arquivos e os números de linha podem ser diferentes.
Instale o Git e diga quem você é
sudo apt install git
git config --global user.name "Seu Nome"
git config --global user.email "voce@example.com"
git config --global init.defaultBranch main
As duas primeiras configurações vão em cada commit seu; use o seu nome e o seu e-mail. A terceira dá o nome main à branch principal dos repositórios novos. Confira a instalação:
git --version
Crie o repositório
No terminal:
cd ~/projetos/ola-kinein
git init
Se esse projeto já tem um repositório Git, continue nele e pule o git init.
A resposta começa com Initialized empty Git repository. Na 0.3.5, a IDE ainda não mostra nada: ela percebe o repositório novo na próxima vez que um arquivo do projeto muda, e é o que vai acontecer no passo seguinte. Para atualizar na hora, use Git: Atualizar status no Ctrl+Shift+N.
Diga ao Git o que ignorar
Antes do primeiro commit, decida o que não deve entrar no repositório. O .gitignore do projeto já ignora pastas de build, mas na 0.3.5 falta a pasta .kinein, onde a IDE guarda o build e os dados dela. Sem essa linha, o primeiro commit levaria o executável e centenas de arquivos gerados.
Abra o .gitignore na árvore e acrescente, no fim, a linha /.kinein/. Salve com Ctrl+S:

A quarta linha é a que você acrescentou.
Ao salvar, a IDE passa a mostrar o repositório:

Verde na árvore: arquivos novos, que o Git ainda não guarda. O 5 conta as mudanças.
Faça o primeiro commit
Clique no nome da branch, main neste exemplo, no cabeçalho. A janela do Git abre no lugar da árvore, na aba Commit, com a lista do que mudou. Marque os arquivos que quer guardar, escreva a mensagem embaixo e clique em Commit. O número no botão conta os arquivos marcados; nesta captura, são cinco:

Só o que está marcado entra no commit.
O aviso vermelho antes do primeiro commit. Na 0.3.5, um repositório ainda sem commits mostra
git diff falhou: fatal: bad revision 'HEAD'. É só porque ainda não existe um commit para comparar; o commit funciona normalmente.
Depois do commit, a lista fica vazia e o número some do cabeçalho.
Mude, compare e faça outro commit
A janela do Git ocupa o lugar da árvore. Para abrir o main.cpp, use Ctrl+Shift+N, como no guia Busca e atalhos. Escolha a mudança que corresponde ao seu programa:
- Programa de mensagem: troque o texto entre aspas por
Olá, Git!. - Cálculo de temperaturas: troque apenas o rótulo
media:porMedia calculada:. Preserve o cálculo e o restante da saída.
Salve. A captura mostra a mudança no programa de mensagem:

Azul: arquivo e linha modificados desde o último commit.
Clique no nome do arquivo na janela do Git para ver exatamente o que mudou:

Vermelho saiu, verde entrou. Esc volta ao editor.
Aperte Esc, marque o main.cpp, escreva Muda a mensagem e clique em Commit. Com apenas esse arquivo marcado, o botão mostra Commit (1).
Veja o histórico
Na janela do Git, a aba Log lista os commits, do mais novo para o mais antigo:

O selo main marca onde a branch está agora.
Clique num commit para ver, no editor, quem fez, quais arquivos mudaram e o que mudou em cada um:

Os detalhes do último commit.
Pelo terminal, o mesmo histórico:
cd ~/projetos/ola-kinein
git log --oneline
Os dois commits novos aparecem no início, o mais recente em cima. Se o repositório já tinha histórico, as versões anteriores continuam abaixo.
Confira o que aprendeu
Sem reler as etapas, responda:
- Um commit envia o projeto automaticamente para o GitHub?
- Por que ignorar .kinein antes do primeiro commit?
- O que o diff permite conferir antes de salvar uma versão?
Conferir seu raciocínio
Um commit guarda uma versão no repositório local; não faz push. Ignorar .kinein evita guardar build e estado local da IDE. O diff mostra as linhas removidas e adicionadas, para conferir o que entrará no commit.