Post

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).

GitGithub
É um softwareÉ um serviço
Instalado localmente em sua máquinaEstá em um servidor
Usado em linha de comandoApresenta interface gráfica
Gerecia diferentes versões em um repo GitArmazenar uma cópia de seu repositório Git
Funcionalidades VCS para gerenciar versõesFuncionalidades 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, branches independentes.
  • Os ramos podem ser unidos via merge.

Dale!

This post is licensed under CC BY 4.0 by the author.