Principais comandos Git que você precisa saber como um Cientista de Dados

Gustavo Barros
comunidadeds
Published in
8 min readJun 5, 2022
Original Photo by Yancy Min on Unsplash

É verdade que, hoje em dia, o Git se tornou uma ferramenta dada como obrigatória na caixa de ferramentas de qualquer profissional que trabalha com programação, incluindo Cientistas de Dados, seja ele Júnior, Pleno ou Sênior. A maioria das vagas disponíveis no mercado requerem conhecimentos de Git, e o fato dele sempre ser mencionado nas últimas posições dos requisitos das vagas, ou nem sequer ser mencionado, diz respeito que essas empresas já consideram meio que padrão o conhecimento desta ferramenta.

E é para te ajudar a criar essa fluência em Git que eu vou te explicar quais são os principais comandos e como utilizamos no seu dia-a-dia, e alguns outros mais avançados que, com certeza, vão te tornar o especialista de Git em seu entorno, onde outras pessoas irão recorrer para consertar os conflitos no repositório delas.

O que é versionamento de código?

Um sistema de versionamento de código ou controle de versão, é apenas um software que ajuda a controlar (ou gerenciar) as diferentes versões de algo. Literalmente qualquer coisa, pode ser códigos-fonte, notebooks jupyter, planilhas Excel, arquivos txt, fotos etc. Se você trabalha com arquivos e precisa organizá-los, manter controle sobre modificações, voltar a uma versão mais antiga e até mesmo verificar todas as edições que você já implementou nele, então Git é a sua ferramenta.

No caso dos profissionais de Dados, além de ser um padrão da indústria, o Git contribue no workflow dos times que estão trabalhando em um mesmo projeto/análise capacitando-os a atuarem em partes diferentes do projeto ao mesmo tempo, sem causar conflitos ou ter que interromper o ciclo de trabalho de um time enquanto esperam outro terminar a parte deles.

Criando um repositório Git

Antes mesmo de criar os primeiros commits ou fazer qualquer outra coisa com o seu repositório git, o mesmo precisa de fato existir em um diretório no seu computador. Para criar um novo repositório Git dentro do seu diretório atual, nós utilizamos o comando git init. Este comando configura todo o setup inicial da ferramenta e salva tudo isso em uma pasta oculta no diretório atual chamada .git, nela estão contidos os arquivos necessários para o que a ferramenta funcione, arquivos dos quais você não precisa se preocupar.

Outra forma de iniciar um repo Git é clonando um repositório existente através do comando git clone <url_do_repo>, isso significa que você vai importar(baixar) um repositório seu salvo na web, ou o repositório de outra pessoa para um local na sua máquina, por exemplo, você encontrou um repositório muito interesse na página do Github, e deseja baixá-lo para sua máquina local, basta então executar o comando ´git clone´ passando a url do repositório como parâmetro (no finalzinho do comando).

Um terceiro comando inicial e imprescindível é o git status, que como o nome indica, te mostra um panorama da situação atual do seu repositório, mostrando informações importantes que, na maioria dos casos, vão determinar quais serão os próximos comandos Git que você executará. Eu aconselho sempre utilizar o comando git status após o uso de qualquer outro comando, para checar que tudo ocorreu bem na execução do comando anterior e por ser uma boa prática.

Comandos usados:

  • git init
  • git clone
  • git status

Adicionando Commits ao seu Repositório

Você deve pensar em um repositório ou repo, como uma pasta na qual estão localizados todos os seus códigos/notebooks de um determinado projeto e etc. Conforme você vai adicionando novas análises, criando novos modelos, você vai criando novas versões do seu projeto dentro do Git, essas versões servem como “checkpoints”, lhe permitindo, acompanhar todo o histórico de desenvolvimento e se necessário, voltar até este checkpoint em um ponto futuro.

Antes mesmo de criarmos estes “checkpoints”, o git precisa saber quais os arquivos do projeto ele deve rastrear para adicioná-los no commit, para isso nós utilizamos o comando git add <nome_do_arquivo> ou git add . (para todos os arquivos do diretório atual). É recomendado que você sempre utilize este comando quando houver alterações no código-fonte de qualquer arquivo do seu projeto, deixando tudo pronto para o próximo passo.

Para criar esses “checkpoints”, nós utilizamos o comando git commit -m “<mensagem>”, onde o -m é uma flag que indica que o texto a seguir é a mensagem principal para o respectivo commit. Cada commit possui uma mensagem indicativa e um código único apelidado de SHA, que serve como o ID dp commit, a mensagem mencionada anteriormente sintetiza as mudanças que foram realizadas no código nesta versão, deixando claro para outras pessoas o que foi modificado e onde foi modificado. O indicado é sempre realizar commits quando você finalizou ou modificou uma parte única do seu projeto, por exemplo, não é indicado realizar um commit quando se englobe moficações em mais de um notebook, sendo melhor um novo commit para cada notebook atualizado.

Comandos usados:

  • git add
  • git commit

Enviando commits para o repositório do Github

Linkando o seu repositório local com o repositório online

O primeiro passo aqui é garantir que você tem um repositório criado na sua conta do Github, e que você também tem um outro repositório criado localmente em algum diretório da sua máquina, , preferencialmente de mesmo nome, uma vez essas duas premissas estando satisfeitas, nós podemos obter a url do nosso repo online no site do Github e utilizá-la para efetuar essa conexão, por meio do comando: git remote add origin <url_do_repo_online>.

Preparando arquivos locais para serem enviados

