Máquina compartilhada do laboratório
Os computadores do laboratório são usados por várias turmas. Tudo o que você configura (login no GitHub, nome e e-mail do Git, repositórios clonados) fica na máquina depois que você sai, a menos que você apague.
Se isso não for feito, o próximo aluno pode:
- fazer
pushcom a sua conta sem perceber; - ver a janela "Select an account" com o seu usuário na lista;
- fazer commits com o seu nome e e-mail.
Este guia organiza a aula em três momentos, sempre a partir de uma única
pasta-mãe (ELT85B):
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"
Todos os comandos deste guia são para o Prompt de Comando do Windows, não para o PowerShell.
- Para abrir:
Win+R, digitecmde pressione Enter. - No terminal do VS Code: na seta ao lado do
+, escolha Command Prompt.
%USERPROFILE% é a sua pasta de usuário (por exemplo, C:\Users\aluno). O cmd
troca esse nome pelo caminho real automaticamente.
Não há pontos de commit aqui. A Parte 1 é feita no início de cada aula e a Parte 2, obrigatoriamente, antes de sair do laboratório.
Objetivos
- Criar a pasta-mãe
ELT85Be trabalhar somente dentro dela. - Configurar nome, e-mail e conta do Git apenas para essa pasta.
- Entrar no GitHub pelo
ghe abrir os repositórios no VS Code sem Modo Restrito. - No fim da aula, remover todas as credenciais, configurações e arquivos.
Parte 1 — Início da aula
Abra um Prompt de Comando e mantenha a mesma janela aberta até o fim da Parte 1: as variáveis do passo 1.2 valem só nela.
1.1 Criar a pasta-mãe
mkdir "%USERPROFILE%\ELT85B"
cd /d "%USERPROFILE%\ELT85B"
Se a pasta já existir (sobra de outra aula), o mkdir avisa que ela já existe.
Nesse caso, verifique se o conteúdo é seu antes de continuar. Se não for, ela
deveria ter sido apagada: siga a Parte 2 para removê-la e recomece.
Não crie a pasta-mãe no OneDrive nem em outra pasta sincronizada. A
sincronização trava arquivos dentro de .git e .pio e gera conflitos.
1.2 Configurar o Git só para a pasta-mãe
Em vez de gravar seu nome e e-mail na configuração global da máquina (que
vale para todos), eles vão para um arquivo separado, usado somente dentro
de ELT85B. Na limpeza, basta apagar esse arquivo.
Defina seus dados (troque pelos seus):
set "NOME=Nome Sobrenome"
set "EMAIL=seu.email@alunos.utfpr.edu.br"
set "GHUSER=sua-conta-github"
Crie o arquivo .gitconfig-elt85b e ligue-o à pasta-mãe:
git config --file "%USERPROFILE%\.gitconfig-elt85b" user.name "%NOME%"
git config --file "%USERPROFILE%\.gitconfig-elt85b" user.email "%EMAIL%"
git config --file "%USERPROFILE%\.gitconfig-elt85b" credential.https://github.com.username "%GHUSER%"
git config --global includeIf.gitdir/i:~/ELT85B/.path ~/.gitconfig-elt85b
- A barra final em
~/ELT85B/é obrigatória: é ela que faz a regra valer para todas as subpastas. gitdir/iignora maiúsculas e minúsculas no caminho, o que evita falhas porC:versusc:no Windows.- A regra só vale dentro de um repositório. Na própria pasta-mãe (que não é um repositório), o Git não mostra esses valores, e isso é esperado.
- O
~é interpretado pelo próprio Git como a sua pasta de usuário, por isso funciona também no cmd.
1.3 Entrar no GitHub
gh auth login --hostname github.com --git-protocol https --web
- Copie o código de uma vez exibido no terminal e pressione Enter.
- No navegador, entre com a sua conta e cole o código.
- Quando o
ghperguntar se deve autenticar o Git com suas credenciais do GitHub, responda Y. Assim o Git usa o login doghe a janela "Select an account" não aparece.
Se o navegador já estiver logado no GitHub com a conta de outra pessoa, saia dela antes de autorizar. Prefira uma janela anônima/privada para esse login.
1.4 Clonar os repositórios dentro da pasta-mãe
Na página de cada aula, o componente de clone indica o repositório do seu
grupo. Rode o comando dentro de ELT85B:
cd /d "%USERPROFILE%\ELT85B"
gh repo clone ELT85B-N21-2026-2/lab01-grupo-a
1.5 Abrir no VS Code e confiar na pasta-mãe
code "%USERPROFILE%\ELT85B\lab01-grupo-a"
Na primeira vez, o VS Code pergunta se você confia nos autores dos arquivos. Para que todos os repositórios da pasta-mãe abram sem Modo Restrito:
- Marque "Trust the authors of all files in the parent folder 'ELT85B'".
- Clique em "Yes, I trust the authors".
Não use "security.workspace.trust.enabled": false. Em uma máquina
compartilhada, isso faz qualquer pasta (inclusive de outros usuários ou baixada
da internet) rodar tarefas e extensões sem aviso.
Verificação do início
Entre no repositório clonado e rode os comandos abaixo. Preveja a saída antes de executar.
cd /d "%USERPROFILE%\ELT85B\lab01-grupo-a"
git config --show-origin --get user.email
git config --show-origin --get credential.https://github.com.username
gh auth status
Saída esperada (resumida):
file:C:/Users/aluno/.gitconfig-elt85b seu.email@alunos.utfpr.edu.br
file:C:/Users/aluno/.gitconfig-elt85b sua-conta-github
github.com
✓ Logged in to github.com account sua-conta-github (keyring)
- Active account: true
- Git operations protocol: https
...
O --show-origin mostra de qual arquivo veio cada valor. Se aparecer
.gitconfig-elt85b, a regra por pasta está funcionando. Confira também se a
conta mostrada pelo gh auth status é a sua.
Parte 2 — Fim da aula: limpeza obrigatória
Sem esta parte, a próxima pessoa que usar o computador terá acesso à sua conta do GitHub e aos repositórios do seu grupo.
Feche o VS Code antes de começar (ele trava arquivos da pasta) e abra um Prompt de Comando novo.
2.1 Conferir se tudo foi enviado
A pasta será apagada. O que não estiver no GitHub será perdido.
for /d %D in ("%USERPROFILE%\ELT85B\*") do @echo === %~nxD & git -C "%D" status -sb
Saída esperada para um repositório em dia:
=== lab01-grupo-a
## main...origin/main
Se aparecer [ahead 1] (commits não enviados) ou nomes de arquivos abaixo da
linha ## (alterações não commitadas), entre no repositório, faça o commit
e o push, e rode a verificação de novo.
O comando acima é para digitar no prompt. Dentro de um arquivo .cmd, troque
%D por %%D e %~nxD por %%~nxD.
2.2 Sair do GitHub no gh e no Git
Remova o login do gh:
gh auth logout --hostname github.com --user sua-conta-github
Se em algum momento a janela "Select an account" apareceu, o Git também salvou a conta no Git Credential Manager. Liste e remova:
git credential-manager github list
git credential-manager github logout sua-conta-github
Por fim, procure credenciais do GitHub que tenham sobrado no Gerenciador de Credenciais do Windows:
cmdkey /list | findstr /i github
Para cada linha encontrada, copie o texto que vem depois de target= e apague:
cmdkey /delete:git:https://github.com
Se aparecerem credenciais de outras contas, elas são sobras de outros alunos. Avise o professor em vez de apagar sem confirmar.
2.3 Sair da conta no VS Code
Se você entrou no GitHub pelo VS Code (Copilot, extensão do GitHub ou Settings Sync), saia também por lá:
- Abra o VS Code.
- Clique no ícone de Accounts (canto inferior esquerdo).
- Na sua conta do GitHub, clique em Sign Out.
- Feche o VS Code.
2.4 Remover a configuração do Git
git config --global --remove-section includeIf.gitdir/i:~/ELT85B/
del "%USERPROFILE%\.gitconfig-elt85b"
Se você (ou o setup da máquina) gravou nome e e-mail na configuração global, remova também:
git config --global --unset user.name
git config --global --unset user.email
Se o valor já não existir, esses comandos não mostram nada (código de saída 5). Isso é normal.
2.5 Apagar a pasta-mãe
Só faça isso depois de conferir o passo 2.1.
cd /d "%USERPROFILE%"
rmdir /s /q "%USERPROFILE%\ELT85B"
O rmdir /s /q apaga sem pedir confirmação e sem enviar para a Lixeira.
Verificação da limpeza
gh auth status
git credential-manager github list
cmdkey /list | findstr /i github
git config --global --list
dir "%USERPROFILE%\ELT85B"
Resultado esperado:
| Comando | O que deve aparecer |
|---|---|
gh auth status | Mensagem dizendo que você não está logado em nenhum host |
git credential-manager github list | Nada |
cmdkey /list com findstr | Nada |
git config --global --list | Nenhuma linha com ELT85B, seu nome ou seu e-mail |
dir da pasta-mãe | "O sistema não pode encontrar o arquivo especificado" |
Solução de problemas
O VS Code continua abrindo em Modo Restrito
- Verifique se o repositório está dentro de
ELT85B(e não em Downloads, por exemplo). - Pela paleta de comandos (
Ctrl+Shift+P), execute Workspaces: Manage Workspace Trust e confira se a pastaELT85Baparece emTrusted Folders & Workspaces. Se não aparecer, use Add Folder e selecione a pasta-mãe (não o repositório).
A janela "Select an account" continua aparecendo
- Confira se, no
gh auth login, você respondeu Y para autenticar o Git. Se não, rodegh auth setup-git. - Rode a verificação do início:
credential.https://github.com.usernamedeve vir do arquivo.gitconfig-elt85b. - Se a lista mostrar contas de outras pessoas, elas são sobras de outros alunos: avise o professor.
O push foi feito com a conta de outra pessoa
Alguém não fez a limpeza antes de você. Rode gh auth status para ver a conta
ativa, faça o logout dela (Parte 2.2) e o login com a sua (Parte 1.3). Avise o
professor para que o colega seja orientado.
O commit saiu com o nome ou e-mail errado
Corrija o .gitconfig-elt85b (passo 1.2) e, se o commit ainda não foi
enviado, ajuste o autor:
git commit --amend --reset-author --no-edit
Não use git push --force no repositório do grupo. Se o commit já foi enviado,
faça um novo commit: o que vale é o commit Tn: mais recente.
O rmdir diz que a pasta está em uso
Feche o VS Code e qualquer terminal que esteja dentro da pasta-mãe. No
prompt atual, rode cd /d "%USERPROFILE%" antes de tentar de novo.
Checklist
Início da aula
- Pasta
ELT85Bcriada em%USERPROFILE%. -
.gitconfig-elt85bcriado e ligado à pasta comincludeIf. - Login feito com a minha conta (
gh auth status). - Repositório clonado dentro de
ELT85Be aberto sem Modo Restrito.
Fim da aula
- Todos os repositórios sem
aheade sem alterações pendentes. - Logout no
gh, no Git Credential Manager e no VS Code. - Nenhuma credencial do GitHub no
cmdkey /list. -
includeIf,.gitconfig-elt85b, nome e e-mail globais removidos. - Pasta
ELT85Bapagada e verificação da limpeza conferida.
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).