MirandasTech · Manual profissional

Git e GitHub para pesquisadores

Versionar o projeto de pesquisa do primeiro commit ao DOI: instalar o Git, registrar cada versão do texto, dos dados e dos scripts, publicar no GitHub com README, licença e CITATION.cff, e obter um DOI pelo Zenodo — com ferramentas gratuitas, saídas reais de terminal e cada fato datado.

SérieManuais MirandasTech · pesquisa científica
Versão1.0 · setembro de 2026
Formato slides
LicençaCC BY 4.0 — cite a fonte
role para começar
Como usarcada slide é um passo que você executa no terminal ou no navegador

Para quem é — e o que você vai saber fazer ao final

Este manual é para pós-graduandos e pesquisadores que nunca usaram Git e têm um projeto com texto, dados e scripts que precisa de histórico, cópia de segurança e, no fim, um DOI. Não exige programação: todo comando está pronto para copiar, e a saída que aparece ao lado é a saída real de uma sessão de terminal feita em 09/09/2026. O manual não faz login no GitHub, no Zenodo, no OSF nem no Overleaf: as páginas públicas aparecem em capturas, e o que exige login é descrito pela documentação oficial, com os nomes exatos dos botões.

Ao final, você vai conseguir

  • Explicar o que é um repositório, um commit, um branch e uma tag — e por que a evidência recomenda controle de versão na pesquisa (Ram, 2013; Perez-Riverol et al., 2016).
  • Instalar o Git, configurar nome e e-mail, criar o repositório e fazer o primeiro commit (init, status, add, commit, log).
  • Decidir o que entra e o que fica fora do Git: .gitignore, dados pessoais, arquivos licenciados, segredos e binários pesados.
  • Publicar no GitHub: conta gratuita, repositório, git push, README, issues, pull requests e GitHub Actions.
  • Preparar a citação: licença, CITATION.cff, o botão «Cite this repository», uma release e o DOI pelo Zenodo.
  • Rodar três scripts: checar_repo.py (auditoria), citacao_cff.py (arquivo de citação) e salvar_versao.sh (commit + tag).
Regra

Nomes de menu e de botão são os da documentação oficial do GitHub em português (docs.github.com/pt) e das páginas públicas observadas em 09/09/2026; quando a sua tela divergir, vale a tela. As saídas de terminal são reais (Git 2.48.1 nesta máquina), com o caminho trocado por /home/usuario e uma autora fictícia, «Aluna Exemplo».

Armadilha

Tratar o Git como uma pasta de backup. Tudo o que entra num commit fica no histórico — inclusive uma senha ou um CPF que você apagou no commit seguinte. Antes do primeiro git add, o slide «O que entra e o que fica fora» e o checar_repo.py (Parte 5) decidem o que pode ser versionado.

Manuais irmãos

Este manual cuida do versionamento e da publicação. Os passos vizinhos estão nos manuais de Metodologia (o projeto), Busca e PRISMA (o conteúdo), Zotero (as referências), LaTeX (o texto em .tex, que o Git versiona linha a linha), Uso de IA (declarar) e Plugin (o agente que audita o repositório). Hub: mirandastech.com.br/pesquisa.

Introduçãoo roteiro do manual segue a ordem de um projeto

Mapa: do primeiro commit ao DOI — e onde cada parte do manual entra

1Instalar e configurarGit 2.55.0 em git-scm.com/install; user.name e user.email uma vez por máquina
2Repositório localgit init -b main, git add, git commit; o histórico fica na pasta oculta .git/
3O que fica fora.gitignore; dados pessoais, arquivos licenciados, segredos e binários pesados não entram
4Branch, merge, tagUma linha paralela para a revisão do capítulo; merge de volta; uma tag por marco
5Remoto no GitHubConta gratuita, repositório, git remote add origin, git push -u origin main --follow-tags
6README, licença, citaçãoREADME.md, LICENSE (choosealicense.com), CITATION.cff → botão «Cite this repository»
7Release → DOIRepositório público com licença, ligado ao Zenodo: cada release ganha um DOI
ParteO que cobrePassos
1 O que é e por que usarGit contra «versão_final_v3» · a evidência · Git × GitHub × GitLab · o que entra e o que fica fora · instalar e configurarPassos 1 e 3
2 Git no dia a diainit, status, add, commit · log e mensagens · .gitignore · branch, diff, merge, tag · conflitos · desfazer · onde aprofundarPassos 2 a 4
3 GitHub passo a passoConta e planos · criar repositório · push · a página do repositório · Actions · issues e PRs · Desktop, VS Code, CLI, Codespaces · Pages · LFS · Overleaf e OSFPasso 5
4 PublicarREADME · licença · CITATION.cff · releases · DOI pelo Zenodo · GitLab como alternativaPassos 6 e 7
5 Scripts e fechamentochecar_repo.py · citacao_cff.py · salvar_versao.sh · plugin · erros comuns · checklist · glossário · referênciasTodos
Como ler

Quem nunca abriu um terminal começa na Parte 1 e faz a Parte 2 com o terminal aberto ao lado. Quem já faz commits e quer o GitHub sem surpresas vai à Parte 3. Quem precisa publicar dados ou código com DOI para um artigo vai direto à Parte 4 — e roda o checar_repo.py da Parte 5 antes.

Convenções

Nomes de menu e de botão entre «aspas angulares». Comandos em blocos com botão «copiar». Capturas de páginas em 1920 × 938, feitas em 09/09/2026 sem login. Figuras de terminal com «saída real»: sessão desta máquina, caminho trocado por /home/usuario, repositório fictício minha-pesquisa. Nunca há senha, token ou chave neste manual nem nos scripts.

Parte 1O que é e por que usar

Git contra «versão_final_v3_revisada.docx»; o que a evidência diz; Git, GitHub e GitLab; o que entra e o que fica fora; instalar e configurar

Antes do primeiro comando: o que o Git guarda e o que ele não deve guardar, por que os guias de computação científica o recomendam, a diferença entre a ferramenta e os serviços que a hospedam — e a instalação em cinco minutos.

01
O que é e por que usar1 de 5 · git-scm.com/about · The Turing Way, «Version Control» · captura de 09/09/2026

Git contra «versão_final_v3_revisada.docx»: um histórico completo, com autor, data e motivo de cada mudança

Capítulo Version Control do The Turing Way, com a introdução sobre controle de versão e proveniência
Figura 1 O capítulo «Version Control» do The Turing Way (captura de 09/09/2026): o controle de versão é exigido para seguir a proveniência do que se produz; o Git não serve para versionar binários; branches permitem desenvolvimento não linear; plataformas citadas: GitHub, GitLab e Codeberg.

Git é um sistema de controle de versão distribuído, livre e de código aberto (GPLv2), segundo git-scm.com/about — o site cita uma pesquisa de 2022 em que «96% dos desenvolvedores profissionais usam Git», e o histórico do kernel Linux (1,4 milhão de commits) ocupa 5,5 GB. Para a pesquisa, o que importa é outra coisa: cada commit guarda quem mudou, quando, o quê e por quê.

Pasta com cópias
  • texto_v1.docx, texto_v2.docx, texto_final.docx, texto_final_REVISADO.docx
  • Ninguém sabe o que mudou entre duas cópias, nem quem mudou
  • Dois autores editando: uma cópia sobrescreve a outra
  • O backup é a última cópia que alguém lembrou de fazer
Repositório Git
  • Um único main.tex; o histórico fica em .git/
  • git log lista cada versão com autor, data e mensagem; git diff mostra linha a linha o que mudou
  • Cada autor trabalha na sua cópia; o Git combina as mudanças e aponta os conflitos
  • git push leva o histórico inteiro para o GitHub, o GitLab ou o servidor da instituição
Regra

O Git versiona texto: .tex, .md, .csv, .py, .R, .bib. Um .docx ou um PDF entra, mas o Git só sabe dizer que «mudou», não o quê — o Turing Way é direto: não é ferramenta para versionar binários. Quem escreve em LaTeX (manual irmão) ganha o diff por linha de graça.

O que é e por que usar2 de 5 · Ram (2013); Perez-Riverol et al. (2016); Blischak, Davenport e Wilson (2016); Wilson et al. (2017); The Turing Way (2024); Software Carpentry

O que a evidência e os guias dizem: reprodutibilidade, transparência e «práticas boas o bastante»

FonteO que dizO que muda para você
Ram (2013), Source Code for Biology and MedicineO Git pode facilitar maior reprodutibilidade e mais transparência na ciênciaO histórico do projeto é parte do método, não um detalhe técnico
Perez-Riverol et al. (2016), PLOS Comput. Biol.«Ten Simple Rules» para tirar proveito do Git e do GitHubRegras práticas: repositório por projeto, commits pequenos, issues, releases com DOI
Blischak, Davenport e Wilson (2016), PLOS Comput. Biol.Introdução rápida ao controle de versão com Git e GitHub para cientistasO tutorial que a Parte 2 segue no espírito: poucos comandos, usados sempre
Wilson et al. (2017), PLOS Comput. Biol.«Good enough practices»: manuscrito em texto simples e sob controle de versãoNão precisa dominar o Git inteiro; o básico já é «bom o bastante»
The Turing Way (2024), ZenodoControle de versão é exigido para seguir a proveniência; nada de binários; branches; GitHub, GitLab, CodebergO manual de referência para pesquisa reprodutível, ética e colaborativa (CC BY 4.0)
Software Carpentry, Version Control with Git14 episódios, de «Automated Version Control» a «Citation» e «Hosting» (CC BY 4.0)Onde praticar depois deste manual (slide «Para aprofundar»)
O que o Git resolve
  • «Qual versão do script gerou a Tabela 3?» — a tag da submissão responde
  • «O que mudou desde a qualificação?» — git diff entre duas tags
  • Orientador e estudante editando o mesmo texto, com histórico de quem fez o quê
  • Revisor pedindo o código: um link para o repositório, com DOI
O que o Git não resolve
  • Backup dos dados brutos grandes — esses vão para um repositório de dados (OSF, Zenodo, o da instituição)
  • Anonimização: um repositório privado não torna um dado pessoal público em «anônimo»
  • Organização do projeto: a estrutura de pastas vem do plugin e do manual de Metodologia
Regra

Comece pequeno, como Wilson et al. (2017) recomendam: um repositório por projeto, git add e git commit ao fim de cada sessão de trabalho, uma tag a cada marco. Branches, pull requests e CI vêm depois, quando houver mais de uma pessoa ou mais de um caminho a explorar.

O que é e por que usar3 de 5 · git-scm.com · github.com · about.gitlab.com · captura de 09/09/2026

Git × GitHub × GitLab: a ferramenta no seu computador e os serviços que hospedam o repositório

Página inicial do GitHub em português, com o título O futuro do desenvolvimento de software acontece em conjunto e os botões de inscrição
Figura 2 A home do GitHub em português (captura de 09/09/2026): «O futuro do desenvolvimento de software acontece em conjunto». O GitHub é um serviço que hospeda repositórios Git e acrescenta a interface web, issues, pull requests, Actions, Pages e Codespaces; a conta pessoal é gratuita (slide «Conta e planos»).
NomeO que éOnde roda · custo
GitO programa de controle de versão: cria o repositório, registra commits, compara versões, combina branches. Funciona sem internet e sem contaNo seu computador · gratuito (GPLv2); versão 2.55.0
GitHubServiço que hospeda repositórios Git e soma interface web, issues, pull requests, Actions, Pages, Codespaces, «Cite this repository» e a integração com o ZenodoNa nuvem · Free (US$ 0), Team (US$ 4/usuário/mês), Enterprise (US$ 21)
GitLabAlternativa com o mesmo Git por baixo: gerenciamento de código e CI/CD; muitas universidades hospedam uma instância própriaNa nuvem ou na instituição · Gratuito (US$ 0), Premium (US$ 29/usuário/mês, anual), Ultimate (sob consulta)
CodebergPlataforma comunitária citada pelo Turing Way como alternativaNa nuvem
Regra

