Tutorial sobre Git e GitHub

Um tutorial sobre o sistema de controle de versão Git e sobre o GitHub.

Data de Publicação

14 novembro 2024

1 Introdução

Seja bem-vindo(a) a “Git e GitHub: Um Tutorial para Iniciantes”!

Este tutorial foi desenvolvido especialmente para estudantes e profissionais das áreas de administração, economia e contabilidade que desejam aprender a gerenciar e versionar seus projetos de forma profissional.

O que você encontrará neste tutorial?:

  • Uma introdução completa ao Git e GitHub, desde a instalação até o trabalho colaborativo. Você aprenderá a gerenciar versões de seus arquivos, colaborar em projetos e manter seu trabalho seguro na nuvem.

  • Exemplos práticos focados no ambiente acadêmico, como o desenvolvimento de uma dissertação em colaboração com seu orientador, garantindo que você nunca perca versões importantes do seu trabalho.

  • Instruções passo a passo com comandos explicados de forma clara e direta, sempre com analogias para facilitar o entendimento.

Importante: O Git trabalha melhor com arquivos de texto puro, como:

  • Documentos escritos em Quarto (.qmd)
  • Documentos escritos em LaTeX (.tex)
  • Arquivos Markdown (.md)
  • Scripts (arquivos fonte) (.R, .py, etc.)
  • Jupyter Notebooks (.ipynb, mas é um pouco mais complicado)

Arquivos binários como .docx (MS Word) ou .xlsx (MS Excel) não são compatíveis para versionamento com Git. Por isso, recomendamos fortemente o uso de sistemas profissionais como LaTeX ou Quarto para a escrita de trabalhos acadêmicos, que além de permitirem o versionamento com Git, garantem:

  • Reproducibilidade do trabalho
  • Formatação consistente e profissional
  • Gerenciamento automático de referências
  • Integração com análises estatísticas

Público-alvo:

  • Alunos do Mestrado Profissional em Administração e do Bacharelado em Administração do IFMG - Campus Formiga.

  • Estudantes e profissionais de administração, economia e contabilidade que desejam adotar boas práticas de versionamento em seus projetos.

Pré-requisitos:

  • Computador com Windows
  • Acesso à internet
  • Nenhum conhecimento prévio de programação é necessário

Por que aprender Git e GitHub?:

  • Segurança: Mantenha um histórico completo de todas as versões do seu trabalho

  • Organização: Fim das múltiplas cópias de arquivos com nomes confusos

  • Colaboração: Trabalhe de forma eficiente com orientadores e colegas

  • Profissionalismo: Adote práticas utilizadas por profissionais de análise de dados em todo o mundo

Este tutorial foi estruturado para tornar seu aprendizado o mais suave possível, começando pelos conceitos básicos e progredindo gradualmente até o trabalho colaborativo.

2 Antes de Começar

Pré-requisitos

Considerando que você utiliza um computador com o Windows OS:

  1. Instale o Git em seu computador Windows:

    • Baixe o instalador em git-scm.com
    • Durante a instalação, mantenha as opções padrão
    • O Git Bash será instalado (um terminal especial para Git)
  2. Crie uma conta no GitHub:

    • Acesse github.com
    • Use um email profissional ou acadêmico
    • Escolha um nome de usuário profissional
Sobre o Git Bash
  • É um terminal especial para usar o Git no Windows
  • Permite executar todos os comandos do tutorial
  • Pode parecer intimidador no início, mas é simples de usar
  • Funciona como um programa normal do Windows
Usando Git Bash no RStudio

Se você usa o RStudio, pode configurá-lo para usar o Git Bash diretamente em seu terminal integrado:

  • No RStudio, acesse:

    • ToolsGlobal OptionsTerminal
    • Em New terminals open with, selecione Git Bash

Desta forma, você pode executar todos os comandos Git sem sair do RStudio, tornando seu fluxo de trabalho mais eficiente.

Esta integração também é possível com o Visual Studio Code e com o Positron.

  • Se você fez esta configuração, todos os comandos a seguir poderão ser executados no terminal integrado do RStudio.
RStudio Projects e Git

Para um melhor controle de versão com Git, sempre use RStudio Projects:

  1. Por que usar RStudio Projects?

    • Organiza todos os arquivos em uma única pasta
    • Mantém caminhos relativos consistentes
    • Facilita o controle de versão com Git
    • Permite alternar facilmente entre diferentes projetos
  2. Como criar um novo Project com Git:

    • ProjectsNew Project
    • Marque “Create a git repository”
    • Escolha um nome e local para o projeto

