Git é um sistema de controle de versão distribuído e de código aberto. Ele permite que desenvolvedores e cientistas de dados acompanhem o código, façam merges de mudanças e revertam para versões anteriores - AWS. Você pode sincronizar alterações com um servidor remoto. Pela flexibilidade e popularidade, o Git se tornou um padrão do mercado, já que funciona praticamente em todos os ambientes de desenvolvimento, ferramentas de linha de comando e sistemas operacionais.
Como o Git funciona?
O Git armazena seus arquivos e o histórico de desenvolvimento em um repositório local. Sempre que você salva alterações feitas, o Git cria um commit. Um commit é um snapshot dos arquivos naquele momento. Esses commits são encadeados, formando um grafo de histórico de desenvolvimento, como mostrado abaixo. Ele permite voltar a um commit anterior, comparar mudanças e ver a evolução do projeto - Azure DevOps. Os commits são identificados por um hash único, usado para comparar e reverter alterações.
Um grafo do histórico de desenvolvimento
Branches
As branches são cópias do código-fonte que evoluem em paralelo à versão principal. Para salvar as mudanças realizadas, faça o merge da branch com a versão principal. Esse recurso favorece um trabalho em equipe sem conflitos. Cada desenvolvedor tem sua tarefa e, usando branches, pode trabalhar em uma nova funcionalidade sem interferência dos colegas. Quando a tarefa terminar, você pode mesclar a nova funcionalidade com a versão principal (branch master). Se quiser aprender a clonar uma branch, confira este tutorial sobre Git Clone Branch.
Adicionando uma nova feature ao repositório
Commits
Há três estados de arquivos no Git: modified, staged e commit. Quando você altera um arquivo, as mudanças ficam salvas no diretório local e ainda não fazem parte do histórico do Git. Para criar um commit, primeiro você precisa levar os arquivos alterados para a área de staging. Você pode adicionar ou remover mudanças da staging area e então empacotar essas alterações em um commit com uma mensagem descritiva.
Três estados de arquivos no Git
Quais são os benefícios do Git?
Acompanhar mudanças: permite visualizar alterações históricas. O histórico facilita identificar e corrigir bugs.
Integração com IDEs: graças à sua popularidade, o Git está integrado a todos os ambientes de desenvolvimento, como VSCode e JupyterLab.
Colaboração em equipe: o time pode acompanhar o progresso e, usando branches, cada pessoa trabalha em sua tarefa e depois mescla as mudanças com a versão principal. Pull requests, resolução de conflitos de merge e code reviews fortalecem a colaboração.
VCS distribuído: em um sistema distribuído, não há armazenamento centralizado de arquivos. Existem múltiplos backups do mesmo projeto. Essa abordagem permite trabalhar offline e fazer commits.
Git em projetos de ciência de dados
O Git oferece controle de versão para scripts, métricas, dados e modelos. Usando a extensão git-lfs, você pode armazenar e versionar grandes bases de dados e modelos de machine learning. Em um projeto típico de ciência de dados, você tem um notebook Jupyter, dataset, modelo, metadados e métricas do modelo. Os metadados incluem arquivos com informações sobre o modelo de machine learning, features, hiperparâmetros e arquivos de automação. Tudo isso é essencial para monitorar a evolução de aplicações de IA e solucionar problemas.
Rastrear experimentos em ciência de dados ajuda pesquisadores a reverter alterações acidentais, escolher o melhor experimento com base nas métricas e colaborar com o time. O diagrama abaixo mostra como mudanças em dados ou código afetam os metadados e a saída do modelo. Acompanhar essas mudanças também ajuda o restante da equipe a propor soluções melhores. Saiba tudo sobre Git no post mais recente da Summer Worsley.
Git em um projeto de ciência de dados
Colaboração com o GitHub
GitHub é uma plataforma em nuvem para desenvolvimento de software. Ela é amplamente usada para salvar arquivos, acompanhar mudanças e colaborar em projetos. Nos últimos anos, o GitHub se tornou a plataforma social mais popular para comunidades de desenvolvimento. Pessoas contribuem com projetos open source e relatórios de bugs, discutem novas ideias e descobrem ferramentas.
Cientistas de dados e engenheiros de machine learning seguem o caminho dos desenvolvedores de software e integram seu fluxo de trabalho ao GitHub. Assim, podem compartilhar pesquisas, permitir contribuições da comunidade e colaborar com times de dados. Você encontra todo tipo de projeto, guia, tutorial e recurso de ciência de dados e ML na plataforma. Para estudantes, virou uma oportunidade de adquirir experiência prática e, com o tempo, conseguir uma vaga em empresas de destaque.
Portfólio
A maioria dos recrutadores técnicos vai pedir seus projetos de portfólio ou o perfil do GitHub. Isso ajuda a avaliar se você é a pessoa certa para a vaga. É altamente recomendado criar um perfil no GitHub e mantê-lo atualizado. Gestores de contratação buscam candidatos com experiência sólida em desenvolvimento e participação em projetos open source. Analisar o portfólio no GitHub também ajuda a preparar perguntas para entrevistas técnicas.
O GitHub permite que cientistas de dados mostrem seus projetos, e isso pode contar como experiência profissional no seu currículo. Expor seus projetos de portfólio também abre portas para colaborações, criação de startups e pesquisas.
Projetos de portfólio
Recursos
O GitHub também oferece vários outros recursos tão importantes quanto mostrar um portfólio. Vale conhecer cada um para incorporá-los aos seus projetos de ciência de dados.
Open source: o GitHub fornece um ecossistema completo para projetos abertos. Você pode patrocinar mantenedores, contribuir com um projeto, usar ferramentas open source no seu código e divulgar seu trabalho.
Colaboração em comunidade: o GitHub se tornou um espaço de comunidade onde se discutem issues, pedidos de features, contribuições de código e documentação.
Explore: a aba GitHub Explore ajuda você a descobrir projetos, ferramentas em alta e eventos de desenvolvedores.
GitHub Gists: compartilhe trechos de código ou incorpore-os em blogs e sites.
GitHub CLI: permite realizar pull/merge requests, revisar código, checar issues e acompanhar o progresso direto pela linha de comando.
Armazenamento gratuito: repositórios privados e públicos ilimitados.
Hospedagem web: você pode publicar seu site de portfólio ou documentação. O GitHub Pages facilita criar e colocar um site no ar.
Codespaces: um ambiente de desenvolvimento em nuvem integrado ao seu repositório no GitHub.
Projects: uma ferramenta personalizável e flexível para planejar e acompanhar o trabalho no GitHub.
Automação: o GitHub Actions automatiza o fluxo de desenvolvimento, como build, testes, publicação, release e deploy.
Sponsor: apoie seu projeto ou desenvolvedor favorito com uma contribuição mensal ou única. Também é possível usar plataformas de pagamento de terceiros, como ko-fi.
Comandos básicos
Antes de partir para o gerenciamento de projetos de ciência de dados, vamos ver os comandos do Git que você mais vai usar no dia a dia. Eles incluem inicializar o repositório, salvar mudanças, checar logs, enviar alterações para o servidor remoto e fazer merges.
git init cria um repositório Git no diretório local.
git clone <endereço-do-repo-remoto>: copia todo o repositório de um servidor remoto para o diretório local. Também pode copiar repositórios locais.
git add <arquivo.txt>: adiciona um arquivo, múltiplos arquivos ou pastas à área de staging.
git commit –m “Mensagem”: cria um snapshot das mudanças e o salva no repositório.
git config usado para definir configurações do usuário, como email, nome de usuário e formatação de arquivos.
git status mostra a lista de arquivos alterados ou que ainda não foram levados para staging e commit.
git push <nome-do-remoto> <nome-da-branch>: envia commits locais para a branch remota do repositório.
git checkout -b <nome-da-branch>: cria uma nova branch e muda para ela.
git remote –v: lista todos os repositórios remotos.
git remote add <nome-do-remoto> <host-ou-URL-remota>: adiciona um servidor remoto ao repositório local.
git branch –d <nome-da-branch>: exclui a branch.
git pull merge commits de um repositório remoto no diretório local.
git merge <nome-da-branch>: depois de resolver conflitos, mescla a branch selecionada com a branch atual.
git log mostra a lista detalhada de commits da branch atual.
Nesta seção, vamos usar o Git para versionar um projeto de ciência de dados e o GitHub como servidor remoto. Vamos aprender a instalar o Git, criar e clonar um repositório do GitHub, executar experimentos de machine learning e enviar mudanças (notebook, modelo, dados) para o GitHub usando o Windows PowerShell 7.
Instalando o Git
O Git funciona em todos os sistemas operacionais. Você pode instalá-lo pela linha de comando ou baixando e executando o instalador.
Linux
Em sistemas Debian/Ubuntu use `apt-get install git`; se estiver em outra distribuição Linux, veja a lista completa de comandos de instalação aqui.
macOS
Se você tiver o homebrew instalado, use este comando para baixar e instalar o Git: `brew install git`. Você também pode baixar o instalador binário e executar o setup.
Windows
Instalar o Git no Windows é simples. Vá até a página de download, clique na sua versão do Windows e baixe e instale. Se você usa a ferramenta winget, pode instalar digitando winget install --id Git.Git -e --source winget no PowerShell.
Depois de instalar o Git, configure seu nome de usuário e email. Essas informações assinam seus commits.
Para mais detalhes sobre como instalar o Git, clique aqui.
Inicializando o projeto
Se você tem uma conta no GitHub, clique no botão + e selecione novo repositório. Depois, digite o nome e adicione uma descrição simples. Isso criará um repositório público vazio.
Criando o projeto
Há várias maneiras de clonar repositórios remotos para o diretório local, e o GitHub fornece um guia detalhado sobre como clonar, adicionar o remoto e inicializar um projeto Git.
Clone no GitHub
Podemos simplesmente clonar o repositório fornecendo o link HTTPS. Certifique-se de estar no diretório de trabalho, usando o Prompt de Comando ou o PowerShell.
git clone https://github.com/kingabzpro/DataCamp-Git.git
>>> Clonando em 'DataCamp-Git'...
>>> warning: Parece que você clonou um repositório vazio.
cd .\DataCamp-Git\Tecnologia
OU
Crie um novo diretório chamado “DataCamp-Git” e inicialize o Git com um comando simples. Depois, adicione a conexão com o repositório remoto para poder sincronizar seu trabalho com o GitHub.
mkdir DataCamp-Git
cd .\DataCamp-Git
git init
>>> Repositório Git vazio inicializado em C:/Repository/GitHub/DataCamp-Git/.git/
git remote add origin https://github.com/kingabzpro/DataCamp-Git.gitTecnologia
OU
Se você já tem um projeto em um diretório, apenas inicialize o Git com `git init` e adicione o remoto do GitHub, como mostrado acima.
Commit simples
Antes de adicionar arquivos ao repositório, confirme que você está no diretório local correto.
Vamos começar criando um README com o título DataCamp-Git. Em seguida, vamos adicioná-lo à área de staging com `git add`.
O git status mostra que estamos na branch main e que o arquivo `README.md` está em staging e pronto para commit.
git status
>>> On branch main
>>> No commits yet
>>> Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: README.mdTecnologia
Para criar nosso primeiro commit, vamos usar `git commit` com uma mensagem. Como dá para ver, o primeiro commit foi adicionado sob o hash ed9c886.
Para salvar o arquivo do modelo, adicionamos uma nova célula de código no notebook Jupyter do projeto. O script cria um diretório “model” e salva os modelos LSTM e GRU.
!mkdir -p model
model_lstm.save('model/LSTM')
model_gru.save('model/GRU')Tecnologia
Como vemos, o repositório Git tem uma pasta data com arquivos CSV e a pasta model com os pesos e metadados dos modelos.
Agora vamos colocar todos os arquivos em staging. Você pode adicionar qualquer diretório, arquivo ou dado depois do comando inicial.
Para sincronizar com o repositório remoto no GitHub é preciso informar o nome do remoto e o nome da branch `git push <nome-do-remoto> <nome-da-branch>`. Se você só tem um remoto e uma branch, apenas `git push` funciona.
Após o `git push`, uma janela pop-up vai pedir suas credenciais: informe seu usuário e senha do GitHub. Você também pode gerar tokens de acesso pessoal e usá-los no lugar da senha. Saiba mais no tutorial de Git Push e Pull.
Vamos conferir nosso repositório no GitHub kingabzpro/DataCamp-Git para ver se as mudanças foram enviadas com sucesso. O repositório contém todos os arquivos, dados e modelos.
Push para o GitHub
Branches no Git
É recomendável trabalhar com branches: por exemplo, se você vai tratar da documentação, crie uma branch de documentação usando git checkout ou git branch. Faça as mudanças no README e, quando finalizar, faça o merge da branch com a base.
No nosso caso, criamos e mudamos para uma nova branch chamada readme.
Vamos editar o README adicionando a descrição do projeto e links para o workspace e o tutorial de RNN na DataCamp. Depois, vamos colocar as mudanças em staging e salvar o snapshot com uma mensagem.
git add README.md
git commit -m "project description and links to blog"
>>> [readme f3b8b9b] project description and links to blog
>>> 1 file changed, 8 insertions(+)Tecnologia
O repositório remoto não tem a branch readme. Para criar a branch e enviar as mudanças, usaremos “readme:readme”. A saída mostra que as branches foram criadas e que as branches `readme` local e remota estão sincronizadas.
git push origin readme:readme
>>> remote: Resolving deltas: 100% (1/1), completed with 1 local object.
>>> remote: Create a pull request for 'readme' on GitHub by visiting:
>>> remote: https://github.com/kingabzpro/DataCamp-Git/pull/new/readme
>>> remote:
To https://github.com/kingabzpro/DataCamp-Git.git
>>> * [new branch] readme -> readmeTecnologia
Você pode ver que enviamos com sucesso a branch local para o GitHub com a versão modificada do arquivo README.md.
Branch readme no GitHub
Pull request
Esse fluxo é comum em organizações. Por exemplo, uma pessoa desenvolvedora trabalhou em uma nova feature e quer mesclar as mudanças na branch principal remota. Vamos criar um pull request usando a interface do GitHub clicando em Pull request. Depois, selecione a branch readme que queremos mesclar com a base (main). Escreva uma explicação detalhando as mudanças e clique no botão para abrir o pull request.
Pull request da branch readme para a main
O mantenedor do repositório vai comparar suas mudanças e mesclá-las quando passarem por todos os testes. No nosso caso, você é o mantenedor, então clique em merge para integrar as mudanças à branch principal.
Merge do pull request no GitHub
Parabéns! Criamos o pull request e fizemos o merge com a branch principal. Você pode ver as mudanças na branch main aqui.
Se quiser ver todas as mudanças no seu repositório, digite `git log` e ele mostrará o histórico do projeto. Registrar mudanças em projetos de ciência de dados é importante, e o Git ajuda a rastrear tudo, inclusive grandes datasets.
Histórico de logs do Git
Considerações finais
Práticas de GitOps são fundamentais no desenvolvimento de aplicações de dados. Tornaram-se uma habilidade essencial para todos os tipos de vagas em TI, e até pesquisadores acadêmicos as utilizam para compartilhar código experimental com um público mais amplo. Já o GitHub tem um papel enorme na promoção de projetos open source ao oferecer um ecossistema de desenvolvimento gratuito para todos.
Neste tutorial, aprendemos sobre Git e GitHub e por que eles são importantes para projetos de ciência de dados. Você também viu comandos básicos do Git e teve uma experiência prática de como versionar mudanças em dados, modelos e código. Se quiser se aprofundar em Git, faça o curso Introduction to Git na DataCamp. Você também pode conhecer a importância da certificação GitHub Foundations e como ela pode impulsionar sua carreira.
Perguntas frequentes sobre Git
O que é Git?⌄
Um sistema de controle de versão distribuído e de código aberto. Ele permite que desenvolvedores armazenem, versionem e visualizem mudanças em um projeto de desenvolvimento. Favorece um trabalho em equipe flexível e um fluxo de trabalho otimizado.
O que significa Git?⌄
Não é um acrônimo. Segundo seu criador, Linus Torvalds, “Git pode significar qualquer coisa, depende do seu humor.” É a combinação de três letras aleatórias que não são usadas por nenhum comando UNIX.
Como clonar um repositório Git?⌄
Basta digitar `git clone <endereço do repositório remoto>` no terminal. Você pode clonar repositórios locais e remotos. Há suporte para os protocolos SSH e HTTPS.
Como apagar uma branch no Git?⌄
Para apagar uma branch local, use `git branch -d <nome_da_branch_local>`, e para apagar a branch remota, use `git push <nome_do_remoto> -d <nome_da_branch_remota>`.
Como alternar entre branches no Git?⌄
Altere para uma branch existente com `git checkout <nome_da_branch>` ou crie e mude para uma nova branch com `git checkout -b <nome_da_branch>`.
Como instalo o Git?⌄
Em sistemas Linux, use `apt-get install git`, e para outros sistemas operacionais acesse git-scm.com.
O Git é gratuito?⌄
Sim, é gratuito e de código aberto sob a licença GPL-2.0.
O que é Git Bash?⌄
É um aplicativo para Microsoft Windows que oferece utilitários e experiência de shell baseados em Unix.
Como criar uma nova branch no Git?⌄
Use o comando `git branch <nova-branch> <base-branch>` no terminal. Para criar e alternar para uma nova branch, use `git checkout -b <nome_da_branch>`.
O que o git pull faz?⌄
Atualiza a versão local de um repositório a partir de um servidor remoto, copiando todas as alterações do repositório remoto e mesclando-as com o diretório local. Esse processo geralmente exige resolver conflitos de merge.
Como fazer fork de um repositório no Git?⌄
Fazer fork no GitHub é criar uma cópia de um repositório na sua conta do GitHub a partir de outra conta. É comum para contribuições da comunidade ou trabalho em equipe.
Como renomear uma branch no Git?⌄
Para o repositório local é simples: use `git branch -m <nome-antigo> <nome-novo>`. Para renomear uma branch remota, primeiro remova a antiga com `git push origin --delete <nome-antigo>` e depois envie a nova `git push -u origin <nome_novo>`.
Como excluir o repositório Git?⌄
Você pode excluir a pasta local ou remover a pasta .git com `rm -fr .git`. No GitHub, vá nas configurações do repositório e, no fim da página, você verá a opção de exclusão.
Como instalar o Git no Windows?⌄
Baixe o instalador para Windows no site e execute-o. Ele instalará o Git Bash, o Git CDM e o Git GUI.
Como reverter um commit no Git?⌄
Use `git revert <commit sha>`, que requer o hash único de um commit anterior. Você também pode usar `git revert HEAD~2`, que volta dois commits a partir do HEAD.
Saiba mais sobre o sistema de controle de versão mais conhecido e por que é uma ferramenta de colaboração indispensável para cientistas de dados e programadores.
Saiba como renomear ramificações locais e remotas do Git usando o terminal ou a interface gráfica do usuário (GUI) de clientes populares como o GitHub.
O que é Git?
Git é um sistema de controle de versão distribuído e de código aberto. Ele permite que desenvolvedores e cientistas de dados acompanhem o código, façam merges de mudanças e revertam para versões anteriores - AWS. Você pode sincronizar alterações com um servidor remoto. Pela flexibilidade e popularidade, o Git se tornou um padrão do mercado, já que funciona praticamente em todos os ambientes de desenvolvimento, ferramentas de linha de comando e sistemas operacionais.
Como o Git funciona?
O Git armazena seus arquivos e o histórico de desenvolvimento em um repositório local. Sempre que você salva alterações feitas, o Git cria um commit. Um commit é um snapshot dos arquivos naquele momento. Esses commits são encadeados, formando um grafo de histórico de desenvolvimento, como mostrado abaixo. Ele permite voltar a um commit anterior, comparar mudanças e ver a evolução do projeto - Azure DevOps. Os commits são identificados por um hash único, usado para comparar e reverter alterações.
Um grafo do histórico de desenvolvimento
Branches
As branches são cópias do código-fonte que evoluem em paralelo à versão principal. Para salvar as mudanças realizadas, faça o merge da branch com a versão principal. Esse recurso favorece um trabalho em equipe sem conflitos. Cada desenvolvedor tem sua tarefa e, usando branches, pode trabalhar em uma nova funcionalidade sem interferência dos colegas. Quando a tarefa terminar, você pode mesclar a nova funcionalidade com a versão principal (branch master). Se quiser aprender a clonar uma branch, confira este tutorial sobre Git Clone Branch.
Adicionando uma nova feature ao repositório
Commits
Há três estados de arquivos no Git: modified, staged e commit. Quando você altera um arquivo, as mudanças ficam salvas no diretório local e ainda não fazem parte do histórico do Git. Para criar um commit, primeiro você precisa levar os arquivos alterados para a área de staging. Você pode adicionar ou remover mudanças da staging area e então empacotar essas alterações em um commit com uma mensagem descritiva.
Três estados de arquivos no Git
Quais são os benefícios do Git?
Git em projetos de ciência de dados
O Git oferece controle de versão para scripts, métricas, dados e modelos. Usando a extensão git-lfs, você pode armazenar e versionar grandes bases de dados e modelos de machine learning. Em um projeto típico de ciência de dados, você tem um notebook Jupyter, dataset, modelo, metadados e métricas do modelo. Os metadados incluem arquivos com informações sobre o modelo de machine learning, features, hiperparâmetros e arquivos de automação. Tudo isso é essencial para monitorar a evolução de aplicações de IA e solucionar problemas.
Rastrear experimentos em ciência de dados ajuda pesquisadores a reverter alterações acidentais, escolher o melhor experimento com base nas métricas e colaborar com o time. O diagrama abaixo mostra como mudanças em dados ou código afetam os metadados e a saída do modelo. Acompanhar essas mudanças também ajuda o restante da equipe a propor soluções melhores. Saiba tudo sobre Git no post mais recente da Summer Worsley.
Git em um projeto de ciência de dados
Colaboração com o GitHub
GitHub é uma plataforma em nuvem para desenvolvimento de software. Ela é amplamente usada para salvar arquivos, acompanhar mudanças e colaborar em projetos. Nos últimos anos, o GitHub se tornou a plataforma social mais popular para comunidades de desenvolvimento. Pessoas contribuem com projetos open source e relatórios de bugs, discutem novas ideias e descobrem ferramentas.
Cientistas de dados e engenheiros de machine learning seguem o caminho dos desenvolvedores de software e integram seu fluxo de trabalho ao GitHub. Assim, podem compartilhar pesquisas, permitir contribuições da comunidade e colaborar com times de dados. Você encontra todo tipo de projeto, guia, tutorial e recurso de ciência de dados e ML na plataforma. Para estudantes, virou uma oportunidade de adquirir experiência prática e, com o tempo, conseguir uma vaga em empresas de destaque.
Portfólio
A maioria dos recrutadores técnicos vai pedir seus projetos de portfólio ou o perfil do GitHub. Isso ajuda a avaliar se você é a pessoa certa para a vaga. É altamente recomendado criar um perfil no GitHub e mantê-lo atualizado. Gestores de contratação buscam candidatos com experiência sólida em desenvolvimento e participação em projetos open source. Analisar o portfólio no GitHub também ajuda a preparar perguntas para entrevistas técnicas.
GitHub Profile
O GitHub permite que cientistas de dados mostrem seus projetos, e isso pode contar como experiência profissional no seu currículo. Expor seus projetos de portfólio também abre portas para colaborações, criação de startups e pesquisas.
Projetos de portfólio
Recursos
O GitHub também oferece vários outros recursos tão importantes quanto mostrar um portfólio. Vale conhecer cada um para incorporá-los aos seus projetos de ciência de dados.
Comandos básicos
Antes de partir para o gerenciamento de projetos de ciência de dados, vamos ver os comandos do Git que você mais vai usar no dia a dia. Eles incluem inicializar o repositório, salvar mudanças, checar logs, enviar alterações para o servidor remoto e fazer merges.
git initcria um repositório Git no diretório local.git clone <endereço-do-repo-remoto>: copia todo o repositório de um servidor remoto para o diretório local. Também pode copiar repositórios locais.git add <arquivo.txt>: adiciona um arquivo, múltiplos arquivos ou pastas à área de staging.git commit –m “Mensagem”: cria um snapshot das mudanças e o salva no repositório.git configusado para definir configurações do usuário, como email, nome de usuário e formatação de arquivos.git statusmostra a lista de arquivos alterados ou que ainda não foram levados para staging e commit.git push <nome-do-remoto> <nome-da-branch>: envia commits locais para a branch remota do repositório.git checkout -b <nome-da-branch>: cria uma nova branch e muda para ela.git remote –v: lista todos os repositórios remotos.git remote add <nome-do-remoto> <host-ou-URL-remota>: adiciona um servidor remoto ao repositório local.git branch –d <nome-da-branch>: exclui a branch.git pull mergecommits de um repositório remoto no diretório local.git merge <nome-da-branch>: depois de resolver conflitos, mescla a branch selecionada com a branch atual.git logmostra a lista detalhada de commits da branch atual.Desenvolvimento completo com GitHub
Se quiser aprender mais comandos, confira nosso cheat sheet de Git.
Primeiros passos
Nesta seção, vamos usar o Git para versionar um projeto de ciência de dados e o GitHub como servidor remoto. Vamos aprender a instalar o Git, criar e clonar um repositório do GitHub, executar experimentos de machine learning e enviar mudanças (notebook, modelo, dados) para o GitHub usando o Windows PowerShell 7.
Instalando o Git
O Git funciona em todos os sistemas operacionais. Você pode instalá-lo pela linha de comando ou baixando e executando o instalador.
Linux
Em sistemas Debian/Ubuntu use `apt-get install git`; se estiver em outra distribuição Linux, veja a lista completa de comandos de instalação aqui.
macOS
Se você tiver o homebrew instalado, use este comando para baixar e instalar o Git: `brew install git`. Você também pode baixar o instalador binário e executar o setup.
Windows
Instalar o Git no Windows é simples. Vá até a página de download, clique na sua versão do Windows e baixe e instale. Se você usa a ferramenta winget, pode instalar digitando
winget install --id Git.Git -e --source wingetno PowerShell.Depois de instalar o Git, configure seu nome de usuário e email. Essas informações assinam seus commits.
Para mais detalhes sobre como instalar o Git, clique aqui.
Inicializando o projeto
Se você tem uma conta no GitHub, clique no botão + e selecione novo repositório. Depois, digite o nome e adicione uma descrição simples. Isso criará um repositório público vazio.
Criando o projeto
Há várias maneiras de clonar repositórios remotos para o diretório local, e o GitHub fornece um guia detalhado sobre como clonar, adicionar o remoto e inicializar um projeto Git.
Clone no GitHub
Podemos simplesmente clonar o repositório fornecendo o link HTTPS. Certifique-se de estar no diretório de trabalho, usando o Prompt de Comando ou o PowerShell.
OU
Crie um novo diretório chamado “DataCamp-Git” e inicialize o Git com um comando simples. Depois, adicione a conexão com o repositório remoto para poder sincronizar seu trabalho com o GitHub.
OU
Se você já tem um projeto em um diretório, apenas inicialize o Git com `git init` e adicione o remoto do GitHub, como mostrado acima.
Commit simples
Antes de adicionar arquivos ao repositório, confirme que você está no diretório local correto.
Vamos começar criando um README com o título DataCamp-Git. Em seguida, vamos adicioná-lo à área de staging com `git add`.
O git status mostra que estamos na branch main e que o arquivo `README.md` está em staging e pronto para commit.
Para criar nosso primeiro commit, vamos usar `git commit` com uma mensagem. Como dá para ver, o primeiro commit foi adicionado sob o hash ed9c886.
Adicionando arquivos do projeto
Vamos usar o workspace da DataCamp MasterCard Stock Price with LSTM and GRU e baixar os arquivos. O autor já pré-processou os dados e treinou séries temporais com modelos LSTM e GRU. Saiba mais lendo o tutorial de redes neurais recorrentes (RNN).
Para salvar o arquivo do modelo, adicionamos uma nova célula de código no notebook Jupyter do projeto. O script cria um diretório “model” e salva os modelos LSTM e GRU.
Como vemos, o repositório Git tem uma pasta data com arquivos CSV e a pasta model com os pesos e metadados dos modelos.
Agora vamos colocar todos os arquivos em staging. Você pode adicionar qualquer diretório, arquivo ou dado depois do comando inicial.
OU
Se quiser adicionar tudo à área de staging, use o ponto.
Commit e push
Vamos fazer commit de todas as mudanças com uma mensagem simples; a saída mostra todos os novos arquivos em create mode.
Para sincronizar com o repositório remoto no GitHub é preciso informar o nome do remoto e o nome da branch `git push <nome-do-remoto> <nome-da-branch>`. Se você só tem um remoto e uma branch, apenas `git push` funciona.
Após o `git push`, uma janela pop-up vai pedir suas credenciais: informe seu usuário e senha do GitHub. Você também pode gerar tokens de acesso pessoal e usá-los no lugar da senha. Saiba mais no tutorial de Git Push e Pull.
Vamos conferir nosso repositório no GitHub kingabzpro/DataCamp-Git para ver se as mudanças foram enviadas com sucesso. O repositório contém todos os arquivos, dados e modelos.
Push para o GitHub
Branches no Git
É recomendável trabalhar com branches: por exemplo, se você vai tratar da documentação, crie uma branch de documentação usando
git checkoutougit branch. Faça as mudanças no README e, quando finalizar, faça o merge da branch com a base.No nosso caso, criamos e mudamos para uma nova branch chamada
readme.Vamos editar o README adicionando a descrição do projeto e links para o workspace e o tutorial de RNN na DataCamp. Depois, vamos colocar as mudanças em staging e salvar o snapshot com uma mensagem.
O repositório remoto não tem a branch readme. Para criar a branch e enviar as mudanças, usaremos “readme:readme”. A saída mostra que as branches foram criadas e que as branches `readme` local e remota estão sincronizadas.
Você pode ver que enviamos com sucesso a branch local para o GitHub com a versão modificada do arquivo README.md.
Branch readme no GitHub
Pull request
Esse fluxo é comum em organizações. Por exemplo, uma pessoa desenvolvedora trabalhou em uma nova feature e quer mesclar as mudanças na branch principal remota. Vamos criar um pull request usando a interface do GitHub clicando em Pull request. Depois, selecione a branch readme que queremos mesclar com a base (main). Escreva uma explicação detalhando as mudanças e clique no botão para abrir o pull request.
Pull request da branch readme para a main
O mantenedor do repositório vai comparar suas mudanças e mesclá-las quando passarem por todos os testes. No nosso caso, você é o mantenedor, então clique em merge para integrar as mudanças à branch principal.
Merge do pull request no GitHub
Parabéns! Criamos o pull request e fizemos o merge com a branch principal. Você pode ver as mudanças na branch main aqui.
Se quiser ver todas as mudanças no seu repositório, digite `git log` e ele mostrará o histórico do projeto. Registrar mudanças em projetos de ciência de dados é importante, e o Git ajuda a rastrear tudo, inclusive grandes datasets.
Histórico de logs do Git
Considerações finais
Práticas de GitOps são fundamentais no desenvolvimento de aplicações de dados. Tornaram-se uma habilidade essencial para todos os tipos de vagas em TI, e até pesquisadores acadêmicos as utilizam para compartilhar código experimental com um público mais amplo. Já o GitHub tem um papel enorme na promoção de projetos open source ao oferecer um ecossistema de desenvolvimento gratuito para todos.
Neste tutorial, aprendemos sobre Git e GitHub e por que eles são importantes para projetos de ciência de dados. Você também viu comandos básicos do Git e teve uma experiência prática de como versionar mudanças em dados, modelos e código. Se quiser se aprofundar em Git, faça o curso Introduction to Git na DataCamp. Você também pode conhecer a importância da certificação GitHub Foundations e como ela pode impulsionar sua carreira.