Aprenda o Git, não o GitHub: tudo o que este manual faz no terminal funciona igual com GitLab, Codeberg ou um servidor da instituição. O GitHub é a escolha deste manual porque é o mais usado, tem documentação em português e liga-se ao Zenodo para o DOI (Parte 4) — mas o repositório é seu e pode ser levado para outro serviço com um git push.

Vocabulário

Local é o repositório na sua máquina; remoto é a cópia no serviço (por convenção chamada origin). git push envia commits do local para o remoto; git pull traz os do remoto; git clone cria um local a partir de um remoto.

O que é e por que usar4 de 5 · docs.github.com «Sobre arquivos grandes no GitHub» · LGPD · checar_repo.py

O que entra e o que fica fora do Git: texto e scripts entram; dados pessoais, arquivos licenciados, segredos e binários pesados ficam fora

Entra no Git
  • Texto: .tex, .md, .bib, .csv pequenos, o diário de busca
  • Código: .py, .R, .sh, notebooks, requirements.txt
  • Metadados: README, LICENSE, CITATION.cff, .gitignore
  • Figuras finais leves (PDF, PNG de poucos MB) e tabelas de resultados
  • Dados derivados, agregados e anonimizados, quando a licença permite
Fica fora — sempre
  • Dados pessoais de participantes (LGPD): nome, CPF, e-mail, gravações, prontuários — mesmo em repositório privado
  • Arquivos licenciados: PDFs de artigos de bases pagas, exportações completas de bases (Web of Science, Scopus), planilhas de terceiros
  • Segredos: .env, tokens, chaves de API, senhas, chaves privadas (.pem, id_rsa)
  • Binários pesados: vídeos, áudio, imagens brutas, modelos treinados, bancos de dados
  • Arquivos gerados: .aux, .log, __pycache__/, .Rhistory
Limite do GitHub (docs, 09/09/2026)Valor
Aviso por arquivoacima de 50 MiB
Bloqueio por arquivoacima de 100 MiB (o push é recusado)
Upload pelo navegadoraté 25 MiB por arquivo
Tamanho do repositórioidealmente < 1 GB; «fortemente recomendado» < 5 GB
Acima dissoGit LFS (slide «Arquivos grandes e Git LFS»)
Regra

Uma pasta dados_FORA_DO_GIT/ (o plugin já a cria e a deixa fora do versionamento) recebe tudo o que é bruto, pessoal ou licenciado; no repositório entram o script que processa e o resultado agregado. Segredos ficam num .env listado no .gitignore desde o primeiro commit.

Armadilha

«Apaguei no commit seguinte». Apagar um arquivo não o tira do histórico: quem clonar o repositório ainda encontra o segredo ou o CPF nos commits anteriores. Um segredo que entrou no Git está vazado — troque a credencial; o checar_repo.py (Parte 5) avisa com «BLOQUEIO» antes do push.

O que é e por que usar5 de 5 · git-scm.com/install · capturas de 09/09/2026

Instalar e configurar: Git 2.55.0 para Windows, macOS e Linux; user.name e user.email uma vez por máquina

Página de instalação do Git (git-scm.com/install) com as abas Windows, macOS e Linux e a versão 2.55.0
Figura 3 git-scm.com/install (captura de 09/09/2026): Windows, macOS e Linux; versão 2.55.0. Windows: instalador «Git for Windows»; macOS: Homebrew (brew install git) ou Xcode Command Line Tools; Linux: apt install git, dnf install git.
Página inicial do git-scm.com com Latest source release 2.55.0 e os links para o livro Pro Git e a documentação
Figura 4 A home de git-scm.com (captura de 09/09/2026): «Latest source release 2.55.0»; daqui saem a documentação de referência e o livro Pro Git, traduzido para o português (slide «Para aprofundar»).
terminal — depois de instalar (o mesmo em Windows, macOS e Linux)
git --version                                  # confere a instalação (nesta máquina: 2.48.1)
git config --global user.name "Aluna Exemplo"   # o nome que vai em cada commit
git config --global user.email "aluna@universidade.br"
git config --global --list                     # confere o que ficou gravado
Regra

Nome e e-mail vão para o histórico de todos os commits e aparecem no GitHub: use o nome com que você assina os artigos e um e-mail que continue seu depois do curso. O VS Code exige essas duas configurações e Git ≥ 2.0.0 para funcionar (slide «GitHub Desktop e VS Code»).

Versão

A demonstração deste manual rodou com Git 2.48.1; nenhum comando aqui exige a versão mais nova (2.55.0). O git init -b main (Parte 2) cria o repositório já com o branch main, sem depender de configuração.

Parte 2Git no dia a dia

init, status, add e commit; log e boas mensagens; .gitignore; branch, diff, merge e tag; conflitos; desfazer com segurança; onde aprofundar

Sete slides com o terminal aberto: cada comando aparece com a saída real da sessão de 09/09/2026 (Git 2.48.1, em português, repositório fictício minha-pesquisa). Os conceitos que não foram executados na demonstração — conflitos e desfazer — são explicados sem inventar saída.

02
Git no dia a dia1 de 7 · demonstração de 09/09/2026 · Git 2.48.1 em português

Começar um repositório: git init, git status, git add e o primeiro git commit

Terminal: mkdir e cd minha-pesquisa, git init -b main, git config user.name e user.email, git status --short com quatro arquivos não rastreados, git add, git commit com a saída root-commit 3b95655 e git log --oneline
Figura 5 A sessão de 09/09/2026 (saída real, caminho trocado por /home/usuario): git init -b main responde «Repositório vazio Git inicializado em /home/usuario/minha-pesquisa/.git/»; git status --short lista quatro itens com ?? (não rastreados); git add e git commit -m produzem [main (root-commit) 3b95655] … 4 files changed, 25 insertions(+); git log --oneline mostra o commit.
1git init -b mainNa pasta do projeto: cria a pasta oculta .git/ e o branch main. Uma vez por projeto
2git status --short?? = arquivo que o Git ainda não rastreia; M = modificado; A = adicionado à área de preparação
3git add …Coloca os arquivos escolhidos na área de preparação (staging): o que o próximo commit vai incluir
4git commit -m "…"Registra a versão com a mensagem; o código 3b95655 é o identificador do commit
Regra

Nomeie os arquivos no git add (como na figura: README.md .gitignore 06_texto/main.tex 01_buscas/BUSCA.csv) até o .gitignore estar pronto (slide seguinte); só então git add -A é seguro. Sempre git status antes de git commit: é a lista do que vai entrar.

O que a saída diz

root-commit é o primeiro commit do repositório; create mode 100644 é o modo de arquivo normal (sem permissão de execução). Os identificadores (3b95655) são únicos por repositório: os seus serão diferentes.

Git no dia a dia2 de 7 · Pro Git, «Fundamentos do Git» · Wilson et al. (2017)

git log e o que é um bom commit: pequeno, coeso e com uma mensagem que diga o que mudou e por quê

terminal — ler o histórico e as diferenças
git log --oneline                      # uma linha por commit: identificador e mensagem
git log --oneline --graph --decorate   # com o desenho dos branches e as tags (Figura 7)
git diff                               # o que mudou nos arquivos e ainda não foi adicionado
git diff --staged                      # o que já está na área de preparação
git show 3b95655                       # tudo o que um commit mudou
mensagens da demonstração — reais, na Figura 5 e na Figura 7
Estrutura inicial do projeto: README, .gitignore, main.tex e diário de busca
Capítulo 2: primeiro parágrafo da revisão
Tira o .env do Git (a chave foi trocada)
Licença e arquivo de citação
Um bom commitPor quê
Faz uma coisa«Capítulo 2: primeiro parágrafo da revisão» — dá para entender, comparar e desfazer sozinho
Mensagem no imperativo ou no presente«Tira o .env do Git», «Acrescenta a Tabela 3»: a primeira linha é o que aparece em git log --oneline e no GitHub
Diz o porquê quando não é óbvio«(a chave foi trocada)» — quem ler o histórico daqui a um ano agradece
FrequenteAo fim de cada sessão de trabalho, ou a cada resultado: Wilson et al. (2017) chamam isso de prática «boa o bastante»
Não é «tudo»Um commit gigante «atualizações» esconde o que aconteceu; é o erro mais comum do iniciante (slide «Erros comuns»)
Regra

Mensagens em português, como na demonstração; a primeira linha com até uns 70 caracteres. Se precisar explicar mais, git commit sem -m abre o editor e a partir da segunda linha vai o detalhe. O salvar_versao.sh (Parte 5) faz o add -A, mostra o que entra e faz o commit num comando só.

Git no dia a dia3 de 7 · docs.github.com «Ignorar arquivos» · github.com/github/gitignore · captura de 09/09/2026

.gitignore: o que o Git deve fingir que não existe — com os modelos oficiais para TeX, Python e R

Repositório github/gitignore com a lista de modelos de .gitignore por linguagem e ferramenta
Figura 6 github.com/github/gitignore (captura de 09/09/2026): a coleção oficial de modelos, um arquivo por linguagem ou ferramenta — entre eles TeX.gitignore, Python.gitignore e R.gitignore. Copie o conteúdo do que serve para o seu projeto para o .gitignore na raiz.
.gitignore — exemplo para um projeto com LaTeX, Python, R e dados fora do Git (monte o seu a partir dos modelos oficiais)
# dados brutos, pessoais ou licenciados: nunca
dados_FORA_DO_GIT/
# segredos
.env
*.pem
# gerados pelo LaTeX
*.aux
*.log
*.bbl
*.blg
*.out
*.toc
*.synctex.gz
# gerados pelo Python e pelo R
__pycache__/
.Rhistory
.ipynb_checkpoints/
terminal — arquivo que já entrou no Git só sai com --cached (não apaga do disco)
git rm --cached .env          # tira do Git; o arquivo continua na pasta
echo ".env" >> .gitignore     # e passa a ser ignorado
git commit -m "Tira o .env do Git (a chave foi trocada)"
Regra

O .gitignore fica na raiz do repositório e entra no primeiro commit (como na Figura 5). Um padrão vale para toda a árvore; pasta/ ignora a pasta inteira. Para ignorar algo em todos os repositórios da máquina (arquivos do editor, do sistema), o arquivo é ~/.config/git/ignore. O gerador gitignore.io monta um arquivo a partir de várias ferramentas.

Git no dia a dia4 de 7 · demonstração de 09/09/2026

Branch, diff, merge e tag: uma linha paralela para a revisão do capítulo, de volta ao main, e uma tag por marco

Terminal: git switch -c revisao-capitulo-2, git diff com linhas removidas e adicionadas no main.tex, git commit -am, git switch main, git merge com Fast-forward, git tag -a v0.1-qualificacao e git log --oneline --graph --decorate
Figura 7 A sessão de 09/09/2026 (saída real, caminho trocado por /home/usuario): git switch -c revisao-capitulo-2 cria e entra no branch; git diff mostra a linha removida (-, em vermelho) e as acrescentadas (+, em verde); git commit -am; git switch main; git merge revisao-capitulo-2 responde «Fast-forward»; git tag -a v0.1-qualificacao -m "…"; e git log --oneline --graph --decorate mostra HEAD -> main, tag: v0.1-qualificacao.
ComandoO que faz
git switch -c nomeCria um branch e muda para ele; os commits seguintes ficam nessa linha, sem tocar o main
git diffCompara o arquivo no disco com o último commit: - saiu, + entrou
git commit -am "…"Adiciona todos os arquivos já rastreados que mudaram e faz o commit (arquivos novos ainda precisam de git add)
git switch maingit merge nomeVolta ao main e traz os commits do branch. «Fast-forward»: o main só avançou, porque ninguém mexeu nele enquanto isso
git tag -a v0.1-qualificacao -m "…"Tag anotada (com autor, data e mensagem) no commit atual: o marco «versão entregue à qualificação»
Regra