3 Configuração Inicial

Configurando o Git pela primeira vez

Abra o Git Bash e execute estes comandos para:

  • configurar um nome de usuário:
git config --global user.name "Seu Nome"
  • configurar um email:
git config --global user.email "seu.email@exemplo.com"

Para verificar e confirmar as configurações anteriores:

git config --list
Confirmando a instalação

Para verificar se o Git foi instalado corretamente:

git --version

Se aparecer algo como git version 2.39.0, está tudo certo!

4 Git e GitHub: Entendendo o Básico

4.1 O que é Git?

Git

Imagine que você está escrevendo uma dissertação, relatório ou artigo:

  • Sem Git:

    • dissertacao_v1.docx
    • dissertacao_v2.docx
    • dissertacao_final.docx
    • dissertacao_final_v1.docx
    • dissertacao_final_v2.docx
    • dissertacao_final_mesmo.docx
    • dissertacao_agora_vai.docx
    • veja a Figura 1
  • Com Git:

    • Um único arquivo
    • Histórico completo de todas as mudanças
    • Possibilidade de voltar a qualquer versão anterior
    • Colaboração organizada com orientador/colegas
  • O que é Git?

  • Sistema de Controle de Versão: um sistema de controle de versão registra alterações em um arquivo ou conjunto de arquivos ao longo do tempo para que as alterações possam ser rastreadas e versões específicas de um arquivo possam ser recuperadas posteriormente.

  • Permite acompanhar mudanças em códigos, manuscritos (relatórios, artigos, dissertações, teses, livros…), apresentações e projetos de análise de dados.

  • Facilita a colaboração e a fusão de alterações feitas por várias pessoas.

Por que usar Git?
  • Segurança: Nunca perca uma versão importante
  • Organização: Fim das múltiplas cópias de arquivos
  • Colaboração: Trabalhe em equipe sem conflitos
  • Profissionalismo: Prática padrão em ciência de dados

4.2 O que é GitHub?

GitHub: Seu Código na Nuvem

Pense no GitHub como:

  • Plataforma de hospedagem de código.
  • É como um “Facebook para profissionais que usam código”: ampla comunidade.
  • Facilita o compartilhamento, inspeção e colaboração em projetos de envolvendo código.
  • Reduz barreiras para colaboração: permite sugerir mudanças diretamente no código.
  • Portfólio profissional para cientistas de dados.
  • Forma de compartilhar ou divulgar seu trabalho.

Exemplo Prático:

Se seu computador apresentar um problema, todo seu trabalho está seguro no GitHub.

Dica: Explore Repositórios

  • Veja os repositórios de pacotes R populares como ggplot2, dplyr.
  • Navegue pelos arquivos e commits: veja as mudanças feitas e como o projeto evoluiu.

4.3 Fluxo de Trabalho Básico

Os 4 Comandos Essenciais
  1. git status: “O que mudou no meu projeto?”
  2. git add: “Quero incluir estas mudanças”
  3. git commit: “Vou salvar estas mudanças”
  4. git push: “Vou enviar para o GitHub”

Analogia com um Documento MS Word:

  • git status = verificar quais arquivos você editou
  • git add = selecionar quais mudanças salvar
  • git commit = salvar o arquivo com um nome descritivo
  • git push origin main = fazer backup na nuvem
Ordem típica de uso
  1. Faça alterações nos seus arquivos
  2. git status para ver o que mudou
  3. git add . para preparar as mudanças
  4. git commit -m "mensagem" para salvar
  5. git push para enviar ao GitHub

Dica: Pense no commit como um “checkpoint” no seu trabalho - faça commits sempre que completar uma tarefa específica.

4.4 Comando git status

Como usar git status
  1. Abra o Git Bash
  2. Navegue até sua pasta do projeto
  3. Digite:
git status

O que você verá:

  • Arquivos em vermelho = ainda não adicionados
  • Arquivos em verde = prontos para commit

Quando usar:

  • Sempre que quiser verificar o que mudou
  • Antes de fazer commit
  • Se estiver em dúvida sobre o estado do projeto

4.5 Comando git add

Como usar git add

Para adicionar um arquivo específico para ser rastreado pelo git:

git add artigo.qmd

Para adicionar todos os arquivos modificados:

git add .

Para adicionar uma pasta para rastreamento pelo git:

git add relatorios/

