Categorias
Ciência de Dados Git

Conceitos essenciais no Git

O objetivo deste post é apresentar de forma sucinta e concisa o conceito de algumas palavras-chave para entender o funcionamento da ferramenta de versionamento Git.

A ideia é construir uma espécie de Glossário, trazendo o significado de palavras, que são a base para entender o funcionamento desta ferramenta, que é amplamente utilizada por diversos segmentos Techs, incluindo a Ciências de Dados.

Glossário Git
  • COMMIT: A palavra commit do inglês, nos remete à ideia de comprometer, verificar ou confirmar algo. No Git, significa que uma nova alteração feita no código do projeto será submetida para o salvamento no ambiente local. Funciona como uma captura da versão atual do projeto, em que é possível adicionar uma mensagem que “vai contar a história do projeto” durante o seu desenvolvimento.
  • REPOSITÓRIO LOCAL: É o repositório criado dentro da máquina local.
  • REPOSITÓRIO REMOTO: É um repositório que não está localizado na máquina local, por exemplo o GitHub.
  • BRANCH: É um ambiente que possui uma linha de trabalho independente. Permite modificar códigos, sem alterar o que já está funcionando, com mais segurança, autonomia e minimizando os conflitos de merge. Por exemplo, uma equipe está trabalhando em um projeto, onde cada um trabalha de forma independente, em partes diferentes do código do projeto e em uma branch diferente e, conforme as alterações vão sendo realizadas, serão salvas em um único projeto.
  • HEAD: Funciona como um ponteiro que representa a versão que está sendo alterada no momento, ou seja, em qual versão do projeto estamos trabalhando. Utilizando o comando checkout em uma branch, o Git de forma automática coloca a HEAD apontando para a última versão desta branch.
  • MERGE: É a união de commits. Por exemplo, quando um código está sendo testado fora da branch “oficial” e depois de “passar no teste” ele pode ser adicionado à branch “oficial”, através da realização de um merge.
  • CONFLITO DE MERGE: Ocorre quando linhas de código diferentes são salvas no mesmo arquivo e ficam “sobrepostas”. É como se duas linhas de código tentassem ocupar o mesmo espaço. Estes conflitos podem acontecer na união entre branchs e entre commits. O Git não consegue resolver este problema automaticamente, é necessário resolver desfazendo as alterações ou com a utilização de pacotes especiais que auxiliam nessa etapa.

Esses são alguns conceitos básicos para entender o funcionamento do Git que são necessários para um melhor embasamento, quando estamos estudando ou trabalhando com essa ferramenta.

Agradeço o seu tempo para a leitura deste pequeno artigo, espero ter contribuído. E, se você quer saber mais sobre a utilização do Git, seus principais comandos e como trabalhar com essa ferramenta, faça a leitura do artigo listado no link abaixo, onde este tema está mais detalhado. Até logo 😉

Comandos no Git que todo Cientista de Dados precisa saber – My Blog (merazzi.com.br)

Meus contatos:

github.com/denisemerazzi
www.linkedin.com/in/denisewmerazzi/

Categorias
Ciência de Dados Git

Comandos no Git que todo Cientista de Dados precisa saber

Nesse artigo, você vai conhecer os principais conceitos e comandos para utilizar a ferramenta Git nos seus projetos de Data Science, desde a criação de um novo repositório local até os conceitos mais avançados como branchs e merge, que facilitam o trabalho em equipe em um ambiente remoto e colaborativo.

O que é e para que serve?

O Git é uma ferramenta que não pode faltar na formação de um Cientista de Dados, porque permite o controle de versionamento de códigos, organiza as alterações realizadas ao longo do projeto, permite fazer um push e um pull dessas alterações e continuar o desenvolvimento do projeto, com as suas melhorias implementadas.

O ideia do Git é fornecer um repositório local para armazenar o projeto, que pode funcionar offline para um trabalho mais individual e além disso facilita o compartilhamento das alterações do projeto para um trabalho em equipe, organizado em ambiente remoto.