Uma tag por marco que alguém pode pedir de volta: qualificação, submissão do artigo, versão que gerou os resultados, defesa. Use sempre -a e -m: é a tag anotada que carrega a mensagem e que o git push --follow-tags envia (Parte 3). Branch para trabalhar sem medo — um capítulo em revisão, uma análise alternativa — e merge quando ficar bom.

Sem branch também funciona

Quem trabalha sozinho pode viver no main com commits e tags. O branch começa a valer quando há um orientador ou colega editando ao mesmo tempo, ou quando você quer testar algo que talvez não fique.

Git no dia a dia5 de 7 · Pro Git, «Ramificação» · Software Carpentry, episódio «Conflicts»

Conflitos: quando duas pessoas mudam a mesma linha, o Git para e pede que alguém decida

Na demonstração o merge foi «Fast-forward» porque só um lado mudou. Um conflito acontece quando os dois lados (dois branches, ou o seu local e o remoto) mudaram a mesma linha do mesmo arquivo. O Git não escolhe: ele grava as duas versões no arquivo, entre marcadores, e espera. O exemplo ao lado é ilustrativo — não foi executado na sessão deste manual.

06_texto/main.tex — como um conflito aparece dentro do arquivo (exemplo ilustrativo)
\chapter{Revisão da literatura}
<<<<<<< HEAD
A manutenção preditiva usa dados de sensores para antecipar falhas.
=======
A manutenção preditiva usa séries temporais de sensores para prever falhas.
>>>>>>> revisao-orientador
\end{document}
MarcadorO que é
<<<<<<< HEADComeça a versão do branch em que você está
=======Separa as duas versões
>>>>>>> nomeTermina a versão do outro branch (ou do remoto)
1git statusLista os arquivos em conflito («both modified»)
2Abra o arquivoEscolha uma versão, ou escreva a combinação das duas; apague as três linhas de marcadores
3git add arquivoDiz ao Git que o conflito desse arquivo foi resolvido
4git commitFecha o merge; sem -m, o Git propõe a mensagem
Regra

Conflito não é erro: é o Git protegendo o trabalho dos dois lados. Resolva no editor (o VS Code mostra botões para aceitar cada lado), compile o .tex ou rode o script antes do commit final, e nunca deixe um marcador dentro do arquivo. Quanto menores e mais frequentes os commits e os merges, menos conflitos.

Para desistir

git merge --abort devolve o repositório ao estado anterior ao merge, sem perder nada.

Git no dia a dia6 de 7 · Pro Git, «Fundamentos do Git» e «Ferramentas do Git» · só nomes e conceitos; nada foi executado na demonstração

Desfazer com segurança: git restore para o arquivo, git revert para o commit — e por que reset --hard fica para o fim

Quero…ComandoO que aconteceRisco
Voltar um arquivo ao último commitgit restore arquivoDescarta as mudanças não commitadas desse arquivoperde o que não foi commitado
Tirar da área de preparaçãogit restore --staged arquivoDesfaz o git add; o arquivo continua modificado no discoseguro
Desfazer um commit já feitogit revert 8f4e070Cria um novo commit que anula o anterior; o histórico continua íntegroseguro; pode dar push
Corrigir a mensagem do último commitgit commit --amendReescreve o último commit (só se ainda não foi enviado ao remoto)não use depois do push
Ver um arquivo como estava numa taggit show v0.1-qualificacao:06_texto/main.texImprime a versão antiga sem mudar nadaseguro
Jogar fora tudo desde um commitgit reset --hard 3b95655Apaga commits posteriores e as mudanças no discodestrutivo
Regra

Três verbos resolvem quase tudo: restore (arquivo), revert (commit) e switch (branch). Prefira sempre o que acrescenta um commit ao que apaga — o revert deixa registrado que a Tabela 3 foi refeita e por quê. O reset --hard e o force push reescrevem história: em repositório compartilhado, apagam o trabalho de outra pessoa.

Armadilha

«Desfazer» um segredo com revert. O revert tira o arquivo da versão atual, mas o commit original continua no histórico — e no GitHub. Segredo que subiu está vazado: troque a credencial. O git rm --cached resolve para o que ainda não foi enviado (Figura 8).

Antes de qualquer comando destrutivo

git status e git log --oneline. Se estiver em dúvida, faça uma cópia da pasta inteira — o Git não impede, e o Pro Git dedica capítulos («Ferramentas do Git», «Git Internals») ao que pode ser recuperado.

Git no dia a dia7 de 7 · git-scm.com/book/pt-br/v2 · swcarpentry.github.io/git-novice · capturas de 09/09/2026

Para aprofundar: o Pro Git em português (gratuito) e a oficina Version Control with Git do Software Carpentry

Sumário do livro Pro Git, segunda edição, em português do Brasil no site git-scm.com, com os capítulos Primeiros Passos, Fundamentos do Git, Ramificação e os demais
Figura 8 Pro Git, 2ª edição (Chacon e Straub, Apress, 2014), em git-scm.com/book/pt-br/v2 (captura de 09/09/2026): tradução completa para o português, licença CC BY-NC-SA 3.0, PDF e EPUB gratuitos. Capítulos: Primeiros Passos, Fundamentos do Git, Ramificação, Git no Servidor, Git Distribuído, GitHub, Ferramentas do Git, Customizando o Git, Git e Outros Sistemas, Git Internals e apêndices.
Página da oficina Version Control with Git do Software Carpentry com a lista de episódios
Figura 9 Version Control with Git, do Software Carpentry (captura de 09/09/2026; CC BY 4.0): 14 episódios — Automated Version Control, Setting Up Git, Creating a Repository, Tracking Changes, Exploring History, Ignoring Things, Remotes in GitHub, Collaborating, Conflicts, Open Science, Licensing, Citation, Hosting e Using Git from RStudio.
Depois deste manual, leiaPara
Pro Git, «Fundamentos do Git»Tudo sobre status, add, commit, log, diff, desfazer e tags
Pro Git, «Ramificação»Branches e merges com desenhos; conflitos com calma
Pro Git, «GitHub»Conta, fork, pull request, organização
Software Carpentry, episódios 1 a 9A mesma sequência da Parte 2, com exercícios; «Remotes in GitHub» e «Collaborating» cobrem a Parte 3
Software Carpentry, «Open Science», «Licensing», «Citation»O que a Parte 4 deste manual faz com licença, CITATION.cff e DOI
Regra

Quando um comando deste manual não bastar, a resposta está no Pro Git — em português, gratuito e mantido pelo próprio projeto Git. Prefira-o a respostas soltas em fóruns: elas costumam trazer o reset --hard e o force push como se fossem inofensivos.

RStudio

O episódio suplementar «Using Git from RStudio» mostra a aba Git do RStudio para quem trabalha em R; os comandos são os mesmos.

Parte 3GitHub passo a passo

Conta e planos; criar repositório e «Olá, Mundo»; remoto e push; a página de um repositório real; commits, Actions e CI; issues e pull requests; Desktop, VS Code, CLI e Codespaces; Pages; arquivos grandes e LFS; Overleaf e OSF

As páginas públicas (home, preços, documentação em português, um repositório público desta série) aparecem em capturas de 09/09/2026. O que exige login — criar o repositório, o painel de configurações — é descrito pela documentação oficial em português, com os nomes exatos dos botões. O manual não faz login e não pede senha.

03
GitHub1 de 12 · github.com/pricing · education.github.com/pack · capturas de 09/09/2026

Conta e planos: o GitHub Free basta para a pesquisa — e o Student Developer Pack dá o Pro a estudantes verificados

Página de preços do GitHub com os planos Free por US$ 0, Team por US$ 4 e Enterprise por US$ 21 por usuário por mês
Figura 10 github.com/pricing (captura de 09/09/2026): «Free» US$ 0; «Team» US$ 4 por usuário/mês («first 12 months»); «Enterprise» US$ 21 por usuário/mês. O plano gratuito já inclui repositórios públicos e privados ilimitados.
Página do GitHub Student Developer Pack com a oferta de GitHub Pro gratuito para estudantes e ferramentas de parceiros
Figura 11 education.github.com/pack (captura de 09/09/2026): «GitHub Pro gratuito enquanto você for estudante», Copilot, «acesso Pro ao Codespaces» e mais de 50 ferramentas de parceiros; o pedido é feito em github.com/settings/education/benefits, para estudantes verificados pelo GitHub.
PlanoPreçoO que inclui (github.com/pricing, 09/09/2026)
FreeUS$ 0Repositórios públicos e privados ilimitados; colaboradores ilimitados; 2.000 minutos de GitHub Actions por mês; 500 MB no Packages; 120 horas-núcleo e 15 GB de Codespaces por mês; GitHub Pages em repositórios públicos; alertas do Dependabot; suporte da comunidade
TeamUS$ 4 por usuário/mês3.000 minutos de Actions; 2 GB de Packages; revisores obrigatórios, branches protegidas, code owners; suporte por e-mail/web
EnterpriseUS$ 21 por usuário/mês50.000 minutos; 50 GB; SAML SSO; SLA de 99,9%
Pro (individual)gratuito no Student Developer PackNão aparece em destaque na página de preços; vem com o pacote de estudante
Regra

Crie a conta gratuita em github.com com o e-mail que você configurou no Git (slide «Instalar e configurar») e um nome de usuário que continue fazendo sentido depois do curso: ele entra na URL do repositório, no CITATION.cff e no DOI. Este manual não cria conta nem faz login: a senha é digitada só na página do GitHub.

Sem preço em reais

A página de preços mostra dólares; o manual não converte nem afirma promoções. O Student Developer Pack exige verificação de estudante feita pelo GitHub — a página não detalha os documentos.

GitHub2 de 12 · docs.github.com/pt «Criar um repositório» e «Olá, Mundo» · capturas de 09/09/2026 · tela logada conforme a documentação oficial

Criar o repositório e o «Olá, Mundo»: «+» → «Novo repositório» → nome → «Criar repositório»; depois branch, edição, pull request e merge

Documentação do GitHub em português, Criar um repositório, com os passos do formulário de novo repositório
Figura 12 «Criar um repositório», em docs.github.com/pt (captura de 09/09/2026): «+» no canto superior → «Novo repositório» → nome, descrição, Público ou Privado, «Adicionar um arquivo LEIAME» → «Criar repositório». A página github.com/new exige login e não foi capturada.
Documentação do GitHub em português, Olá Mundo, com o tutorial de criar branch, editar o README, abrir e mesclar um pull request
Figura 13 «Olá, Mundo», em docs.github.com/pt (captura de 09/09/2026): o tutorial oficial que cria o repositório hello-world, o branch readme-edits, edita o README, abre e mescla uma solicitação de pull — tudo pelo navegador.
1«+» → «Novo repositório»Nome (hello-world no tutorial; minha-pesquisa aqui), descrição, Público ou Privado, «Adicionar um arquivo LEIAME» → «Criar repositório»
2BranchMenu «main» → digitar readme-edits → «Criar branch: readme-edits a partir do main»
3Editar e confirmarEditar o README → «Confirmar alterações» (mensagem de commit) → «Confirmar alterações»
4Pull request«Solicitações de pull» → «New pull request» → «Criar solicitação de pull»
5Mesclar«Mesclar solicitação de pull» → «Confirmar mesclagem» → «Excluir ramo»
Regra

