Aula 03 · Introdução à Linguagem R
PPG em Ecologia e Conservação · UFMS
Todo mundo já viveu o ciclo do FINAL_rev.22.comments49.doc.
Jorge Cham, PHD Comics · tira nº 1531
Perez-Riverol, Y.; Gatto, L.; Wang, R.; Sachsenberg, T.; Uszkoreit, J.; da Veiga Leprevost, F.; Fufezan, C.; Ternent, T.; Eglen, S.J.; Katz, D.S.; Pollard, T.J.; Konovalov, A.; Flight, R.M.; Blin, K.; Vizcaíno, J.A. (2016). Ten Simple Rules for Taking Advantage of Git and GitHub. PLOS Computational Biology 12(7): e1004947. doi:10.1371/journal.pcbi.1004947
Figura de Perez-Riverol et al. (2016), PLOS Comp Biol · CC BY
Nuvem sincroniza arquivos; git versiona alterações. Não são a mesma coisa.
Cliente gráfico do GitHub: arquivos alterados à esquerda, diferenças à direita.
git init ou git clonegit addgit commit -m "minha mensagem"git pushO que você vai digitar o tempo todo
git status — o que mudou, o que está preparado, o que falta. Na dúvida, rode este. É o comando que responde “onde eu estou?”git add · git commit · git push — o ciclo da aulaObter e criar projetos
git init — cria um repositório vazio, ou reinicializa um existentegit clone — clona um repositório para um novo diretórioConfiguração, uma vez só na vida
git config — define seu nome e e-mail nos commitsgit help — a ajuda do gitAo abrir um Projeto do RStudio que é um repositório git, aparece uma aba Git no painel superior direito, junto de Environment e History.
Tudo o que vimos em comando tem um botão ali:
| No terminal | No painel |
|---|---|
git status |
a própria lista de arquivos, sempre visível |
git add |
a caixinha Staged de cada arquivo |
git commit |
botão Commit |
git push |
seta ↑ Push |
git pull |
seta ↓ Pull |
git diff |
botão Diff |
A aba Git, ao lado de Environment e History. Cada linha é um arquivo; as caixinhas Staged à esquerda são o git add.
Dois quadradinhos por linha: o da esquerda é o que já está preparado, o da direita é o que mudou e ainda não foi preparado. É git status desenhado.
Puxar antes de empurrar evita a maior parte dos conflitos. Ganhe o hábito agora, antes de trabalhar com alguém.
Botão Commit abre esta janela: arquivos em cima à esquerda, mensagem à direita, e a diferença linha a linha embaixo — verde entrou, vermelho saiu.
A metade de baixo daquela janela é o git diff. Vale o hábito de passar o olho nela antes de clicar em Commit:
print() de teste que ficou para trásMensagem de commit boa completa a frase “este commit vai…”: “…corrigir a leitura de datas na planilha de campo”. Não “ajustes”.
Git foi feito para texto: código, .qmd, .csv, .md. Ele guarda cada versão de cada arquivo, para sempre.
.html, figuras, PDFs de saída.xlsx, .RData, rasters.Rhistory, .Rproj.user, .DS_StoreO arquivo .gitignore, na raiz do repositório, lista o que o git deve fingir que não existe:
.Rproj.user
.Rhistory
.DS_Store
/docs/
dados/processados/
Naquele screenshot, tudo estava marcado com ? — arquivo novo, que o git ainda não rastreia. E o que era?
Aula2.pptx, Aula3.pptx, … — binários pesados que o git não sabe compararAula2.pdf, Aula5.pdf, … — gerados a partir dos .pptx0003936-200221144449610.zip — um zip solto.Rproj.user, .Rhistory — configuração da máquinaÉ exatamente esse o momento de escrever o .gitignore — antes do primeiro git add .. Depois, o peso já entrou na história.
O repositório do site do laboratório rastreava a pasta docs/ inteira — 217 MB de HTML e PDF que o Quarto regenera a cada render.
render reescrevia centenas de arquivos → commits gigantesgit push passou a demorar minutoscloneUm .gitignore de cinco linhas, escrito no primeiro dia, teria evitado tudo. Escrever depois só impede que piore.
Acontece quando você e outra pessoa alteram a mesma linha do mesmo arquivo. O git não escolhe por você — ele marca o arquivo assim:
<<<<<<< HEAD
media <- mean(dados$crc, na.rm = TRUE)
=======
media <- mean(dados$crc)
>>>>>>> colega
O que fazer: abra o arquivo, apague as três linhas de marcação e deixe só o código que deve ficar — que pode ser uma versão, a outra, ou uma mistura. Depois add e commit normalmente.
Não é erro, não quebrou nada, e não precisa de ajuda para resolver. O pânico é opcional.
A documentação oficial, incluindo o livro Pro Git completo e gratuito.
No Curso de R intermediário — IPEA:
