Lab 00 — Git, GitHub e gh
🗺️ Mapa de tarefas — 17 tarefas · 100 pts (clique para expandir)
- T1 — Salvar evidencias/git-config.txt com user.name e user.email configurados (5 pts)
- T2 — Criar README.md com um cabecalho H1 e um paragrafo de introducao (5 pts)
- T3 — Adicionar cabecalhos H2/H3, negrito, italico e codigo inline ao README.md (6 pts)
- T4 — Adicionar lista nao-ordenada com sublista, lista ordenada e lista de tarefas ao README.md (6 pts)
- T5 — Adicionar ao menos dois links e uma imagem (badge) ao README.md (5 pts)
- T6 — Adicionar um bloco de codigo com identificacao de linguagem (ex. bash) ao README.md (5 pts)
- T7 — Adicionar uma tabela Markdown com cabecalho e ao menos duas linhas ao README.md (5 pts)
- T8 — Adicionar uma citacao e uma regra horizontal ao README.md (5 pts)
- T9 — Adicionar um .gitignore que ignora arquivos temporarios e de sistema (5 pts)
- T10 — Criar branch, fazer merge na main e salvar evidencias/git-branch.txt (8 pts)
- T11 — Salvar evidencias/gh-auth.txt (login) e evidencias/gh-repo.txt (owner/nome/branch) (5 pts)
- T12 — Montar o README.md final com sumario de ancoras e todas as secoes integradas (12 pts)
- T13 — Publicar o release v1.0.0 com gh release create (8 pts)
- T14 — Abrir um pull request com gh e salvar a URL em evidencias/gh-pr.txt (5 pts)
- T15 — Abrir uma issue com gh e salvar a URL em evidencias/gh-issue.txt (5 pts)
- T16 — Provocar e resolver um conflito de merge, mantendo as duas versoes em conflito.txt (5 pts)
- T17 — Usar gh api para confirmar a tag do release e salvar evidencias/gh-api.txt (5 pts)
Total: 100 pts
Confira o ambiente (faça a configuração uma vez por máquina; a verificação, a cada aula):
- Instalar as ferramentas — git, GitHub CLI e VS Code
- Configurar o git — nome, e-mail e editor padrão (uma vez)
- Verificar git, gh e VS Code — deve mostrar as versões e
Logged in to github.com
Verificação rápida de versão instalada:
git -v && gh --version && code -v && pio --version && wokwi-cli -V && wsl --version && docker --version
Verificação rápida de autenticação:
git config --get-regexp ^user\. && gh auth status && code --list-extensions --profile "ESP32IO"
Antes de sair, faça logout para não deixar sua conta do GitHub ativa na máquina (limpa a credencial salva do git e encerra a sessão do gh).
Toda entrega do curso é feita por commit: cada tarefa avaliada vira um commit cuja mensagem começa com Tn:, e o autograder corrige exatamente o estado daquele commit. Antes de tudo, você precisa dominar a ferramenta de entrega. Neste Lab 00 você aprende git (versionamento local), GitHub (o remoto da organização), gh (o GitHub CLI) e Markdown — a linguagem em que se escreve todo README.md, issue e pull request do curso.
Clone o repositório inicial do LAB00
Escolha o Grupo e entre com o comando abaixo para criar o repositório no GitHub:
- A
- B
- C
- D
- E
- F
- G
- H
- I
- J
- K
- L
- M
- P
- N
- Grupo: Grupo-A (slug:
grupo-a) - Repositório: https://github.com/ELT85B-N21-2026-2/lab00-grupo-a
- Commits: https://github.com/ELT85B-N21-2026-2/lab00-grupo-a/commits/main/
- Time: https://github.com/orgs/ELT85B-N21-2026-2/teams/grupo-a
1. Crie e entre na pasta-mãe da disciplina:
mkdir "%USERPROFILE%\ELT85BN21" & cd /d "%USERPROFILE%\ELT85BN21"
2. Clone e entre no repositório do laboratório:
git clone https://github.com/ELT85B-N21-2026-2/lab00-grupo-a.git && cd lab00-grupo-a
3. Verifique status e abra o conteúdo do repositório no perfil ESP32IO do VS Code :
git status && code . --profile "ESP32IO"
- Grupo: Grupo-B (slug:
grupo-b) - Repositório: https://github.com/ELT85B-N21-2026-2/lab00-grupo-b
- Commits: https://github.com/ELT85B-N21-2026-2/lab00-grupo-b/commits/main/
- Time: https://github.com/orgs/ELT85B-N21-2026-2/teams/grupo-b
1. Crie e entre na pasta-mãe da disciplina:
mkdir "%USERPROFILE%\ELT85BN21" & cd /d "%USERPROFILE%\ELT85BN21"
2. Clone e entre no repositório do laboratório:
git clone https://github.com/ELT85B-N21-2026-2/lab00-grupo-b.git && cd lab00-grupo-b
3. Verifique status e abra o conteúdo do repositório no perfil ESP32IO do VS Code :
git status && code . --profile "ESP32IO"
- Grupo: Grupo-C (slug:
grupo-c) - Repositório: https://github.com/ELT85B-N21-2026-2/lab00-grupo-c
- Commits: https://github.com/ELT85B-N21-2026-2/lab00-grupo-c/commits/main/
- Time: https://github.com/orgs/ELT85B-N21-2026-2/teams/grupo-c
1. Crie e entre na pasta-mãe da disciplina:
mkdir "%USERPROFILE%\ELT85BN21" & cd /d "%USERPROFILE%\ELT85BN21"
2. Clone e entre no repositório do laboratório:
git clone https://github.com/ELT85B-N21-2026-2/lab00-grupo-c.git && cd lab00-grupo-c
3. Verifique status e abra o conteúdo do repositório no perfil ESP32IO do VS Code :
git status && code . --profile "ESP32IO"
- Grupo: Grupo-D (slug:
grupo-d) - Repositório: https://github.com/ELT85B-N21-2026-2/lab00-grupo-d
- Commits: https://github.com/ELT85B-N21-2026-2/lab00-grupo-d/commits/main/
- Time: https://github.com/orgs/ELT85B-N21-2026-2/teams/grupo-d
1. Crie e entre na pasta-mãe da disciplina:
mkdir "%USERPROFILE%\ELT85BN21" & cd /d "%USERPROFILE%\ELT85BN21"
2. Clone e entre no repositório do laboratório:
git clone https://github.com/ELT85B-N21-2026-2/lab00-grupo-d.git && cd lab00-grupo-d
3. Verifique status e abra o conteúdo do repositório no perfil ESP32IO do VS Code :
git status && code . --profile "ESP32IO"
- Grupo: Grupo-E (slug:
grupo-e) - Repositório: https://github.com/ELT85B-N21-2026-2/lab00-grupo-e
- Commits: https://github.com/ELT85B-N21-2026-2/lab00-grupo-e/commits/main/
- Time: https://github.com/orgs/ELT85B-N21-2026-2/teams/grupo-e
1. Crie e entre na pasta-mãe da disciplina:
mkdir "%USERPROFILE%\ELT85BN21" & cd /d "%USERPROFILE%\ELT85BN21"
2. Clone e entre no repositório do laboratório:
git clone https://github.com/ELT85B-N21-2026-2/lab00-grupo-e.git && cd lab00-grupo-e
3. Verifique status e abra o conteúdo do repositório no perfil ESP32IO do VS Code :
git status && code . --profile "ESP32IO"
- Grupo: Grupo-F (slug:
grupo-f) - Repositório: https://github.com/ELT85B-N21-2026-2/lab00-grupo-f
- Commits: https://github.com/ELT85B-N21-2026-2/lab00-grupo-f/commits/main/
- Time: https://github.com/orgs/ELT85B-N21-2026-2/teams/grupo-f
1. Crie e entre na pasta-mãe da disciplina:
mkdir "%USERPROFILE%\ELT85BN21" & cd /d "%USERPROFILE%\ELT85BN21"
2. Clone e entre no repositório do laboratório:
git clone https://github.com/ELT85B-N21-2026-2/lab00-grupo-f.git && cd lab00-grupo-f
3. Verifique status e abra o conteúdo do repositório no perfil ESP32IO do VS Code :
git status && code . --profile "ESP32IO"
- Grupo: Grupo-G (slug:
grupo-g) - Repositório: https://github.com/ELT85B-N21-2026-2/lab00-grupo-g
- Commits: https://github.com/ELT85B-N21-2026-2/lab00-grupo-g/commits/main/
- Time: https://github.com/orgs/ELT85B-N21-2026-2/teams/grupo-g
1. Crie e entre na pasta-mãe da disciplina:
mkdir "%USERPROFILE%\ELT85BN21" & cd /d "%USERPROFILE%\ELT85BN21"
2. Clone e entre no repositório do laboratório:
git clone https://github.com/ELT85B-N21-2026-2/lab00-grupo-g.git && cd lab00-grupo-g
3. Verifique status e abra o conteúdo do repositório no perfil ESP32IO do VS Code :
git status && code . --profile "ESP32IO"
- Grupo: Grupo-H (slug:
grupo-h) - Repositório: https://github.com/ELT85B-N21-2026-2/lab00-grupo-h
- Commits: https://github.com/ELT85B-N21-2026-2/lab00-grupo-h/commits/main/
- Time: https://github.com/orgs/ELT85B-N21-2026-2/teams/grupo-h
1. Crie e entre na pasta-mãe da disciplina:
mkdir "%USERPROFILE%\ELT85BN21" & cd /d "%USERPROFILE%\ELT85BN21"
2. Clone e entre no repositório do laboratório:
git clone https://github.com/ELT85B-N21-2026-2/lab00-grupo-h.git && cd lab00-grupo-h
3. Verifique status e abra o conteúdo do repositório no perfil ESP32IO do VS Code :
git status && code . --profile "ESP32IO"
- Grupo: Grupo-I (slug:
grupo-i) - Repositório: https://github.com/ELT85B-N21-2026-2/lab00-grupo-i
- Commits: https://github.com/ELT85B-N21-2026-2/lab00-grupo-i/commits/main/
- Time: https://github.com/orgs/ELT85B-N21-2026-2/teams/grupo-i
1. Crie e entre na pasta-mãe da disciplina:
mkdir "%USERPROFILE%\ELT85BN21" & cd /d "%USERPROFILE%\ELT85BN21"
2. Clone e entre no repositório do laboratório:
git clone https://github.com/ELT85B-N21-2026-2/lab00-grupo-i.git && cd lab00-grupo-i
3. Verifique status e abra o conteúdo do repositório no perfil ESP32IO do VS Code :
git status && code . --profile "ESP32IO"
- Grupo: Grupo-J (slug:
grupo-j) - Repositório: https://github.com/ELT85B-N21-2026-2/lab00-grupo-j
- Commits: https://github.com/ELT85B-N21-2026-2/lab00-grupo-j/commits/main/
- Time: https://github.com/orgs/ELT85B-N21-2026-2/teams/grupo-j
1. Crie e entre na pasta-mãe da disciplina:
mkdir "%USERPROFILE%\ELT85BN21" & cd /d "%USERPROFILE%\ELT85BN21"
2. Clone e entre no repositório do laboratório:
git clone https://github.com/ELT85B-N21-2026-2/lab00-grupo-j.git && cd lab00-grupo-j
3. Verifique status e abra o conteúdo do repositório no perfil ESP32IO do VS Code :
git status && code . --profile "ESP32IO"
- Grupo: Grupo-K (slug:
grupo-k) - Repositório: https://github.com/ELT85B-N21-2026-2/lab00-grupo-k
- Commits: https://github.com/ELT85B-N21-2026-2/lab00-grupo-k/commits/main/
- Time: https://github.com/orgs/ELT85B-N21-2026-2/teams/grupo-k
1. Crie e entre na pasta-mãe da disciplina:
mkdir "%USERPROFILE%\ELT85BN21" & cd /d "%USERPROFILE%\ELT85BN21"
2. Clone e entre no repositório do laboratório:
git clone https://github.com/ELT85B-N21-2026-2/lab00-grupo-k.git && cd lab00-grupo-k
3. Verifique status e abra o conteúdo do repositório no perfil ESP32IO do VS Code :
git status && code . --profile "ESP32IO"
- Grupo: Grupo-L (slug:
grupo-l) - Repositório: https://github.com/ELT85B-N21-2026-2/lab00-grupo-l
- Commits: https://github.com/ELT85B-N21-2026-2/lab00-grupo-l/commits/main/
- Time: https://github.com/orgs/ELT85B-N21-2026-2/teams/grupo-l
1. Crie e entre na pasta-mãe da disciplina:
mkdir "%USERPROFILE%\ELT85BN21" & cd /d "%USERPROFILE%\ELT85BN21"
2. Clone e entre no repositório do laboratório:
git clone https://github.com/ELT85B-N21-2026-2/lab00-grupo-l.git && cd lab00-grupo-l
3. Verifique status e abra o conteúdo do repositório no perfil ESP32IO do VS Code :
git status && code . --profile "ESP32IO"
- Grupo: Grupo-M (slug:
grupo-m) - Repositório: https://github.com/ELT85B-N21-2026-2/lab00-grupo-m
- Commits: https://github.com/ELT85B-N21-2026-2/lab00-grupo-m/commits/main/
- Time: https://github.com/orgs/ELT85B-N21-2026-2/teams/grupo-m
1. Crie e entre na pasta-mãe da disciplina:
mkdir "%USERPROFILE%\ELT85BN21" & cd /d "%USERPROFILE%\ELT85BN21"
2. Clone e entre no repositório do laboratório:
git clone https://github.com/ELT85B-N21-2026-2/lab00-grupo-m.git && cd lab00-grupo-m
3. Verifique status e abra o conteúdo do repositório no perfil ESP32IO do VS Code :
git status && code . --profile "ESP32IO"
- Grupo: Grupo-P (slug:
grupo-p) - Repositório: https://github.com/ELT85B-N21-2026-2/lab00-grupo-p
- Commits: https://github.com/ELT85B-N21-2026-2/lab00-grupo-p/commits/main/
- Time: https://github.com/orgs/ELT85B-N21-2026-2/teams/grupo-p
1. Crie e entre na pasta-mãe da disciplina:
mkdir "%USERPROFILE%\ELT85BN21" & cd /d "%USERPROFILE%\ELT85BN21"
2. Clone e entre no repositório do laboratório:
git clone https://github.com/ELT85B-N21-2026-2/lab00-grupo-p.git && cd lab00-grupo-p
3. Verifique status e abra o conteúdo do repositório no perfil ESP32IO do VS Code :
git status && code . --profile "ESP32IO"
- Grupo: Grupo-N (slug:
grupo-n) - Repositório: https://github.com/ELT85B-N21-2026-2/lab00-grupo-n
- Commits: https://github.com/ELT85B-N21-2026-2/lab00-grupo-n/commits/main/
- Time: https://github.com/orgs/ELT85B-N21-2026-2/teams/grupo-n
1. Crie e entre na pasta-mãe da disciplina:
mkdir "%USERPROFILE%\ELT85BN21" & cd /d "%USERPROFILE%\ELT85BN21"
2. Clone e entre no repositório do laboratório:
git clone https://github.com/ELT85B-N21-2026-2/lab00-grupo-n.git && cd lab00-grupo-n
3. Verifique status e abra o conteúdo do repositório no perfil ESP32IO do VS Code :
git status && code . --profile "ESP32IO"
Envie o link do repositório do seu grupo no Moodle:
- A
- B
- C
- D
- E
- F
- G
- H
- I
- J
- K
- L
- M
- P
- N
Repositório do Grupo A para Laboratório 00:
- Copie o link do repositório acima.
- Abra a página de envio da atividade no Moodle (botão abaixo).
- Clique em Adicionar envio.
- Cole o link no campo Texto online.
- Clique em Salvar mudanças.
- Confira se o status mudou para Enviado para avaliação.
Repositório do Grupo B para Laboratório 00:
- Copie o link do repositório acima.
- Abra a página de envio da atividade no Moodle (botão abaixo).
- Clique em Adicionar envio.
- Cole o link no campo Texto online.
- Clique em Salvar mudanças.
- Confira se o status mudou para Enviado para avaliação.
Repositório do Grupo C para Laboratório 00:
- Copie o link do repositório acima.
- Abra a página de envio da atividade no Moodle (botão abaixo).
- Clique em Adicionar envio.
- Cole o link no campo Texto online.
- Clique em Salvar mudanças.
- Confira se o status mudou para Enviado para avaliação.
Repositório do Grupo D para Laboratório 00:
- Copie o link do repositório acima.
- Abra a página de envio da atividade no Moodle (botão abaixo).
- Clique em Adicionar envio.
- Cole o link no campo Texto online.
- Clique em Salvar mudanças.
- Confira se o status mudou para Enviado para avaliação.
Repositório do Grupo E para Laboratório 00:
- Copie o link do repositório acima.
- Abra a página de envio da atividade no Moodle (botão abaixo).
- Clique em Adicionar envio.
- Cole o link no campo Texto online.
- Clique em Salvar mudanças.
- Confira se o status mudou para Enviado para avaliação.
Repositório do Grupo F para Laboratório 00:
- Copie o link do repositório acima.
- Abra a página de envio da atividade no Moodle (botão abaixo).
- Clique em Adicionar envio.
- Cole o link no campo Texto online.
- Clique em Salvar mudanças.
- Confira se o status mudou para Enviado para avaliação.
Repositório do Grupo G para Laboratório 00:
- Copie o link do repositório acima.
- Abra a página de envio da atividade no Moodle (botão abaixo).
- Clique em Adicionar envio.
- Cole o link no campo Texto online.
- Clique em Salvar mudanças.
- Confira se o status mudou para Enviado para avaliação.
Repositório do Grupo H para Laboratório 00:
- Copie o link do repositório acima.
- Abra a página de envio da atividade no Moodle (botão abaixo).
- Clique em Adicionar envio.
- Cole o link no campo Texto online.
- Clique em Salvar mudanças.
- Confira se o status mudou para Enviado para avaliação.
Repositório do Grupo I para Laboratório 00:
- Copie o link do repositório acima.
- Abra a página de envio da atividade no Moodle (botão abaixo).
- Clique em Adicionar envio.
- Cole o link no campo Texto online.
- Clique em Salvar mudanças.
- Confira se o status mudou para Enviado para avaliação.
Repositório do Grupo J para Laboratório 00:
- Copie o link do repositório acima.
- Abra a página de envio da atividade no Moodle (botão abaixo).
- Clique em Adicionar envio.
- Cole o link no campo Texto online.
- Clique em Salvar mudanças.
- Confira se o status mudou para Enviado para avaliação.
Repositório do Grupo K para Laboratório 00:
- Copie o link do repositório acima.
- Abra a página de envio da atividade no Moodle (botão abaixo).
- Clique em Adicionar envio.
- Cole o link no campo Texto online.
- Clique em Salvar mudanças.
- Confira se o status mudou para Enviado para avaliação.
Repositório do Grupo L para Laboratório 00:
- Copie o link do repositório acima.
- Abra a página de envio da atividade no Moodle (botão abaixo).
- Clique em Adicionar envio.
- Cole o link no campo Texto online.
- Clique em Salvar mudanças.
- Confira se o status mudou para Enviado para avaliação.
Repositório do Grupo M para Laboratório 00:
- Copie o link do repositório acima.
- Abra a página de envio da atividade no Moodle (botão abaixo).
- Clique em Adicionar envio.
- Cole o link no campo Texto online.
- Clique em Salvar mudanças.
- Confira se o status mudou para Enviado para avaliação.
Repositório do Grupo P para Laboratório 00:
- Copie o link do repositório acima.
- Abra a página de envio da atividade no Moodle (botão abaixo).
- Clique em Adicionar envio.
- Cole o link no campo Texto online.
- Clique em Salvar mudanças.
- Confira se o status mudou para Enviado para avaliação.
Repositório do Grupo N para Laboratório 00:
- Copie o link do repositório acima.
- Abra a página de envio da atividade no Moodle (botão abaixo).
- Clique em Adicionar envio.
- Cole o link no campo Texto online.
- Clique em Salvar mudanças.
- Confira se o status mudou para Enviado para avaliação.
Cada cartão Ponto de commit é uma tarefa: faça-a, copie o comando do cartão e rode. A mensagem começa com o código (T1:, T2:…) — é como a correção identifica sua entrega. Um commit por tarefa; pode refazer (vale o mais recente); e não esqueça o git push. Detalhes em Como funciona a avaliação.
Objetivos de aprendizagem
Ao final você será capaz de:
- Explicar o modelo do git: working tree → staging → repositório local → remoto.
- Aplicar a convenção do curso: 1 tarefa = 1 commit, mensagem iniciando com
Tn:. - Escrever Markdown com fluência: cabeçalhos, ênfase, listas, links, imagens, código, tabelas, citações e sumário com âncoras.
- Produzir um
README.mdcompleto, legível e navegável. - Criar branches, fazer merge e resolver um conflito simples.
- Usar
ghpararepo,pr,issue,releaseeapisem sair do terminal.
Material
- VS Code (editor). Recomendada a extensão Markdown All in One e o markdownlint para pré-visualizar e revisar o Markdown.
- git instalado (
git --version). - GitHub CLI (
gh) instalado (gh --version) — série 2.x. - Conta no GitHub, membro da organização
ELT85B-N21-2026-2. - Seu repositório de grupo:
lab00-grupo-<sua-letra>(criado no passo acima).
No VS Code, com um arquivo .md aberto, use Ctrl+Shift+V (ou o ícone de lupa no canto superior direito) para ver o Markdown renderizado lado a lado. É a forma mais rápida de conferir cada tarefa antes do commit.
O modelo mental do git
Um commit é uma fotografia imutável do projeto num instante, com autor, data e mensagem. O git add escolhe o que entra na foto; o git commit tira a foto; o git push envia as fotos para o GitHub, onde o autograder as encontra.
Cada tarefa Tn = um commit cuja mensagem começa com Tn:. Exemplo: T1: registra identidade do git. Se precisar corrigir uma tarefa, refaça com um novo commit Tn: — vale sempre o Tn: mais recente. Nunca use push --force no repositório de grupo.
Há dois ritmos no git. git config --global (sua identidade) é feito uma única vez por máquina — configura e esquece. Já git add → commit → push é a rotina que você repete a cada tarefa. Não confunda os dois: reconfigurar identidade a cada commit é desperdício; esquecer de commitar/enviar é perder a entrega.
Confira que você está dentro do repositório clonado antes de começar:
cd lab00-grupo-a # troque pela letra do seu grupo
git status
Parte 1 — Primeiro commit e o título do README
Objetivo: provar que sua identidade está correta e criar o README.md com um cabeçalho de nível 1.
Muitos passos desta aula são de runtime (rodam comandos, não editam arquivos "de conteúdo"). Para que o autograder possa checá-los, você salva a evidência da saída em evidencias/*.txt. Crie a pasta e registre a identidade:
mkdir -p evidencias
git config --list | grep -E "user\.(name|email)" > evidencias/git-config.txt
cat evidencias/git-config.txt
git add evidencias/git-config.txt
git commit -m "T1: registra identidade do git"
Salvar evidencias/git-config.txt com user.name e user.email configurados
git add evidencias/git-config.txt && git commit -m "T1: Salvar evidencias/git-config.txt com user.name e user.email configurados" && git push
O # no início de uma linha é um cabeçalho H1 — o título do documento. Crie o README.md com o título e um parágrafo de introdução:
# lab00 — grupo A
Repositório do grupo A para o Lab 00 (git, GitHub, gh e Markdown).
git add README.md
git commit -m "T2: cria README com titulo e introducao"
Criar README.md com um cabecalho H1 e um paragrafo de introducao
git add README.md && git commit -m "T2: Criar README.md com um cabecalho H1 e um paragrafo de introducao" && git push
Parte 2 — Markdown essencial
Objetivo: os blocos de construção de qualquer texto em Markdown.
2.1 Cabeçalhos e ênfase
O número de # define o nível do cabeçalho (H1 a H6). Para ênfase: **negrito**, *itálico* e `código inline` (crases).
## Sobre o grupo
Integrantes: **Fulano da Silva** e _Ciclana Souza_.
Usamos o comando `git status` o tempo todo.
### Contato
Dúvidas: abra uma _issue_ neste repositório.
Resultado renderizado — os # viram títulos de tamanhos diferentes, **...** fica em negrito, *...* em itálico e `...` aparece em fonte monoespaçada.
git add README.md
git commit -m "T3: adiciona cabecalhos e enfase ao README"
Adicionar cabecalhos H2/H3, negrito, italico e codigo inline ao README.md
git add README.md && git commit -m "T3: Adicionar cabecalhos H2/H3, negrito, italico e codigo inline ao README.md" && git push
2.2 Listas
Três tipos: não-ordenada (-), ordenada (1.) e de tarefas (- [ ] / - [x]). A indentação cria sublistas.
## Ferramentas
- git
- GitHub CLI (gh)
- `gh pr`
- `gh issue`
- VS Code
## Passos para entregar
1. Editar o arquivo
2. `git add`
3. `git commit`
## Checklist
- [x] Repositório clonado
- [ ] README completo
git add README.md
git commit -m "T4: adiciona listas ao README"
Adicionar lista nao-ordenada com sublista, lista ordenada e lista de tarefas ao README.md
git add README.md && git commit -m "T4: Adicionar lista nao-ordenada com sublista, lista ordenada e lista de tarefas ao README.md" && git push
2.3 Links e imagens
Link: [texto](url). Imagem:  — a imagem é um link com ! na frente. Um badge é só uma imagem cuja URL gera o selo.
## Referências
- [Documentação oficial do Git](https://git-scm.com/doc)
- [Manual do GitHub CLI](https://cli.github.com/manual/)

git add README.md
git commit -m "T5: adiciona links e um badge ao README"
Adicionar ao menos dois links e uma imagem (badge) ao README.md
git add README.md && git commit -m "T5: Adicionar ao menos dois links e uma imagem (badge) ao README.md" && git push
Parte 3 — Markdown para documentação técnica
Objetivo: os recursos que tornam um README realmente útil.
3.1 Blocos de código
Três crases abrem e fecham um bloco; a palavra após as crases define a linguagem (destaque de sintaxe). Isso é essencial para instruções de terminal.
## Como usar
Clone e entre na pasta:
```bash
git clone https://github.com/ELT85B-N21-2026-2/lab00-grupo-a.git
cd lab00-grupo-a
```
Para mostrar um bloco de código dentro de outro (como acima), o bloco externo usa quatro crases. Você raramente precisa disso — mas é útil ao documentar Markdown.
git add README.md
git commit -m "T6: adiciona bloco de codigo com destaque de linguagem"
Adicionar um bloco de codigo com identificacao de linguagem (ex. bash) ao README.md
git add README.md && git commit -m "T6: Adicionar um bloco de codigo com identificacao de linguagem (ex. bash) ao README.md" && git push
3.2 Tabelas
Colunas separadas por |; a segunda linha (---) separa o cabeçalho e define o alinhamento (:---, :---:, ---:).
## Comandos essenciais
| Comando | O que faz |
| :----------- | :--------------------------- |
| `git status` | mostra o estado da árvore |
| `git add` | move mudanças para o staging |
| `git commit` | grava um commit |
Resultado renderizado:
| Comando | O que faz |
|---|---|
git status | mostra o estado da árvore |
git add | move mudanças para o staging |
git commit | grava um commit |
git add README.md
git commit -m "T7: adiciona uma tabela ao README"
Adicionar uma tabela Markdown com cabecalho e ao menos duas linhas ao README.md
git add README.md && git commit -m "T7: Adicionar uma tabela Markdown com cabecalho e ao menos duas linhas ao README.md" && git push
3.3 Citações e regra horizontal
> cria uma citação; três hífens (---) numa linha isolada criam uma régua horizontal que separa seções.
---
> Versione cedo, versione com frequência.
Este repositório segue a convenção `Tn:` de commits do curso.
git add README.md
git commit -m "T8: adiciona citacao e regra horizontal"
Adicionar uma citacao e uma regra horizontal ao README.md
git add README.md && git commit -m "T8: Adicionar uma citacao e uma regra horizontal ao README.md" && git push
Parte 4 — Fluxo de trabalho no git
Objetivo: ignorar o que não deve ser versionado e integrar trabalho por branches.
4.1 O .gitignore
Nem tudo entra no git: arquivos temporários do sistema e do editor devem ser ignorados. Crie:
# Sistema operacional
.DS_Store
Thumbs.db
# Temporários
*.tmp
*.log
# VS Code (mantém apenas as extensões recomendadas)
.vscode/*
!.vscode/extensions.json
git add .gitignore
git commit -m "T9: adiciona .gitignore"
Adicionar um .gitignore que ignora arquivos temporarios e de sistema
git add .gitignore && git commit -m "T9: Adicionar um .gitignore que ignora arquivos temporarios e de sistema" && git push
4.2 Branch e merge
Isole uma mudança num branch, integre-a à main e salve a evidência:
git switch -c docs
echo "" >> README.md
echo "## Licença" >> README.md
echo "Uso educacional — ELT85B." >> README.md
git commit -am "wip: secao de licenca no branch docs"
git switch main
git merge docs
git branch --all > evidencias/git-branch.txt
git add evidencias/git-branch.txt
git commit -m "T10: integra branch docs na main"
Criar branch, fazer merge na main e salvar evidencias/git-branch.txt
git add evidencias/git-branch.txt && git commit -m "T10: Criar branch, fazer merge na main e salvar evidencias/git-branch.txt" && git push
Parte 5 — GitHub pelo terminal (gh)
Objetivo: operar o repositório remoto sem abrir o navegador.
gh auth status 2> evidencias/gh-auth.txt
gh repo view --json name,owner,defaultBranchRef \
--jq '"repo=\(.owner.login)/\(.name) branch=\(.defaultBranchRef.name)"' \
> evidencias/gh-repo.txt
cat evidencias/gh-auth.txt evidencias/gh-repo.txt
git add evidencias/gh-auth.txt evidencias/gh-repo.txt
git commit -m "T11: comprova auth e inspeciona o repo com gh"
repo=ELT85B-N21-2026-2/lab00-grupo-a branch=main
Salvar evidencias/gh-auth.txt (login) e evidencias/gh-repo.txt (owner/nome/branch)
git add evidencias/gh-auth.txt evidencias/gh-repo.txt && git commit -m "T11: Salvar evidencias/gh-auth.txt (login) e evidencias/gh-repo.txt (owner/nome/branch)" && git push
git push de verdadeAté aqui os commits estão no seu repositório local. Envie-os: git push. Confira no GitHub (ou com gh repo view --web) que os commits T1…T11 chegaram.
Projeto integrador — o README completo
Objetivo: juntar todos os elementos num README.md bem estruturado, com sumário navegável.
Um bom README começa com um sumário (lista de links para âncoras). A âncora de um cabeçalho é o texto em minúsculas, com espaços virando hífens: ## Como usar vira o link [Como usar](#como-usar).
# lab00 — grupo A
Repositório do grupo A para o Lab 00.
## Sumário
- [Sobre o grupo](#sobre-o-grupo)
- [Ferramentas](#ferramentas)
- [Como usar](#como-usar)
- [Comandos essenciais](#comandos-essenciais)
- [Licença](#licença)
## Sobre o grupo
...
Revise o README.md para que ele contenha, de forma coerente: título (H1), sumário com âncoras, e seções usando cabeçalhos, listas, links, um badge, um bloco de código e uma tabela.
git add README.md
git commit -m "T12: monta o README final com sumario e ancoras"
git push
Montar o README.md final com sumario de ancoras e todas as secoes integradas
git add README.md && git commit -m "T12: Montar o README.md final com sumario de ancoras e todas as secoes integradas" && git push
Release — publicar uma versão
O mesmo release que sustenta as tarefas de deploy das próximas aulas:
git tag -a v1.0.0 -m "Lab 00 concluido"
git push origin v1.0.0
gh release create v1.0.0 \
--title "Lab 00 — v1.0.0" \
--notes "README em Markdown concluido."
git commit --allow-empty -m "T13: publica release v1.0.0"
git push
Publicar o release v1.0.0 com gh release create
git commit --allow-empty -m "T13: Publicar o release v1.0.0 com gh release create" && git push
Desafios
Cada desafio é uma tarefa = um commit Tn:. Salve a evidência pedida.
D1 — Melhoria via Pull Request
Proponha uma melhoria no README por um branch e um PR, em vez de commitar direto na main:
git switch -c feature/emojis
echo "" >> README.md
echo "## Status" >> README.md
echo "Projeto concluido. :rocket:" >> README.md
git commit -am "wip: secao de status"
git push -u origin feature/emojis
gh pr create --base main --head feature/emojis \
--title "T14: adiciona secao de status ao README" \
--body "Nova secao Status. Fecha a tarefa T14." \
> evidencias/gh-pr.txt
gh pr merge --merge --delete-branch
git switch main && git pull
git add evidencias/gh-pr.txt
git commit -m "T14: registra o pull request criado"
git push
Abrir um pull request com gh e salvar a URL em evidencias/gh-pr.txt
git add evidencias/gh-pr.txt && git commit -m "T14: Abrir um pull request com gh e salvar a URL em evidencias/gh-pr.txt" && git push
D2 — Uma issue pelo terminal
gh issue create --title "Adicionar screenshots ao README" \
--body "O README ficaria mais claro com imagens." > evidencias/gh-issue.txt
gh issue list > evidencias/gh-issue-list.txt
git add evidencias/gh-issue.txt evidencias/gh-issue-list.txt
git commit -m "T15: cria issue com gh"
git push
Abrir uma issue com gh e salvar a URL em evidencias/gh-issue.txt
git add evidencias/gh-issue.txt && git commit -m "T15: Abrir uma issue com gh e salvar a URL em evidencias/gh-issue.txt" && git push
D3 — Resolver um conflito de merge
Crie um conflito proposital em conflito.txt e resolva-o, mantendo as duas informações (sem os marcadores <<<<<<<):
git switch -c ladoA; echo "estilo do README: minimalista" > conflito.txt
git add conflito.txt; git commit -m "wip: ladoA"
git switch main; git switch -c ladoB; echo "estilo do README: detalhado" > conflito.txt
git add conflito.txt; git commit -m "wip: ladoB"
git switch main; git merge ladoA; git merge ladoB # conflito aqui
# edite conflito.txt para: "estilo do README: minimalista e detalhado" e remova os marcadores
git add conflito.txt; git commit -m "T16: resolve conflito de merge"
git push
Provocar e resolver um conflito de merge, mantendo as duas versoes em conflito.txt
git add conflito.txt && git commit -m "T16: Provocar e resolver um conflito de merge, mantendo as duas versoes em conflito.txt" && git push
D4 — gh api: falar direto com a API
O gh api chama a REST/GraphQL do GitHub autenticado. Confirme, via API, que seu release existe:
gh api repos/{owner}/{repo}/releases/tags/v1.0.0 --jq '.tag_name' \
> evidencias/gh-api.txt
cat evidencias/gh-api.txt # deve imprimir: v1.0.0
git add evidencias/gh-api.txt
git commit -m "T17: consulta o release via gh api"
git push
Usar gh api para confirmar a tag do release e salvar evidencias/gh-api.txt
git add evidencias/gh-api.txt && git commit -m "T17: Usar gh api para confirmar a tag do release e salvar evidencias/gh-api.txt" && git push
Gabarito
Tente sozinho antes de abrir. O Markdown e o fluxo git/gh desta aula são pré-requisito de todas as próximas.Sintaxe Markdown de referência
Comandos de referência (T1…T17)
Checklist de entrega
-
git configcom nome e e-mail institucional corretos (T1). - Commits com prefixo
Tn:na ordem T1…T17. -
README.mdcom título, sumário de âncoras, listas, links, badge, bloco de código e tabela (T2–T8, T12). -
.gitignorepresente (T9). - Tudo enviado com
git push; nada depush --force. - Release
v1.0.0publicado e visível emgh release list(T13). - Evidências presentes em
evidencias/para os passos de runtime.
Total: 100 pts (o autograder normaliza para 0–10). Base T1…T13 = 80 pts; Desafios T14…T17 = 20 pts.