Dicas:

  • Use git status depois de git add para confirmar se e quais arquivos foram adicionados.

  • Se todos foram adicionados, os nomes de todos terão a cor verde.

  • Se algum arquivo não foi adicionado, os nomes terão a cor vermelha. Neste caso, caso necessário, adicione os arquivos ou pastas individualmente.

4.6 Comando git commit

Como fazer um bom commit
git commit -m "Adiciona a seção Metodologia"

Boas mensagens de commit:

  • “Adiciona análise de regressão”
  • “Corrige erros nas figuras”
  • “Atualiza a revisão da literatura”

Mensagens ruins:

  • “Update”
  • “Nova versão”
  • “Mudanças”

4.7 Comando git push

Enviando para o GitHub

Para enviar todos os arquivos rastreados de um projeto para o repositório no GitHub:

git push origin main

Quando fazer push:

  • Antes de fazer mudanças relevantes
  • Após cada commit importante
  • No final do dia de trabalho

Dica: Configure o GitHub para abrir no navegador automaticamente:

git config --global credential.helper wincred

4.8 Dicas

Para Iniciantes
  1. Comece devagar:

    • Use Git para um projeto pequeno e simples
    • Pratique os comandos básicos até se sentir confortável
  2. Em caso de erro:

    • Não entre em pânico
    • Use git status para entender o que aconteceu
    • Busque ajuda, sempre.
    • Em geral, os assistentes baseados em IA, são muito bons para resolver problemas e esclarecer dúvidas sobre código.
  3. Estabeleça uma rotina:

    • Início do trabalho: git status
    • A cada mudança importante: git add e git commit -m "mensagem"
    • Final do dia: git push

4.9 Exercício

Vamos Praticar!
  1. Crie uma pasta para seu projeto:

    • Clique com botão direito na área de trabalho
    • Selecione “Novo” → “Pasta”
    • Nome sugerido: “meu-primeiro-projeto”
  2. Abra o Git Bash nesta pasta:

    • Clique com botão direito dentro da pasta
    • Selecione “Git Bash Here”
  3. Inicie um repositório Git:

git init
  1. Crie seu primeiro arquivo:

    • Utilizando o terminal do RStudio, configurado para usar o Git Bash, crie o arquivo “README.md” na raíz do seu projeto RStudio com touch README.md

    • Abra esse arquivo no RStudio e adicione o seguinte texto:

# Meu Primeiro Projeto com Git

Este é meu projeto para aprender a usar Git e GitHub.
  1. Siga o fluxo básico:
  • git status (verá README.md em vermelho)
  • git add README.md (arquivo ficará verde)
  • git commit -m "Primeiro commit"
  • Crie um repositório no GitHub (botão “New”)
  • Siga as instruções que aparecerem na tela

5 Recuperando Versões Anteriores

5.1 Visualizando o Histórico

Como ver todas as versões salvas

Para ver o histórico de commits:

git log --oneline

Você verá uma lista como esta:

a1b2c3d Atualiza resultados da análise
e4f5g6h Adiciona análise estatística
i7j8k9l Primeiro rascunho da metodologia

Cada linha mostra: - Um código único (hash) do commit - A mensagem que você escreveu no commit

5.2 Recuperando uma Versão Anterior

Como restaurar um arquivo específico

Para restaurar um arquivo para uma versão anterior:

git checkout a1b2c3d artigo.qmd

Onde: - a1b2c3d é o código do commit (use os primeiros 7 caracteres) - artigo.qmd é o nome do arquivo que você quer recuperar

Importante: - Após recuperar a versão anterior, faça um novo commit para registrar esta mudança

  • Use git log para encontrar o código do commit desejado

5.3 Comparando Versões

Como ver o que mudou entre versões

Para ver as diferenças entre a versão atual e a anterior:

git diff artigo.qmd

Para comparar com uma versão específica:

git diff a1b2c3d artigo.qmd

O que você verá: - Linhas removidas em vermelho - Linhas adicionadas em verde

6 Trabalhando com seu Orientador

6.1 Configurando a Colaboração

Preparando o repositório para colaboração
  1. No GitHub, acesse seu repositório da dissertação

  2. Clique em “Settings” (Configurações)

  3. No menu lateral, clique em “Collaborators” (Colaboradores)

  4. Clique em “Add people” (Adicionar pessoas)

  5. Digite o nome de usuário ou email do GitHub do seu orientador

Importante: Seu orientador precisará aceitar o convite que receberá por email.

6.2 Fluxo de Trabalho Colaborativo

Como funciona na prática