Para o projeto de pesquisa que já existe no seu computador (Parte 2), crie o repositório no GitHub sem «Adicionar um arquivo LEIAME» e sem .gitignore: o histórico vem do git push (slide seguinte). O «Olá, Mundo» é para entender a interface — faça-o uma vez, num repositório de teste.

Público ou privado

Privado enquanto o texto está em construção, se preferir; público quando for citar ou pedir o DOI — o Zenodo só arquiva repositórios públicos (Parte 4). Dado pessoal não entra em nenhum dos dois.

GitHub3 de 12 · demonstração de 09/09/2026

Remoto e push: git remote add origin e git push -u origin main --follow-tags levam o histórico e as tags para o GitHub

Terminal: salvar_versao.sh com --tag v0.2, checar_repo.py sem bloqueios, git remote add origin para um repositório bare local e git push -u origin main --follow-tags com new branch e new tag
Figura 14 A sessão de 09/09/2026 (saída real, caminho trocado por /home/usuario): salvar_versao.sh faz o commit e a tag v0.2 (Parte 5); checar_repo.py devolve «0 bloqueio(s), 1 aviso(s)» — o aviso é «nenhum remoto configurado»; git remote add origin e git push -u origin main --follow-tags respondem * [new branch] main -> main, * [new tag] v0.1-qualificacao, * [new tag] v0.2 e «branch 'main' set up to track 'origin/main'». O remoto aqui é um repositório bare local (../remoto-demonstracao.git), porque nenhum repositório foi criado no GitHub para a demonstração; no GitHub, a URL é https://github.com/<usuário>/<repo>.git.
terminal — ligar o projeto local ao repositório recém-criado no GitHub
git remote add origin https://github.com/<usuário>/minha-pesquisa.git
git push -u origin main --follow-tags     # primeira vez: -u grava o vínculo; --follow-tags envia as tags anotadas
# das próximas vezes, na pasta do projeto:
git push                                  # envia os commits novos
git push --follow-tags                    # commits e tags novas
git pull                                  # traz o que mudou no GitHub (edições pelo navegador, colegas)
Regra

Ao fim de cada sessão: git status → commit → git push. Só depois do push o repositório existe em dois lugares — até lá, o checar_repo.py avisa: «o backup só existe nesta máquina». A URL do remoto se lê com git remote -v.

Autenticação

No primeiro push o Git pede que você se autentique no GitHub: siga o que a tela mostrar (a documentação de autenticação está em docs.github.com/pt). Nunca cole uma credencial em script, em arquivo versionado nem neste manual — o checar_repo.py procura exatamente esse tipo de conteúdo antes do push.

GitHub4 de 12 · repositório público de um manual desta série · capturas de 09/09/2026

A página de um repositório real: árvore de arquivos, README renderizado, «About», releases, linguagens — e o arquivo aberto

Página inicial de um repositório público no GitHub com a árvore de arquivos, o README renderizado abaixo, a caixa About, Releases e Languages na barra lateral
Figura 15 A página inicial de um repositório público desta série — o do manual de revisão sistemática (captura de 09/09/2026): árvore de arquivos com o último commit por item, README renderizado abaixo, e na barra lateral «About», «Releases» (ainda vazio) e «Languages».
Arquivo README.md aberto no navegador do GitHub, com o conteúdo renderizado e os botões de editar e ver o código-fonte
Figura 16 O README.md do mesmo repositório aberto no navegador (captura de 09/09/2026): qualquer arquivo de texto pode ser lido, editado e ter o histórico consultado pela interface.
ElementoO que é
Árvore de arquivosAs pastas e arquivos do último commit do branch escolhido; ao lado, a mensagem do commit que mexeu em cada um
READMERenderizado logo abaixo da árvore: é a «capa» do projeto (slide «README»)
«About»Descrição, site e tópicos; edita-se pela engrenagem ao lado
«Releases»Versões publicadas com notas e anexos (Parte 4); vazio até a primeira
«Languages»Proporção de cada linguagem, calculada pelos arquivos
AbasCommits, issues, pull requests, Actions e configurações — aparecem nos slides seguintes
Regra

A página do repositório é o que um revisor, um colega ou um avaliador vê primeiro. Três coisas a fazem legível: um README que diga o que o projeto é e como reproduzir, um LICENSE e um CITATION.cff — os três estão na Parte 4 e os três são o que o checar_repo.py cobra.

Não capturado

O grafo de rede do repositório, que desenha branches e forks, devolveu uma página de erro nas tentativas sem login em 09/09/2026 e não aparece neste manual.

GitHub5 de 12 · repositório público de um manual desta série · capturas de 09/09/2026

Commits e GitHub Actions: o histórico na web e um workflow que confere o repositório a cada push (integração contínua)

Lista de commits de um repositório público no GitHub, com mensagem, autor, data e identificador de cada commit
Figura 17 A lista de commits do mesmo repositório (captura de 09/09/2026): é o git log na web — mensagem, autor, data e identificador; cada linha abre o diff daquele commit.
Aba Actions de um repositório público no GitHub com o workflow verificar executado
Figura 18 A aba «Actions» do mesmo repositório (captura de 09/09/2026): o workflow «verificar» (arquivo verificar.yml) rodou a cada push — o GitHub executou um script de conferência numa máquina virtual e registrou o resultado.
.github/workflows/verificar.yml — um workflow mínimo que roda o checar_repo.py a cada push (exemplo ilustrativo; sintaxe em docs.github.com/pt/actions)
name: verificar
on: [push, pull_request]
jobs:
  checar:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: python3 scripts/checar_repo.py .
TermoO que é
CI (integração contínua)Rodar conferências e testes automaticamente a cada commit enviado
GitHub ActionsO serviço de CI do GitHub: arquivos YAML em .github/workflows/; 2.000 minutos por mês no plano Free
WorkflowUm arquivo YAML: quando rodar (on), em que máquina (runs-on) e os passos (steps)
StatusVerde ou vermelho ao lado de cada commit e em cada pull request
Regra

Para a pesquisa, um workflow que rode a auditoria (checar_repo.py) e, se houver, os testes do código já vale: um push com segredo ou com arquivo grande fica vermelho antes de alguém clonar. Compilar o LaTeX ou reexecutar a análise no Actions é o passo seguinte, quando o projeto estabilizar.

GitHub6 de 12 · docs.github.com/pt «Sobre problemas» e «Solicitações de pull» · capturas de 09/09/2026

Issues e pull requests: a lista de tarefas do projeto e a proposta de mudança com revisão

Documentação do GitHub em português, Sobre problemas, explicando o uso de issues para rastrear tarefas, bugs e ideias
Figura 19 «Sobre problemas» (issues), em docs.github.com/pt (captura de 09/09/2026): as issues rastreiam tarefas, bugs e ideias no repositório — cada uma com título, texto, comentários, etiquetas e responsável.
Documentação do GitHub em português, Solicitações de pull, explicando como propor mudanças de um branch para outro com revisão
Figura 20 «Solicitações de pull», em docs.github.com/pt (captura de 09/09/2026): uma pull request propõe as mudanças de um branch para outro, com discussão e revisão antes do merge — o que o «Olá, Mundo» fez pelo navegador (Figura 13).
Na pesquisaUse assim
Issue como tarefa«Refazer a Tabela 3 com os dados de 2025», «Conferir a NBR 6023 nas referências» — numerada, atribuída, fechada quando resolvida; o commit pode citar «#12»
Issue como dúvida do orientadorUm comentário por trecho, fora do e-mail, com histórico
Pull requestO branch revisao-capitulo-2 vira uma PR: o orientador lê o diff, comenta linha a linha, e o merge acontece na web
Sozinho no projetoIssues ainda valem como lista de pendências; a PR é opcional — o merge local (Figura 7) faz o mesmo
Regra

Issues e pull requests são públicas num repositório público: nada de dado de participante, nem de nome de avaliador, nem de trecho de artigo de base paga nos comentários. O que precisa ficar restrito fica no repositório privado ou fora do GitHub.

Fork

Para colaborar num repositório de outra pessoa sem permissão de escrita, faz-se um fork (cópia na sua conta), trabalha-se num branch e abre-se a pull request de volta — é como se contribui para pacotes de código aberto.

GitHub7 de 12 · github.com/apps/desktop · code.visualstudio.com/docs/sourcecontrol · capturas de 09/09/2026

Sem terminal: o GitHub Desktop e a visão «Source Control» do VS Code fazem os mesmos commits e pushes

Página do GitHub Desktop com o slogan Experimente o Git sem complicações e o botão de download
Figura 21 github.com/apps/desktop (captura de 09/09/2026): «Experimente o Git sem complicações». Cliente gráfico de código aberto (MIT), release 3.6.5 (04/09/2026), para Windows e macOS: clonar, ver mudanças, fazer commit, push e pull com botões.
Documentação Source control in VS Code, com a visão Source Control, o staging por arquivo e o commit com mensagem
Figura 22 «Source control in VS Code» (captura de 09/09/2026): a visão «Source Control» (ícone na barra lateral; Ctrl+Shift+G) lista as mudanças; o «+» ao lado do arquivo faz o staging (também por trecho, na visão de diff); o commit leva a mensagem; a barra de status mostra a sincronização e os commits de entrada e saída.
FerramentaVantagensO que saber
GitHub DesktopTudo por botões; diff visual; integra a conta do GitHubWindows e macOS; código aberto sob MIT; release 3.6.5
VS CodeO editor onde você já escreve o .tex ou o .py; staging por arquivo ou por trecho; troca de branches; gráfico de commits e Timeline por arquivo; extensão «GitHub Pull Requests and Issues» para revisar PRs no editorExige Git ≥ 2.0.0 instalado e user.name/user.email configurados; há geração de mensagem de commit por IA
Regra

Interface gráfica e terminal fazem a mesma coisa no mesmo repositório: use o VS Code no dia a dia e o terminal quando precisar de um comando que o botão não tem (tags anotadas, rm --cached, os scripts da Parte 5). Aprender os comandos primeiro (Parte 2) é o que faz os botões fazerem sentido.

Linux

A página do GitHub Desktop não lista plataformas; o repositório distribui para Windows e macOS. No Linux, o VS Code, o terminal e a GitHub CLI cobrem tudo.

GitHub8 de 12 · cli.github.com · github.com/features/codespaces · capturas de 09/09/2026

GitHub CLI (gh) e Codespaces: o GitHub no terminal e um computador de desenvolvimento no navegador

Página da GitHub CLI com o slogan GitHub CLI brings GitHub to your terminal e os comandos de instalação
Figura 23 cli.github.com (captura de 09/09/2026): «GitHub CLI brings GitHub to your terminal. Free and open source» — repositórios, issues, pull requests, releases, checks e aliases pelo terminal; instalação por brew install gh, WinGet, apt/dnf/zypper; versão v2.100.0 (03/09/2026). Nesta máquina: gh 2.46.0.
Página do GitHub Codespaces apresentando o ambiente de desenvolvimento hospedado na nuvem
Figura 24 github.com/features/codespaces (captura de 09/09/2026): «ambiente de desenvolvimento hospedado na nuvem», usado pelo navegador, pelo VS Code ou pela CLI; em contas pessoais, 120 horas-núcleo e 15 GB por mês no plano Free.
terminal — o que a GitHub CLI faz sem abrir o navegador (a sintaxe completa está em cli.github.com/manual)
gh repo create minha-pesquisa --private --source=. --push   # cria o repositório no GitHub a partir da pasta e faz o push
gh issue create --title "Refazer a Tabela 3"                 # abre uma issue
gh pr create                                                  # abre a pull request do branch atual
gh release create v0.2 --notes "Repositório pronto para publicar"   # publica uma release (Parte 4)
Regra