Uma vez que você constatou que está na hora de gerar um novo commit com as edições atuais e que você quer salvá-lo no seu repositório online, você deve seguir os seguintes passos:

  • Coloque todos os arquivos modificados em stage, com o comando: git add .
  • Faça o commit dos arquivos em stage e adicione uma mensagem: git commit -m “first commit”
  • Então, verificado que tudo está ok ao utilizar o comando ‘git status’, executar o comando final: git push origin <branch>

Comandos usados:

  • git remote add origin <url_do_repo_online>
  • git add .
  • git commit -m “<mensagem>”
  • git push origin <branch>

Revisando o histórico de um Repositório

O histórico de um repositório é uma lista cronologicamente ordenada dos commits realizados no repositório. É com esta lista que nós podemos visualizar toda a história daquele projeto, quem o modificou, quando, quais foram os arquivos e até mesmo quais linhas dos arquivos que foram modificadas. Para isso existem dois principais comandos: git show e git log.

O git show mostra informações detalhadas sobre um único commit em particular. Este comando aceita um argumento, o SHA do commit em questão, ficando desse jeito: git show <SHA> . Dentre outras coisas, o comando show mostra a mensagem do commit, a data e hora de sua criação, o branch no qual ele foi criado, o nome do autor, quais arquivos foram modificados e as modificações propriamente ditas feitas em cada arquivo.

O git log é uma versão mais poderosa e ampla do comando anterior, ele mostra uma visão geral de todos os commits de um determinado repositório, printando a lista completa de todos os commits e não de somente um. Este comando possui diversas variações, sendo elas:

  • git log (padrão): Mostra a lista de commits em ordem cronologica, do mais recente ao mais antigo, mostrando apenas a mensagem do commit, seu SHA, autor e data de criação.
  • git log — oneline: Versão condensada do modo padrão, mostrando apenas uma parte do SHA e a respectiva mensagem do commit.
  • git log — stat: Stat é a abreviação de ‘statistics’, ou seja, este comando mostra algumas métricas simples sobre as modificações feitas no repositório naquele commit.
  • git log -p: Mostra a lista com todos os commits e TODAS as modificações realizadas nos arquivos do projeto para cada commit. Expere um output bastante extenso!
  • git log — oneline — graph — all: O comando log com estas respectivas flags mostra uma árvore de commits que nos permite visualizar graficamente cada branch e como eles estão ordenados cronologicamente, todas suas bifurcações e commits resultantes do comando git merge(iremos falar dele mais a frente).

Comandos usados:

  • git show
  • git log

Conceitos Avançados: Tagging, Branching, e Merging

Tags

Para efeitos de gerenciamento do seu repositório, a criação de tags para marcar um commit em particular é vantajoso, por exemplo, um commit que representa a finalização da primeira versão do seu projeto deveria receber uma tag indentificando a delimitação da nova versão, com o comando: git tag <SHA> <nome_tag> .

Branchs

Dentro de um ambiente profissional de desenvolvimento de software, cada projeto será abordado por diversos profissionais que atuarão em partes específicas do projeto, a maneira com a qual é evitada a situação em que cada pessoa anda por aí com um pen drive dos arquivos, passando as atualizações de um para o outro, é dada através da divisão do projeto em branchs, ou ramificações, onde cada branch novo permite a segmentação do projeto em partes individuais, isoladas entre si. Vale ressaltar que todos o repositórios possuem ao menos um branch, o master ou main, que é criado no momento da criação do repositório e é considerado como o branch padrão.

Nós criamos um novo branch no repositório atual com o comando git branch <nome_branch>. Para listar os branchs atuais do seu repositório é utilizado o comando git branch, sem qualquer parâmetro, e para trocar de branch, utilizamos o comando git checkout <nome_branch>, uma vez feita a troca do branch atual, todo novo commit será salvo nele.

Merge

Você pode estar se perguntando: agora que meu projeto foi dividido em branches e cada um do meu time fez suas modificações no projeto em seus respectivos branches, como fazer para unir essas modificações de volta em um único projeto sem causar perdas ou conflitos? A reposta é que existe um comando dedicado para esta tarefa, chamado git merge <SHA>, este comando pega o commit atual e une com o commit identificado pelo <SHA> que foi passado como parâmetro, resultando em outro commit que será salvo logo à frente do commit atual. Este novo commit resultante da operação será a composição dos códigos contidos nos dois primeiros commits, unindo assim as duas versões do código em uma só.

Comandos usados:

  • git tag
  • git branch
  • git checkout
  • git merge

Desfazendo Modificações

Para desfazer commits, ou seja voltar para versões anteriores do seu projeto, existem dois principais comandos, o git revert <SHA> que é uma maneira mais “segura”, já que ele não “volta no tempo” e deleta os commits criados mais recentemente, ele apenas cria um novo commit à frente do commit atual, que corresponde ao estado anterior representado pelo commit referenciado no SHA passado como parâmetro. O outro modo de reverter alterações é o git reset <SHA>, este comando é mais força bruta, já que ele simplesmente apaga todos os commits posteriores ao commit passado como parâmetro, fazendo com que todas as alterações após o commit referenciado deixem de existir.

Comandos usados:

  • git revert
  • git reset

E é isso! Aqui foram listados e exemplificados a maioria dos comandos git que você vai precisar ao longo de sua trajetória no universo da programação e Ciência de Dados.

A e lembre-se de sempre utilizar o comando git status e de me seguir nas redes socias, Medium e Github, para dar aquela força e saber mais sobre dicas de carreira na área de Dados.

--

--