Você (Aluno):

  1. Escreve/modifica uma seção da dissertação
  2. Faz commit das alterações
  3. Envia para o GitHub (git push)

Orientador:

  1. Baixa as alterações (git pull)
  2. Revisa o texto
  3. Faz correções/sugestões
  4. Envia de volta (git push)

Você (Aluno):

  1. Baixa as correções (git pull)
  2. Continua o trabalho

6.3 Sincronizando o Trabalho

Comando Essencial: git pull

Antes de começar a trabalhar cada dia:

git pull

Este comando:

  • Baixa todas as alterações feitas pelo orientador
  • Atualiza seus arquivos locais
  • Evita conflitos de versões

Dica: Sempre faça git pull antes de começar a trabalhar e antes de fazer git push

6.4 Evitando Problemas

Boas Práticas de Colaboração
  1. Comunique-se:

    • Avise seu orientador quando enviar uma seção para revisão
    • Combine quais partes cada um está trabalhando
  2. Faça commits frequentes:

    • Um commit para cada seção revisada
    • Mensagens claras descrevendo o que foi alterado
  3. Mantenha tudo atualizado:

    • Comece o dia com git pull
    • Termine o dia com git push
  4. Evite editar o mesmo arquivo simultaneamente:

    • Combine com seu orientador quem está editando cada arquivo
    • Aguarde o feedback antes de fazer novas alterações na mesma seção

6.5 Resolvendo Conflitos Simples

O que fazer quando há conflitos

Se você tentar fazer git pull e houver conflitos:

  • Não entre em pânico! Isso é normal e tem solução

  • O Git marcará no arquivo onde estão os conflitos:

<<<<<<< HEAD
Seu texto atual
=======
Texto do orientador
>>>>>>> origin/main

Para resolver:

  • Abra o arquivo
  • Escolha qual versão manter (ou combine as duas)
  • Remova os marcadores (<<<<<<<, =======, >>>>>>>)
  • Faça um novo commit com as correções

Dica: Em caso de dúvida, converse com seu orientador sobre qual versão manter

6.6 Exemplo Prático

Cenário típico de colaboração
  1. Você termina de escrever a metodologia:
git add .
git commit -m "Adiciona seção de metodologia"
git push
  1. Avisa seu orientador que o texto está pronto para revisão

  2. No dia seguinte, antes de começar a trabalhar:

git pull
  1. Verifica as correções do orientador e continua o trabalho

Lembre-se: Mantenha uma comunicação clara com seu orientador sobre o fluxo de trabalho

Figura 1. “A vida é muito importante para ser levada a sério.” – Oscar Wilde

7 Extras

7.1 Pacote usethis da linguagem R

Automatizando Git e GitHub com o pacote usethis no RStudio

O pacote usethis da linguagem R oferece funções que simplificam significativamente o processo de configuração e gerenciamento de repositórios Git e GitHub diretamente do RStudio.

Iniciando Controle de Versão com Git

Para iniciar o controle de versão em seu projeto R atual, supondo que você já criou e abriu seu RStudio Project, no console do RStudio, digite:

usethis::use_git()

Esta função realiza automaticamente as seguintes ações:

  1. Inicializa um repositório Git no diretório do projeto
  2. Cria um arquivo .gitignore com configurações padrão para projetos R
  3. Faz o commit inicial com todos os arquivos do projeto
  4. Reinicia o RStudio para ativar os recursos de Git na IDE

Conectando ao GitHub

Após inicializar o repositório local, você pode criar um repositório correspondente no GitHub usando use_github():

usethis::use_github()

Esta função executa várias tarefas importantes:

  1. Cria um novo repositório no GitHub com o mesmo nome do seu projeto
  2. Configura o repositório remoto como ‘origin’
  3. Envia (push) o código local para o GitHub
  4. Abre o navegador na página do novo repositório

Recursos Adicionais

O pacote também oferece outras funções úteis, como:

use_readme_md()      # Criar arquivo README.md

8 Referências

BECKMAN, M. D. et al. Implementing Version Control With Git and GitHub as a Learning Objective in Statistics and Data Science Courses. Journal of Statistics and Data Science Education, v. 29, n. sup1, p. S132–S144, 2021.
CHACON, S.; STRAUB, B. Pro Git. 2. ed. [s.l.] Apress, 2014.
GIT PROJECT. Git Reference Manual. [s.l: s.n.].
GITHUB. Documentação de introdução ao GitHub, 2024. Disponível em: <https://docs.github.com/pt/get-started>