A CLI é o caminho mais curto de «pasta no computador» para «repositório no GitHub» sem clicar em formulário — e o que o plugin da Parte 5 usa quando o aluno pede para criar o repositório ou a release. Confira cada comando na página do manual antes de rodar: a sintaxe acima é a da documentação, não foi executada na demonstração.

Codespaces na pesquisa

Serve para rodar um script ou compilar o LaTeX num computador emprestado, sem instalar nada: o repositório abre num VS Code no navegador. A cota gratuita mensal (120 horas-núcleo, 15 GB) acaba; não é lugar para dados sensíveis, que não devem estar no repositório de qualquer forma.

GitHub9 de 12 · docs.github.com/pt «O que é o GitHub Pages?» · captura de 09/09/2026

GitHub Pages: um site estático a partir do repositório — a página do projeto, a documentação, o manual

Documentação do GitHub em português, O que é o GitHub Pages, explicando a hospedagem de sites estáticos a partir de um repositório
Figura 25 «O que é o GitHub Pages?», em docs.github.com/pt (captura de 09/09/2026): hospedagem de site estático (HTML, CSS, JavaScript) publicado diretamente de um repositório; gratuito em repositórios públicos no plano Free.
Item (docs, 09/09/2026)Valor
Site de usuárioRepositório <owner>.github.iohttps://<owner>.github.io; um por conta
Site de projetohttps://<owner>.github.io/<repo>; um por repositório
Domínio próprioOpcional
LimitesRepositório recomendado ≤ 1 GB; site ≤ 1 GB; largura de banda flexível de 100 GB/mês; 10 builds por hora (salvo com Actions próprio)
ProibidoUso comercial e e-commerce; envio de senhas ou cartões; os IPs dos visitantes são registrados
Regra

Para a pesquisa, o Pages publica a página do projeto (o README com um índice), a documentação de um pacote ou um relatório em HTML. Dados de participantes e resultados sob embargo não entram: o site é público e o repositório também. Um formulário de coleta de dados no Pages viola a regra de não receber senhas ou cartões e, mais importante, a LGPD.

Tela logada

A ativação fica nas configurações do repositório, que exigem login e não foram capturadas: consulte «O que é o GitHub Pages?» e os guias vizinhos em docs.github.com/pt.

GitHub10 de 12 · docs.github.com/pt «Sobre arquivos grandes no GitHub» · git-lfs.com · capturas de 09/09/2026

Arquivos grandes e Git LFS: 50 MiB avisa, 100 MiB bloqueia — e o LFS guarda o conteúdo fora do histórico

Documentação do GitHub em português, Sobre arquivos grandes no GitHub, com os limites de tamanho por arquivo e por repositório
Figura 26 «Sobre arquivos grandes no GitHub», em docs.github.com/pt (captura de 09/09/2026): aviso acima de 50 MiB, bloqueio acima de 100 MiB, 25 MiB pelo navegador; repositório idealmente abaixo de 1 GB e «fortemente recomendado» abaixo de 5 GB.
Página do Git Large File Storage com a descrição da ferramenta e os comandos git lfs install e git lfs track
Figura 27 git-lfs.com (captura de 09/09/2026): o Git LFS «substitui arquivos grandes como amostras de áudio, vídeos, conjuntos de dados e gráficos por ponteiros de texto dentro do Git, guardando o conteúdo num servidor remoto»; versão v3.8.0 (28/08/2026).
terminal — Git LFS (git-lfs.com; não executado na demonstração: nesta máquina o LFS não está instalado)
git lfs install                 # uma vez por máquina (Windows: instalador; macOS: brew install git-lfs; Linux: PackageCloud ou tarball)
git lfs track "*.psd"           # ou "*.mp4", "dados/*.parquet": grava a regra em .gitattributes
git add .gitattributes
git add dados/amostras.parquet  # commit e push normais: o Git guarda o ponteiro, o LFS o conteúdo
git commit -m "Amostras via LFS"
Git LFS no GitHub (docs de cobrança)Valor
Free e Pro10 GiB de armazenamento e 10 GiB de largura de banda
Team e Enterprise Cloud250 GiB
ExcedenteCobrado por GiB baixado e por hora de armazenamento (calculadora de preços do GitHub)
Regra

Antes do LFS, pergunte se o arquivo precisa estar no repositório: dado bruto grande pertence a um repositório de dados (OSF, Zenodo, o da instituição) com DOI, e o Git guarda o script que o lê. O LFS é para o que precisa acompanhar o código e cabe na cota. Um arquivo acima de 100 MiB já commitado bloqueia o push: tire-o do histórico antes de enviar — o checar_repo.py e o salvar_versao.sh recusam esses arquivos.

GitHub11 de 12 · docs.overleaf.com «Git integration and GitHub synchronization» · captura de 09/09/2026

Overleaf: a integração Git e o GitHub Synchronization são recursos premium — no plano gratuito, «Download → Source» e commit local

Documentação do Overleaf sobre Git integration e GitHub synchronization, indicando que são recursos premium e como clonar o projeto
Figura 28 «Git integration and GitHub synchronization», em docs.overleaf.com (captura de 09/09/2026): ambos são recursos premium (Overleaf Cloud pago; Server Pro 4.0+ para Git). Clone: https://git.overleaf.com/<ID_DO_PROJETO>, com autenticação por token criado nas configurações da conta.
RecursoComo (conforme a documentação)Plano
Git integrationMenu → Sync → Git; clonar https://git.overleaf.com/<ID_DO_PROJETO> com o token; o branch chama-se main; não suporta branches, Git LFS, tags nem submodules; symlinks viram arquivospremium
GitHub SynchronizationLiga um projeto Overleaf a um repositório GitHub e os mantém sincronizadospremium (Overleaf Cloud)
Plano gratuito«Download → Source» (zip) → descompactar na pasta do repositório local → git add, git commit, git pushgratuito
Regra

No gratuito, o Overleaf é o editor e o Git é o histórico: baixe o «Source» ao fim de cada sessão de escrita, faça o commit e o push. As tags por marco (qualificação, defesa) só existem no Git — a integração premium do Overleaf não as suporta. O manual irmão de LaTeX detalha o editor e os planos.

Token

O token do Overleaf é uma credencial: fica no gerenciador de credenciais do Git ou é digitado a cada clone — nunca num arquivo do repositório.

GitHub12 de 12 · help.osf.io «Connect GitHub to a project» · sem captura: a página redirecionou para uma página de transição em 09/09/2026

OSF: o add-on GitHub liga um repositório a um projeto do Open Science Framework — sincroniza os arquivos, não faz backup

1Projeto → «Add-ons»No projeto do OSF, a seção «Add-ons» → «Additional Storage»
2«Connect» em GitHubNome da conta → «Authorize» → login no GitHub → «Authorize CenterForOpenScience»
3Escolher o repositórioUm repositório por projeto do OSF
4«Files»Os arquivos do repositório aparecem na seção «Files» do projeto, com sincronização bidirecional
Limite (help.osf.io)Valor
Repositórios por projetoUm
BackupO OSF não faz backup do conteúdo do add-on: o que está no GitHub continua só no GitHub
Arquivo enviado do OSF para o GitHubAté 100 MB

O Open Science Framework é onde muitos programas pedem o pré-registro e o depósito de materiais. Com o add-on, o código e os scripts continuam versionados no GitHub e ficam visíveis no projeto do OSF, ao lado dos dados e do pré-registro — sem duplicar arquivos à mão.

Regra

Divida por natureza: dados (brutos anonimizados, derivados, dicionário de variáveis) no armazenamento do OSF ou num repositório de dados com DOI; código, scripts e texto no GitHub, ligado ao projeto pelo add-on. O add-on não substitui o DOI do código — esse vem do Zenodo (Parte 4).

Conforme a documentação

Os nomes «Add-ons», «Additional Storage», «Connect», «Authorize» e «Authorize CenterForOpenScience» são os de help.osf.io em 09/09/2026; o manual não fez login no OSF nem no GitHub para conferir a tela.

Parte 4Publicar: README, licença, citação e DOI

README; licença; CITATION.cff e «Cite this repository»; cffinit; releases; DOI pelo Zenodo em dois slides; GitLab como alternativa

O repositório vira algo citável em quatro arquivos e dois cliques: README, LICENSE, CITATION.cff e uma release que o Zenodo arquiva com DOI. Tudo conferido em docs.github.com/pt, choosealicense.com, citation-file-format.github.io e help.zenodo.org em 09/09/2026, sem login.

04
Publicar1 de 8 · docs.github.com/pt «Sobre o arquivo README do repositório» · captura de 09/09/2026

README: o que o projeto faz, por que é útil, como começar, onde obter ajuda e quem mantém — em Markdown, na raiz

Documentação do GitHub em português, Sobre o arquivo README do repositório, com o que um README deve conter e onde o GitHub o procura
Figura 29 «Sobre o arquivo README do repositório», em docs.github.com/pt (captura de 09/09/2026): o GitHub procura o README em .github/, na raiz ou em docs/ (nessa ordem); gera um sumário automático; acima de 500 KiB o arquivo é truncado; um README num repositório com o nome do usuário aparece no perfil.
README.md — esqueleto para um projeto de pesquisa (Markdown; o GitHub renderiza)
# Manutenção preditiva em guindastes portuários: dados e scripts

Scripts e dados derivados da dissertação «…» (versão 0.2, set. 2026).

## O que há aqui
- `01_buscas/` — diário de busca e estratégias por base
- `06_texto/` — o texto em LaTeX
- `scripts/` — `checar_repo.py`, `citacao_cff.py`, `salvar_versao.sh`

## Como reproduzir
1. `git clone https://github.com/<usuário>/minha-pesquisa.git`
2. `python3 scripts/checar_repo.py .`

## Dados
Os dados brutos não estão neste repositório (LGPD); os derivados
estão em `dados/` sob CC BY 4.0. Contato: e-mail institucional.

## Como citar
Veja `CITATION.cff` ou o botão «Cite this repository».

## Licença
CC BY 4.0 (texto e dados) — ver `LICENSE`.
Regra

Cinco perguntas, na ordem da documentação: o que faz, por que é útil, como começar, onde obter ajuda, quem mantém. Um README que diz onde os dados estão (e por que não estão aqui) evita a issue mais comum de um revisor. O checar_repo.py avisa quando o README falta.

Publicar2 de 8 · choosealicense.com · captura de 09/09/2026

Licença: sem um arquivo LICENSE ninguém pode reutilizar legalmente — MIT, GPLv3 ou Apache 2.0 para código; CC BY 4.0 para dados e texto

Página choosealicense.com com as licenças MIT e GNU GPLv3 em destaque e os links para outras licenças e para projetos que não são software
Figura 30 choosealicense.com (captura de 09/09/2026): em destaque, MIT («short and to the point»; permite quase tudo, inclusive versões fechadas) e GNU GPLv3 (igual, «except distributing closed source versions»); Apache 2.0 na página de licenças; as seções «I don't want to choose a license» e «My project isn't software». O site é CC BY.
LicençaParaO que permite (choosealicense.com)
MITCódigoCurta e direta; quase tudo, inclusive versões fechadas; exige manter o aviso de copyright
GNU GPLv3CódigoO mesmo, exceto distribuir versões fechadas: quem redistribui precisa abrir o código
Apache 2.0CódigoPermissiva; listada na página de licenças do site — leia o texto antes de escolher
CC BY 4.0Dados, texto, figuras«My project isn't software»: uso, cópia e adaptação com atribuição — a licença desta série
Nenhuma«I don't want to choose a license»: sem licença, ninguém pode legalmente reutilizar, mesmo com o repositório público
Regra

