Git, Github e R - 1/3
Quem nunca nomeou um arquivo como “final”? Depois de algumas releituras e correções você salva com outro nome, “final_2”. Depois desta versão, alguém analisa e faz observações, e você prontamente salva o arquivo como “final_2_fulano_version”, e assim por diante. Imagine este mesmo documento ficando na “geladeira” por alguns meses e você quer retornar de onde parou. Ainda existe a opção de alguém fazer alterações e não mudar o nome do arquivo. Neste momento fica muito difícil saber onde parou, ainda mais podendo surgir a dúvida de qual é o arquivo mais antigo.
Nomear arquivos com diferentes nomes é uma maneira intuitiva de se fazer controle de versão de arquivos, funcionando para problemas menos complexos. No entanto, quando trabalhamos em grupos, com várias pessoas editando códigos em R, se torna impossível gerenciar o histórico das versões dos arquivos. Felizmente existem ferramentas que nos auxiliam no controle de versão, uma delas é o GIT.
Git
Lançado em 2005, GIT é um software de controle de versão livre. Esta ferramenta permite o rastreamento de alterações em qualquer tipo de conjundo de arquivos em um repositório. O uso do controle de versão permite velocidade no trabalho e integridade de dados, muito indicado em trabalhos em grupo. Ainda, permite a evolução dos projetos em caminhos paralelos. Todo o diretório de arquivos onde o Git está, toda e qualquer mundança é identificada e recuperável.
Linus Torvalds criou o Git para o desenvolvimento do sistema operacional Linux Kernel. Segundo o próprio autor Git significa Git - The Stupid Content Tracker. Existem outros programas de controle de versão, no momento o Git é um dos mais utilizados pela comunidade de desenvolvedores.
Exemplo de versionamento
A estrutura do controle de versão usado no Git assemelha-se a uma árvore, tendo um ramo principal chamado de main. O ramo main pode ter ramos paralelos que podem evoluir, crescer, juntamente com o main. O diagrama abaixo ilustra o histórico de versões de um diretório (ou REPO). Cada círculo representa um commit, ou seja, uma versão do repo. Vários branches podem ser criados e ter um histórico de versões indenpendente um do outro.
No diagrama ilustro a criação de novo branch que evolui em paralelo com o branch main.
gitGraph
commit
commit
branch develop
commit
commit
commit
checkout main
commit
commit
Neste diagrame é ilustrado o merge do branch develop com o main.
gitGraph
commit
commit
branch develop
commit
commit
commit
checkout main
commit
merge develop
commit
Github
Github é um serviço para desenvolvimento de software sob controle de versão (Git). Em uma definição mais simplificada, pode-se dizer que o Github é uma rede social onde desenvolvedores compartilham e desenvolvem repositórios com códigos, tudo com controle de versão. No Github é possivel seguir e acompanhar perfis pessoais e de organizações, além de acompanhar projetos em desenvolvimento de software livre. No github também é possível publicar páginas na internet usando os recursos do Github Pages (Assunto para um futuro post).
| Git | Github |
|---|---|
| É um software | É um serviço |
| Instalado localmente em sua máquina | Está em um servidor |
| Usado em linha de comando | Apresenta interface gráfica |
| Gerecia diferentes versões em um repo Git | Armazenar uma cópia de seu repositório Git |
| Funcionalidades VCS para gerenciar versões | Funcionalidades VCS dentre outras |
Resumo
- Git é um software que permite o versionamento de arquivos em um repositório local.
- Github é um serviço onde se pode armazenar e compartilhar repositórios com controle de versão.
- Cada versão de repositório é recuperável.
- Um repositório pode ter difentes ramos,
branchesindependentes. - Os ramos podem ser unidos via
merge.
Dale!