O Git apresenta muitas facilidades que o tornam uma ferramenta indispensável:

  • Segurança e facilidade no controle de versões do Projeto.
  • Construção de branches, que são ambientes seguros para desenvolver e testar, sem impactar no que já está em produção funcionando.
  • É possível ignorar alguns arquivos, através da utilização do .gitignore, para filtrar os arquivos que não fazem parte do código-fonte do projeto.
  • Operações rápidas e fáceis.
  • Capacidade para adicionar ou mover arquivos.
  • É possível entender o histórico das modificações realizadas.
Conhecendo a área de trabalho do Git
  • Staging: onde ficam todos os arquivos alterados e que foram marcados como prontos para terem o seu estado salvo, com um commit. Utilizamos o comando git add <nome_arquivo> para enviar um arquivo para a Staging Area.
  • Repository: área onde ficam todos os arquivos versionados pelo Git, que foram salvos com o comando git commit.
  • Working Directory: área onde ficam todos os arquivos que foram alterados (saíram da área Repository), mas ainda não foram marcados como prontos para serem commitados. Utiliza-se o comando git restore<nome_arquivo> para remover o arquivo de dentro da Working Directory e retornar ao último estado salvo no Repository (a funcionalidade deste comando é desfazer as alterações e voltar para o Repository ).
Alguns comandos essenciais no Git que você não pode deixar de conhecer
Comandos para a visualização do histórico e alteração de commits
Comandos para alteração de commits anteriores
Comandos de recuperação de arquivos deletados
Comandos para trabalhar em equipe em um ambiente remoto – GitHub
Trabalhando com Branchs

A branch permite modificar os códigos de um projeto, sem alterar o que já está funcionando, promovendo a independência no desenvolvimento para testar e alterar antes de enviar para o ambiente de produção. Assim, a equipe pode produzir de forma independente, com mais segurança no projeto, minimizando os conflitos de merge.

Comandos para criar e mover Branchs
Realização do merge

O merge é a união de commits e é muito utilizado quando trabalha-se com branch.

O Git não consegue resolver automaticamente quando ocorre o conflito de merge, ou seja, alterações no mesmo arquivo e/ou linhas de código.

Esses conflitos podem acontecer tanto na união entre branchs quanto entre commits.

Para utilizar o comando git merge, tem-se que estar na branch que irá receber as alterações.

No Diagrama abaixo, observa-se que os dois primeiros commits são feitos na Branch main. Quando a Branch develop for criada, uma cópia do projeto será adicionada à ela. E, esta versão do projeto, após suas alterações, retorna através de um merge para a Branch main, atualizando a sua versão.

Exemplo de Diagrama de Histórico de alterações do Git
Comandos para identificar o conflito de merge dentro do Jupyter Notebook

O Jupyter Notebook é “por baixo dos panos” um arquivo json, o que dificulta bastante na hora de identificar onde está acontecendo o problema.

Para visualizar o arquivo fonte, dentro do Jupyter Notebook e identificar onde aconteceu o conflito de merge, utiliza-se o
Reopen Editor With -> text editor.

Quando ocorre o erro no merge no Jupyter, é mais assertivo desfazer o processo. E para auxiliar na identificação do problema, é possível utilizar o pacote nbdime.

Agora, você é capaz de utilizar a ferramenta Git para desenvolver os seus projetos em Data Science, otimizando o versionamento de códigos de maneira segura, eficiente e organizada.

Se você ficou com alguma dúvida sobre algum conceito importante como branch e head, pode visitar um pequeno post que elaborei no formato de um glossário, trazendo o significado de algumas palavras-chave dentro do Git. Pode ser encontrado neste link:

Finalizando, agradeço o seu tempo dedicado à leitura deste artigo, espero ter contribuído de alguma forma e nos encontramos novamente na leitura de futuros artigos.

Conceitos essenciais no Git – My Blog (merazzi.com.br)

Meus contatos:

github.com/denisemerazzi
www.linkedin.com/in/denisewmerazzi/