Um arquivo LICENSE na raiz com o texto integral da licença (copie de choosealicense.com — na demonstração, a CC BY 4.0 veio do repositório github/choosealicense.com). Código e dados no mesmo repositório podem ter licenças diferentes: diga no README qual vale para o quê. Licença é condição para o DOI pelo Zenodo (slide «DOI pelo Zenodo»).

Não é aconselhamento jurídico

A escolha depende do programa, do financiador e de coautores; dados de terceiros e artigos de bases pagas têm licença própria e não entram no repositório. Em dúvida, pergunte à instituição.

Publicar3 de 8 · docs.github.com/pt «Sobre os arquivos de CITATION» · citation-file-format.github.io · capturas de 09/09/2026

CITATION.cff: um arquivo na raiz e o GitHub mostra «Cite this repository», com APA e BibTeX prontos

Documentação do GitHub em português, Sobre os arquivos de CITATION, com um exemplo de CITATION.cff e a explicação do botão Cite this repository
Figura 31 «Sobre os arquivos de CITATION», em docs.github.com/pt (captura de 09/09/2026): com um CITATION.cff na raiz, a barra lateral do repositório ganha o botão «Cite this repository», com exportação em APA e BibTeX; preferred-citation aponta para o artigo quando se quer que citem o artigo, não o software.
Site do Citation File Format, citation-file-format.github.io, com a descrição do formato, a versão 1.2.0 e as ferramentas cffinit e cff-converter-python
Figura 32 citation-file-format.github.io (captura de 09/09/2026): Citation File Format, versão 1.2.0; ferramentas cffinit (formulário web) e cff-converter-python (cffconvert, para BibTeX, RIS e CodeMeta); o arquivo é lido pelo GitHub, pelo Zenodo e pelo Zotero.
CITATION.cff — o gerado na demonstração pelo citacao_cff.py (Figura 40); campos básicos da documentação
cff-version: 1.2.0
message: "Se você usar este software ou material, cite-o como abaixo."
title: "Manutenção preditiva em guindastes portuários: dados e scripts"
version: "0.1"
date-released: 2026-09-09
authors:
  - family-names: "Exemplo"
    given-names: "Aluna"
url: "https://github.com/aluna/minha-pesquisa"
license: CC-BY-4.0
CampoO que é
cff-versionVersão do formato: 1.2.0
messageO pedido de citação que o leitor vê
authorsLista com family-names e given-names (e, se houver, orcid)
title · versionTítulo e versão citadas; date-released, url, license e doi completam
preferred-citationQuando há artigo: os metadados do artigo, para que o botão cite o artigo
Regra

Um CITATION.cff por repositório, na raiz, atualizado a cada release (versão, data e, depois do Zenodo, o DOI). O Zenodo lê o arquivo para preencher os metadados do registro; o Zotero o importa. O citacao_cff.py (Parte 5) gera o arquivo e imprime o BibTeX e a referência ABNT para conferir com a biblioteca.

Publicar4 de 8 · citation-file-format.github.io/cff-initializer-javascript · captura de 09/09/2026

cffinit: o formulário web que monta ou atualiza o CITATION.cff sem escrever YAML à mão

Página do cffinit com os botões Create e Update para criar ou atualizar um arquivo CITATION.cff
Figura 33 cffinit (captura de 09/09/2026): «Create» começa um arquivo novo; «Update» carrega um CITATION.cff existente para editar. O formulário guia campo a campo e entrega o arquivo pronto para salvar na raiz do repositório.
1«Create» ou «Update»Novo, ou carregando o arquivo que já existe no repositório
2PreencherOs campos do formato: título, autores (family-names, given-names), versão, data, licença, URL, DOI se já houver
3BaixarO CITATION.cff gerado; salve na raiz do repositório
4Commit e pushgit add CITATION.cff → commit → push; o botão «Cite this repository» aparece
FerramentaQuando
cffinit (web)Primeira vez, ou para quem prefere formulário; valida o arquivo
citacao_cff.py (Parte 5)Pelo terminal, com BibTeX e ABNT impressos; recusa sobrescrever sem --forcar
cffconvert (cff-converter-python)Converter o .cff para BibTeX, RIS ou CodeMeta
Regra

Os autores do CITATION.cff são os autores do repositório (quem escreveu o código e organizou os dados), não necessariamente os do artigo — para o artigo há o preferred-citation. Use o ORCID de cada autor: é o que liga o DOI do Zenodo ao perfil.

Publicar5 de 8 · docs.github.com/pt «Gerenciar versões em repositórios» · capturas de 09/09/2026

Releases: «Versões» → «Rascunho de uma nova versão» → tag → título → notas → «Publicar versão» — cada release traz ZIP e tar.gz do código

Documentação do GitHub em português, Gerenciar versões em repositórios, com os passos para criar uma release
Figura 34 «Gerenciar versões em repositórios», em docs.github.com/pt (captura de 09/09/2026): «Versões» → «Rascunho de uma nova versão» → «Escolher uma marca» (tag existente ou nova) → «Título da versão» → «Descrever esta versão» (ou «Gerar notas de lançamento») → anexos opcionais → «Este é um pré-lançamento» → «Definir como versão mais recente» → «Publicar versão» ou «Salvar rascunho».
Página de releases de um projeto de terceiros no GitHub, com notas de lançamento, anexos e os arquivos Source code zip e tar.gz
Figura 35 A página de releases de um projeto de terceiros — a GitHub CLI (captura de 09/09/2026): cada versão com notas, anexos e, automaticamente, «Source code (zip)» e «Source code (tar.gz)». É a aparência que o seu repositório terá depois da primeira release.
Passo (docs, 09/09/2026)O que fazer
«Versões» → «Rascunho de uma nova versão»Na página do repositório
«Escolher uma marca»A tag anotada que você enviou com --follow-tags (v0.2), ou uma nova criada ali
«Título da versão» · «Descrever esta versão»O que mudou desde a anterior; o botão «Gerar notas de lançamento» escreve as notas automaticamente
AnexosOpcionais: o PDF da dissertação, uma planilha de resultados
«Publicar versão»A release fica pública; se o Zenodo estiver ligado, o DOI é emitido (slides seguintes)
Regra

Uma release por marco citável: a versão do código que gerou os resultados do artigo, a versão depositada com a dissertação. A tag no Git (Parte 2) é o ponto fixo; a release é a tag com nome, notas e anexos — e é ela que o Zenodo arquiva. «Este é um pré-lançamento» serve para versões em revisão.

Pelo terminal

gh release create v0.2 --notes "…" (GitHub CLI) faz o mesmo sem abrir o navegador.

Publicar6 de 8 · docs.github.com/pt «Referenciar e citar conteúdo» · zenodo.org · capturas de 09/09/2026

DOI pelo Zenodo: repositório público, com licença, ligado à conta — e cada release ganha um DOI

Documentação do GitHub em português, Referenciar e citar conteúdo, com os passos para emitir um DOI pelo Zenodo
Figura 36 «Referenciar e citar conteúdo», em docs.github.com/pt (captura de 09/09/2026): condições — repositório público e com licença; passos — zenodo.org → «Entrar com GitHub» → «Autorizar Zenodo» → página GitHub do Zenodo → alternar o repositório para «Ativado»; «o Zenodo arquiva seu repositório e emite um novo DOI sempre que você cria uma versão (release) do GitHub».
Página inicial do Zenodo, repositório de pesquisa aberto que emite DOI
Figura 37 zenodo.org (captura de 09/09/2026): o repositório aberto que arquiva o código, os dados e o texto e emite o DOI — o mesmo que registra o The Turing Way (DOI 10.5281/zenodo.3332807).
CondiçãoPor quê
Repositório públicoO Zenodo só arquiva o que pode ler; um repositório privado não recebe DOI por esta via
Arquivo LICENSEÉ a segunda condição da documentação do GitHub: o registro arquivado precisa dizer sob que termos pode ser reutilizado
Conta no Zenodo ligada ao GitHub«Entrar com GitHub» → «Autorizar Zenodo»: é o que permite ao Zenodo ver as releases
Uma releaseO DOI é emitido por release, não por commit; a primeira release depois de «Ativado» gera o primeiro DOI
Regra

Ordem: LICENSE e CITATION.cff no repositório → repositório público → ligar no Zenodo → release. O CITATION.cff (ou um .zenodo.json) preenche os metadados do registro — título, autores com ORCID, licença — e evita corrigir à mão no Zenodo depois. Depois do DOI, coloque-o no CITATION.cff e no README.

O que não está aqui

Limites de tamanho por registro no Zenodo não foram conferidos nesta data e não aparecem no manual. Telas logadas do Zenodo não foram capturadas: os nomes de botão são os da documentação do GitHub em português e de help.zenodo.org.

Publicar7 de 8 · help.zenodo.org «Enable a repository» · captura de 09/09/2026

DOI pelo Zenodo, passo a passo: perfil → GitHub → «Sync now» → ligar o controle deslizante → publicar a release

Página Enable a repository da ajuda do Zenodo, com a captura do menu do perfil apontando para GitHub e a explicação do controle deslizante
Figura 38 «Enable a repository», em help.zenodo.org (captura de 09/09/2026): menu do perfil → GitHub → «Sync now» → ligar o controle deslizante do repositório; as novas releases «são automaticamente ingeridas e arquivadas»; metadados por CITATION.cff ou .zenodo.json; integração com o Software Heritage.
1zenodo.org → «Entrar com GitHub»→ «Autorizar Zenodo» (docs do GitHub em português)
2Perfil → GitHubA página GitHub do Zenodo (zenodo.org/account/settings/github/) lista os seus repositórios; «Sync now» atualiza a lista
3Ligar o controle deslizanteAlternar o repositório para «Ativado»
4Publicar a release no GitHubO Zenodo arquiva e emite o DOI; cada release seguinte ganha um DOI novo
Depois do DOIOnde colocar
CITATION.cffCampo doi; commit → a próxima release já nasce com ele nos metadados
READMENa seção «Como citar»
Artigo ou dissertaçãoNa seção de disponibilidade de dados e código, e nas referências (a referência ABNT sai do citacao_cff.py)
Regra

O DOI aponta para o registro no Zenodo, não para o GitHub: mesmo que o repositório mude de nome ou saia do ar, o arquivo permanece. Cite a versão que gerou os resultados (o DOI daquela release), e não «o repositório».

Publicar8 de 8 · about.gitlab.com/pricing (pt) · captura de 09/09/2026

GitLab como alternativa: o mesmo Git por baixo, plano gratuito sem cartão — e muitas universidades hospedam o próprio

Página de preços do GitLab em português com os planos Gratuito, Premium e Ultimate
Figura 39 about.gitlab.com/pricing em português (captura de 09/09/2026): «Gratuito» US$ 0 por usuário/mês, «Não é necessário cartão de crédito», «5 usuários por grupo de nível superior», «400 minutos de computação por mês», gerenciamento de código-fonte e CI/CD, «Armazenamento ajustável de 10 GiB»; «Premium» US$ 29 por usuário/mês cobrado anualmente; «Ultimate» sob consulta.
Plano GitLabO que inclui (pricing, 09/09/2026)
Gratuito (US$ 0)5 usuários por grupo de nível superior; 400 minutos de computação por mês; código-fonte e CI/CD; armazenamento ajustável de 10 GiB; sem cartão de crédito
Premium (US$ 29/usuário/mês, anual)Recursos de equipe e de planejamento
UltimatePreço sob consulta na página
terminal — levar o mesmo repositório para o GitLab (ou para a instância da instituição)
git remote add gitlab https://gitlab.com/<usuário>/minha-pesquisa.git
git push -u gitlab main --follow-tags     # o histórico e as tags vão inteiros; o GitHub continua como origin
Regra

Se a instituição hospeda um GitLab, ele pode ser o lugar do trabalho em andamento (privado, dentro da rede) e o GitHub o da publicação (público, com «Cite this repository» e Zenodo). Um repositório pode ter dois remotos; os comandos são os mesmos. O Turing Way cita ainda o Codeberg como alternativa comunitária.

Parte 5Os scripts e o fechamento

checar_repo.py, citacao_cff.py e salvar_versao.sh; o plugin; erros comuns; checklist; glossário; referências; como citar

Três scripts curtos, rodados de verdade em 09/09/2026, fazem o que este manual pede antes de cada push: auditar o repositório, gerar o arquivo de citação e registrar a versão com tag. Depois, o que costuma dar errado, a lista para conferir, os termos e as fontes.

05
Scripts e fechamento1 de 10 · demonstração de 09/09/2026 · Python 3, só biblioteca padrão, só leitura

checar_repo.py: a auditoria antes do push — segredos, dados pessoais, arquivos grandes, README, LICENSE, CITATION.cff, remoto

Terminal: checar_repo.py encontra BLOQUEIO no .env e avisos de LICENSE, CITATION.cff e remoto ausentes; git rm --cached .env; citacao_cff.py grava CITATION.cff e imprime o BibTeX e a referência ABNT
Figura 40 A sessão de 09/09/2026 (saída real, caminho trocado por /home/usuario): python3 scripts/checar_repo.py . lista «5 arquivos rastreados», um BLOQUEIO («.env parece guardar segredo — tire do Git (git rm --cached) e troque a credencial») e três AVISOs (falta LICENSE, falta CITATION.cff, nenhum remoto configurado); depois do git rm --cached .env e do commit, o citacao_cff.py grava o CITATION.cff e imprime o BibTeX @software e a referência ABNT (slide seguinte).
O que confereComo aparece
Arquivos grandesRastreados acima de 50 MiB → AVISO; acima de 100 MiB → BLOQUEIO (os limites do GitHub); binários acima de 5 MiB → aviso
SegredosNomes (.env, .pem, id_rsa) e conteúdos (tokens ghp_, AKIA, sk-, chave privada PEM) → BLOQUEIO
Dados pessoais (LGPD)Padrões de CPF e listas de e-mails em arquivos de texto; pastas de dados brutos (dados_FORA_DO_GIT/ etc.) rastreadas
PublicaçãoFalta de README, LICENSE, CITATION.cff ou .gitignore; ausência de remoto; mudanças sem commit
Saída«N bloqueio(s), M aviso(s)»; código de saída 1 se houver bloqueio — por isso serve no GitHub Actions (Figura 18)
terminal — uso
python3 scripts/checar_repo.py .          # a pasta atual (ou o caminho de outro repositório)
python3 scripts/checar_repo.py . && git push --follow-tags   # só faz o push se não houver bloqueio
Regra

O script só lê: não apaga, não faz commit, não envia nada. Um BLOQUEIO é decisão sua de resolver — na demonstração, git rm --cached .env tirou o arquivo do Git e a mensagem do commit registrou que a chave foi trocada. Os AVISOs de LICENSE e CITATION.cff sumiram na segunda auditoria (Figura 14), depois dos slides da Parte 4.

Scripts e fechamento2 de 10 · demonstração de 09/09/2026 (Figura 40) · Python 3, só biblioteca padrão

citacao_cff.py: grava o CITATION.cff 1.2.0 e imprime o BibTeX @software e a referência ABNT para conferir com a biblioteca

terminal — o comando da demonstração (Figura 40)
python3 scripts/citacao_cff.py \
    --titulo "Manutenção preditiva em guindastes portuários: dados e scripts" \
    --autores "Exemplo, Aluna" \
    --versao 0.1 --data 2026-09-09 \
    --licenca CC-BY-4.0 \
    --url https://github.com/aluna/minha-pesquisa
# gravado: CITATION.cff
# depois do Zenodo: --doi 10.5281/zenodo.NNNNNNN --forcar  (regrava com o DOI)
saída — o que o script imprime depois do arquivo (Figura 40)
BibTeX (@software, como o GitHub gera):
@software{exemplo2026,
  author = {Exemplo, Aluna},
  title = {Manutenção preditiva em guindastes portuários: dados e scripts},
  version = {0.1},
  year = {2026},
  month = {9},
  url = {https://github.com/aluna/minha-pesquisa},
}

Referência (padrão ABNT para software, conferir com a biblioteca):
EXEMPLO, A. Manutenção preditiva em guindastes portuários: dados e scripts.
Versão 0.1. [S. l.], 2026. Disponível em: https://github.com/aluna/minha-pesquisa.
Acesso em: (data).
ArgumentoUso
--titulo · --autoresObrigatórios; autores como «Sobrenome, Nome; Sobrenome, Nome» — cada um vira family-names/given-names
--versao · --dataA versão citada (a mesma da tag e da release) e a data de lançamento (AAAA-MM-DD)
--doi · --url · --licenca · --orcidOpcionais; o DOI entra depois da primeira release no Zenodo
--forcarO script recusa sobrescrever um CITATION.cff existente sem esta opção
Regra

A referência ABNT impressa é um ponto de partida «para conferir com a biblioteca»: a NBR 6023 para software tem detalhes (local, «[S. l.]», data de acesso) que a sua biblioteca confirma. O BibTeX vai para o .bib de quem citar o seu repositório — é o mesmo que o botão «Cite this repository» exporta.

Manual irmão

Como citar software e dados no texto e nas referências é assunto do manual de Zotero (o Zotero lê o CITATION.cff) e do manual de LaTeX (o .bib).

Scripts e fechamento3 de 10 · demonstração de 09/09/2026 (Figura 14) · bash + git

salvar_versao.sh: git add -A, o resumo do que entra, o commit e a tag anotada num comando — e o push impresso, não executado

terminal — o comando da demonstração (Figura 14) e a saída que ele imprimiu
bash scripts/salvar_versao.sh "Licença e arquivo de citação" --tag v0.2 "Repositório pronto para publicar"
Mudanças que entram nesta versão:
 CITATION.cff |  10 ++
 LICENSE      | 396 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 406 insertions(+)

commit ce3e655 · 2026-09-09 · Licença e arquivo de citação
tag v0.2 criada: Repositório pronto para publicar
sem remoto ainda: crie o repositório no GitHub e rode  git remote add origin <url>  e  git push -u origin main
terminal — uso no dia a dia
bash scripts/salvar_versao.sh "Capítulo 3: resultados da busca"          # só o commit
bash scripts/salvar_versao.sh "Versão da defesa" --tag v1.0 "Versão entregue à banca"   # commit + tag anotada
git push --follow-tags                                                       # o script imprime este comando; você decide rodar
1git add -AAdiciona tudo o que o .gitignore não exclui
2Mostra o --statA lista de arquivos e linhas que entram: leia antes de continuar
3Recusa > 100 MiBUm arquivo acima do bloqueio do GitHub interrompe o script antes do commit
4Commit e tagO commit com a mensagem; com --tag, a tag anotada (-a -m) com a descrição
5Imprime o pushgit push --follow-tags — ou orienta a criar o remoto, como na demonstração
Regra

O script não faz push: enviar é decisão sua, depois do checar_repo.py. A tag só quando houver um marco — a mensagem da tag («Versão entregue à banca») é o que aparece no GitHub ao criar a release com «Escolher uma marca» (Parte 4).

Sem bash

O script é bash; onde não houver um terminal bash, troque pelo equivalente manual:git add -A, git diff --staged --stat, git commit -m, git tag -a … -m.

Scripts e fechamento4 de 10

Tudo num só plugin: a skill git-github-pesquisadores audita e explica; o aluno cria o repositório, a release e o DOI

O plugin Pesquisa MirandasTech (para Claude Code e Codex) coloca os papéis dos manuais dentro do assistente, com um estado único (PROGRESSO.md) e um gerente — o Pesquisador — que só fecha uma fase com evidência. O iniciar_projeto.py do plugin já roda o git init e deixa a pasta dados_FORA_DO_GIT/ fora do versionamento. A skill git-github-pesquisadores segue este manual: roda o checar_repo.py, explica cada BLOQUEIO e AVISO, gera o CITATION.cff e prepara a versão — mas quem cria o repositório no GitHub, publica a release e liga o Zenodo é o aluno, na própria conta.

PapelO que faz com este manualSlides
PesquisadorConfere que o repositório existe, que o checar_repo.py dá zero bloqueios, que há README, LICENSE e CITATION.cff, e que a versão entregue tem tagPartes 2, 4 e 5
Skill git-github-pesquisadoresExplica os comandos, lê a saída do Git, monta o .gitignore, roda os três scripts, orienta a release e o DOIPartes 2 a 5
BibliotecárioConfere a referência ABNT do software e importa o CITATION.cff no ZoteroParte 5
Orientador (uso de IA)Declara o uso do assistente no repositório e no textoÚltimo slide
Claude Code — pedidos na pasta do projeto (o plugin lê PROGRESSO.md)
Pesquisador, onde paramos?
Audite o repositório com o checar_repo.py e me explique cada aviso.
Gere o CITATION.cff com os autores do projeto e mostre a referência ABNT.
Salve a versão «Capítulo 3: resultados» e me diga se devo fazer push.
O que falta para pedir o DOI no Zenodo?
/pesquisa:status
/pesquisa:proxima
Regra

O agente nunca faz push, nunca cria repositório na conta do aluno e nunca toca em credencial: ele audita, explica e prepara. Criar o repositório, publicar a release e autorizar o Zenodo são cliques do aluno, logado na própria conta — como neste manual, que não fez login em nenhum serviço.

Onde cada manual entra

Metodologia decide o projeto; Busca e PRISMA produzem o conteúdo; Zotero guarda as referências; LaTeX escreve o texto; este manual versiona e publica; Uso de IA declara; o plugin mantém a ordem. Hub: mirandastech.com.br/pesquisa.

Scripts e fechamento5 de 10

Erros comuns — como aparecem e como corrigir

ErroComo apareceCausaCorreção
Segredo no histórico.env, token ou chave num commit — mesmo que apagado depoisgit add -A antes do .gitignoreestá vazado: trocar a credencial; git rm --cached; .gitignore
Dado pessoal em repositório privadoCPF, nome, e-mail de participante num .csv «só para mim»Confundir privado com anonimizado (LGPD)tirar do Git; dados_FORA_DO_GIT/; só o derivado anonimizado
Arquivo acima de 100 MiBPush recusado pelo GitHubVídeo, banco de dados ou modelo commitadotirar do histórico; repositório de dados ou Git LFS
Commit gigante «tudo»Um commit «atualizações» com 40 arquivosSemanas sem commitcommit por sessão e por assunto; salvar_versao.sh
Sem licençaRepositório público que ninguém pode reutilizar; Zenodo sem DOIAchou que público bastavaLICENSE de choosealicense.com
Tag sem mensagemTag leve, sem autor, data nem descriçãogit tag v1 sem -a -mgit tag -a vX -m "…"; push --follow-tags
Force pushgit push --force reescreve o remoto; o commit do colega someTentativa de «consertar» o históriconunca em branch compartilhado; revert em vez de reset
.bib ou PDF de bases pagasExportação completa da Web of Science, PDFs de artigos, no repositório públicoDados licenciados tratados como «meus»fora do Git; só a estratégia de busca e os resultados agregados
Nome e e-mail errados nos commits«usuario@notebook» como autor no GitHubuser.name/user.email não configuradosgit config --global (slide «Instalar e configurar»)
Marcador de conflito no arquivoO LaTeX não compila; <<<<<<< no meio do textoCommit feito antes de resolver o conflitoresolver, apagar os marcadores, add, commit
Release sem CITATION.cffZenodo com metadados incompletos; sem «Cite this repository»Arquivo criado depois da releaseCITATION.cff antes; nova release com o DOI no arquivo
Backup «só nesta máquina»AVISO do checar_repo.py; notebook roubado = projeto perdidoNunca fez pushremoto e git push ao fim de cada sessão
Scripts e fechamento6 de 10

Checklist final: antes de publicar o repositório e pedir o DOI

Marque conforme concluir. O estado fica salvo neste navegador — não é compartilhado nem enviado a lugar nenhum.

0 de 12
Scripts e fechamento7 de 10

Glossário

Tudo que aparece no manual sem ser explicado no próprio slide.

Git

Repositório
A pasta do projeto com a pasta oculta .git/, onde o Git guarda todo o histórico; git init o cria.
Commit
Uma versão registrada do projeto: autor, data, mensagem e o conteúdo dos arquivos; identificado por um código como 3b95655.
Staging area (área de preparação)
O que o próximo commit vai incluir; git add põe, git restore --staged tira.
HEAD
O commit em que você está agora — normalmente o último do branch atual; aparece em git log --decorate.
Branch
Linha de desenvolvimento paralela; main é a principal; git switch -c cria outra.
Merge
Combinar os commits de um branch em outro; «fast-forward» quando o destino só precisa avançar.
Fast-forward
Merge sem commit novo: o branch de destino não mudou, então só avança até o commit do outro.
Conflito
Duas versões mudaram a mesma linha; o Git marca o trecho com <<<<<<<, ======= e >>>>>>> e espera uma pessoa escolher.
Tag
Nome fixo dado a um commit (v0.1-qualificacao); a tag anotada (-a -m) guarda autor, data e mensagem.
Remoto
Cópia do repositório num servidor (GitHub, GitLab); o primeiro chama-se origin por convenção.
Push · pull · clone
push envia commits ao remoto; pull traz os do remoto; clone cria um repositório local a partir de um remoto.
Bare repository
Repositório só com o histórico, sem arquivos de trabalho — é o que um servidor guarda; o «remoto» da demonstração (Figura 14) é um bare local.
.gitignore
Arquivo na raiz com os padrões do que o Git não deve rastrear; modelos em github.com/github/gitignore.
Git LFS
Large File Storage: guarda arquivos grandes fora do histórico e deixa um ponteiro de texto no Git; 10 GiB no GitHub Free.

GitHub, publicação e citação

Fork
Cópia de um repositório de outra pessoa na sua conta, para propor mudanças por pull request.
Pull request
Pedido para incorporar os commits de um branch a outro, com revisão e discussão; «solicitação de pull» na interface em português.
Issue
Item de acompanhamento no repositório: tarefa, dúvida, erro; numerada, com comentários e responsável.
CI / GitHub Actions
Integração contínua: rodar conferências e testes a cada push; no GitHub, por arquivos YAML em .github/workflows/.
GitHub Pages
Hospedagem gratuita de site estático a partir de um repositório público (https://<owner>.github.io/<repo>).
Codespaces
Ambiente de desenvolvimento na nuvem, pelo navegador ou VS Code; 120 horas-núcleo e 15 GB por mês no Free.
GitHub CLI (gh)
O GitHub no terminal: repositórios, issues, pull requests, releases; v2.100.0.
Release
Uma tag publicada no GitHub com título, notas e anexos; traz ZIP e tar.gz do código; é o que o Zenodo arquiva.
README
Arquivo Markdown na raiz que o GitHub renderiza na página do repositório: o que é, como usar, como citar.
Licença
Os termos de reutilização (MIT, GPLv3, Apache 2.0, CC BY 4.0) num arquivo LICENSE; sem ela ninguém pode reutilizar legalmente.
CITATION.cff
Arquivo no Citation File Format (1.2.0) que diz como citar o repositório; ativa o botão «Cite this repository».
DOI
Digital Object Identifier: identificador permanente; para código, emitido pelo Zenodo a cada release.
Zenodo
Repositório aberto que arquiva releases do GitHub e emite DOIs; lê o CITATION.cff para os metadados.
OSF
Open Science Framework: plataforma de projetos e pré-registro; o add-on GitHub mostra o repositório na seção «Files».
Overleaf
Editor LaTeX on-line; a integração Git e o GitHub Synchronization são recursos premium.
Scripts e fechamento8 de 10 · fontes conferidas em 09/09/2026

Referências (1 de 2): a evidência, os guias e os livros

  1. RAM, K. Git can facilitate greater reproducibility and increased transparency in science. Source Code for Biology and Medicine, v. 8, n. 7, 2013.doi.org/10.1186/1751-0473-8-7
  2. PEREZ-RIVEROL, Y.; GATTO, L.; WANG, R.; SACHSENBERG, T. et al. Ten Simple Rules for Taking Advantage of Git and GitHub. PLOS Computational Biology, v. 12, n. 7, e1004947, 2016.doi.org/10.1371/journal.pcbi.1004947
  3. BLISCHAK, J. D.; DAVENPORT, E. R.; WILSON, G. A Quick Introduction to Version Control with Git and GitHub. PLOS Computational Biology, v. 12, n. 1, e1004668, 2016.doi.org/10.1371/journal.pcbi.1004668
  4. WILSON, G.; BRYAN, J.; CRANSTON, K.; KITZES, J. et al. Good enough practices in scientific computing. PLOS Computational Biology, v. 13, n. 6, e1005510, 2017.doi.org/10.1371/journal.pcbi.1005510
  5. THE TURING WAY COMMUNITY; SCRIBERIA. The Turing Way: A handbook for reproducible, ethical and collaborative research. Zenodo, 2024. CC BY 4.0. Capítulo «Version Control».doi.org/10.5281/zenodo.3332807 book.the-turing-way.org
  6. SOFTWARE CARPENTRY. Version Control with Git. 14 episódios. CC BY 4.0. Acesso em 9 set. 2026.swcarpentry.github.io/git-novice
  7. CHACON, S.; STRAUB, B. Pro Git. 2. ed. Apress, 2014. Tradução completa para o português do Brasil; CC BY-NC-SA 3.0.git-scm.com/book/pt-br/v2
  8. GIT. About; Downloads (versão 2.55.0). git-scm.com. Acesso em 9 set. 2026.git-scm.com/about git-scm.com/install
  9. GIT LFS. Git Large File Storage (v3.8.0, 28 ago. 2026). Acesso em 9 set. 2026.git-lfs.com
Scripts e fechamento9 de 10 · fontes conferidas em 09/09/2026

Referências (2 de 2): documentação do GitHub, licenças, Citation File Format, Zenodo, Overleaf, OSF, GitLab e ferramentas

  1. GITHUB. GitHub Docs (pt): «Olá, Mundo»; «Criar um repositório»; «Ignorar arquivos»; «Sobre arquivos grandes no GitHub»; «Sobre o arquivo README do repositório»; «Gerenciar versões em repositórios»; «Sobre os arquivos de CITATION»; «Referenciar e citar conteúdo»; «O que é o GitHub Pages?»; «Solicitações de pull»; «Sobre problemas». Acesso em 9 set. 2026.docs.github.com/pt
  2. GITHUB. Pricing; Student Developer Pack; GitHub Desktop (3.6.5); GitHub CLI (v2.100.0); Codespaces; gitignore templates. Acesso em 9 set. 2026.github.com/pricing education.github.com/pack github.com/apps/desktop cli.github.com github.com/github/gitignore
  3. GITHUB. Choose an open source license. CC BY. Acesso em 9 set. 2026.choosealicense.com
  4. CITATION FILE FORMAT. Citation File Format (CFF), versão 1.2.0; cffinit; cff-converter-python. Acesso em 9 set. 2026.citation-file-format.github.io
  5. ZENODO. Enable a repository (GitHub integration). help.zenodo.org. Acesso em 9 set. 2026.help.zenodo.org zenodo.org
  6. OVERLEAF. Git integration and GitHub synchronization. docs.overleaf.com. Acesso em 9 set. 2026.docs.overleaf.com
  7. CENTER FOR OPEN SCIENCE. Connect GitHub to a project. help.osf.io. Acesso em 9 set. 2026.help.osf.io
  8. GITLAB. Preços (pt). Acesso em 9 set. 2026.about.gitlab.com/pricing
  9. MICROSOFT. Source control in VS Code. code.visualstudio.com. Acesso em 9 set. 2026.code.visualstudio.com/docs/sourcecontrol/overview
Sobre as datas

Versões (Git 2.55.0, Git LFS v3.8.0, GitHub Desktop 3.6.5, GitHub CLI v2.100.0, CFF 1.2.0), preços em dólar, limites e nomes de botão foram lidos nas páginas acima em 09/09/2026 e mudam sem aviso. Não há preço em reais, número de usuários do GitHub nem limite de tamanho do Zenodo neste manual porque não foram conferidos nessa data.

Scripts e fechamento · último slide10 de 10

Como citar este manual, declaração de uso de IA e licença

Como citar

MATIAS, J. P. M. Git e GitHub para pesquisadores: passo a passo. MirandasTech, v1.0, set. 2026. CC BY 4.0.

Este manual: git.mirandastech.com.br (PDF em /manual.pdf). Manuais irmãos: prisma.mirandastech.com.br · busca.mirandastech.com.br · latex.mirandastech.com.br · zotero.mirandastech.com.br · metodologia.mirandastech.com.br · notebook.mirandastech.com.br · manual.mirandastech.com.br · plugin.mirandastech.com.br · hub: mirandastech.com.br/pesquisa
Licença

Conteúdo, capturas e os scripts checar_repo.py, citacao_cff.py e salvar_versao.sh: CC BY 4.0 — use, copie, adapte e redistribua com atribuição. O Git é distribuído sob a GPLv2; o Pro Git sob CC BY-NC-SA 3.0; o The Turing Way e o Software Carpentry sob CC BY 4.0; o GitHub Desktop sob MIT. GitHub, Git, GitLab, Zenodo, OSF, Overleaf, Microsoft e as demais ferramentas e serviços citados são marcas de terceiros, sem vínculo nem endosso deste manual.

Declaração de uso de IA

Este manual foi escrito com assistência de IA (Claude, Anthropic) na estruturação, na redação, na automação das capturas de tela e na execução dos scripts, sob as regras do manual de Uso de IA na pesquisa científica. Todos os fatos, números, nomes de botões, preços, limites, versões e referências foram conferidos nas fontes indicadas em 09/09/2026. Nenhuma captura foi feita com login; nenhum repositório foi criado na conta do autor para a demonstração — o «remoto» das figuras é um repositório bare local. Decisões de conteúdo, seleção das fontes e responsabilidade pelo texto são do autor.

Sem garantia: interfaces, planos, preços, limites e versões mudam; cada fato traz a data em que foi verificado. Quando a sua tela divergir, vale a tela. A escolha da licença, o que pode ou não ser publicado (dados de participantes, materiais licenciados, resultados sob embargo), a citação do software no seu texto e a declaração de uso de IA da sua pesquisa são seus e seguem o seu programa, o seu orientador, a biblioteca da sua instituição e, quando houver, o comitê de ética.