<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Amanda</title>
    <description>The latest articles on DEV Community by Amanda (@amandashichinoe).</description>
    <link>https://dev.to/amandashichinoe</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1178212%2F312b02c0-13ea-47fc-909f-c45e047b8e49.jpeg</url>
      <title>DEV Community: Amanda</title>
      <link>https://dev.to/amandashichinoe</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/amandashichinoe"/>
    <language>en</language>
    <item>
      <title>Explorando o Universo da Inteligência Artificial Generativa</title>
      <dc:creator>Amanda</dc:creator>
      <pubDate>Wed, 10 Jan 2024 09:17:20 +0000</pubDate>
      <link>https://dev.to/amandashichinoe/explorando-o-universo-da-inteligencia-artificial-generativa-3h42</link>
      <guid>https://dev.to/amandashichinoe/explorando-o-universo-da-inteligencia-artificial-generativa-3h42</guid>
      <description>&lt;p&gt;Você já se perguntou como a Inteligência Artificial (IA) pode não apenas processar informações, mas também criar conteúdo novo e original? Bem-vindo ao fascinante mundo da GenAI, onde a geração de texto, imagem, áudio e dados sintéticos se torna possível.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que é GenAI?
&lt;/h2&gt;

&lt;p&gt;GenAI ou IA Generativa, é um subconjunto do universo da Inteligência Artificial. Diferentemente das abordagens convencionais, a GenAI não se limita a processar dados existentes, e é capaz de produzir uma ampla variedade de conteúdos, tornando-se uma verdadeira fonte de inovação.&lt;/p&gt;

&lt;p&gt;Ela opera como um subconjunto específico de Deep Learning (ou Aprendizado Profundo), o que significa que ela pode não apenas compreender e reproduzir padrões, mas também criar novas instâncias de dados.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que é Deep Learning?
&lt;/h2&gt;

&lt;p&gt;Deep Learning, ou Aprendizado Profundo, é uma abordagem avançada de Inteligência Artificial baseada em redes neurais artificiais. Ao contrário de métodos tradicionais de machine learning, o Deep Learning permite que modelos aprendam automaticamente a representação dos dados através de múltiplas camadas. Essa capacidade de extrair características complexas torna o Deep Learning extremamente eficaz em tarefas como reconhecimento de padrões e geração de conteúdo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deep Learning: Discriminativo vs Generativo
&lt;/h2&gt;

&lt;p&gt;O Deep Learning abrange diversas arquiteturas e paradigmas de Inteligência Artificial, dentre eles os modelos discriminativos e generativos. Os modelos discriminativos, são treinados para realizar tarefas específicas e, muitas vezes, são utilizados para predizer rótulos para novos pontos de dados. Eles aprendem a distinguir entre diferentes categorias e fornecem resultados precisos para problemas de classificação.&lt;/p&gt;

&lt;p&gt;Por outro lado, ao invés de apenas classificar os dados existentes, os modelos generativos têm a capacidade de gerar novas instâncias de dados. Eles operam com base em uma distribuição de probabilidade aprendida dos dados já existentes, permitindo a criação de conteúdo completamente original.&lt;/p&gt;

&lt;h2&gt;
  
  
  O Futuro da GenAI
&lt;/h2&gt;

&lt;p&gt;À medida que a IA Generativa continua a evoluir, podemos esperar grandes avanços em diversas áreas, desde criação de conteúdo a até solução de problemas complexos. Sua capacidade de gerar novas perspectivas e criar algo inédito, promete moldar de maneira determinante o futuro da inteligência artificial.&lt;/p&gt;

&lt;p&gt;Você já percebeu o impacto da GenAI em sua vida? Como ela tem influenciado sua experiência digital ou profissional? Compartilhe suas impressões! 🌐✨ #GenAI #ImpactoDaIA #DeepLearning #Inovacao&lt;/p&gt;

</description>
      <category>deeplearning</category>
      <category>ai</category>
      <category>generativeai</category>
    </item>
    <item>
      <title>Introdução ao Git e Github — Parte III</title>
      <dc:creator>Amanda</dc:creator>
      <pubDate>Wed, 06 Dec 2023 10:07:38 +0000</pubDate>
      <link>https://dev.to/amandashichinoe/introducao-ao-git-e-github-parte-iii-4oci</link>
      <guid>https://dev.to/amandashichinoe/introducao-ao-git-e-github-parte-iii-4oci</guid>
      <description>&lt;p&gt;Chegou a hora de começar a trabalhar com branches. Em um time que está desenvolvendo um produto, seja um software ou um modelo de machine learning, é importante trabalhar com branches ao invés de realizar as alterações no branch principal.&lt;/p&gt;

&lt;p&gt;Neste tutorial, vamos clonar um repositório remoto, realizar alterações utilizando um branch novo, subir as alterações no repositório remoto e criar um pull request para solicitar que as alterações sejam incorporadas ao branch principal.&lt;/p&gt;

&lt;p&gt;Mas antes de colocar a mão na massa, vamos entender três conceitos abordados aqui: branches, pull requests e merge.&lt;/p&gt;

&lt;h2&gt;
  
  
  Branches (ramos)
&lt;/h2&gt;

&lt;p&gt;Um branch é uma cópia isolada do código de um projeto, que permite que você trabalhe em novas funcionalidades, correções de bugs ou outras alterações sem afetar diretamente o código principal (branch master ou main). Utilizar branches é muito útil quando várias pessoas estão trabalhando no mesmo projeto simutaneamente, pois cada membro da equipe pode ter o seu próprio branch para realizar as suas alterações e ao final ele pode ser mesclado de volta ao branch principal. Conforme explicado no &lt;a href="https://dev.to/amandashichinoe/introducao-ao-git-e-github-parte-i-37nh"&gt;primeiro post&lt;/a&gt; desta série, em um projeto pode existir ainda o branch “dev”,que é derivado do branch “main”, e é usado como o branch principal de desenvolvimento, mas isso varia de acordo com o time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pull Request (solicitação de pull/merge)
&lt;/h2&gt;

&lt;p&gt;Um pull request (também chamado de merge request em algumas plataformas), é uma solicitação feita ao final do desenvolvimento para que o seu branch possa ser incorporado de volta ao branch principal. É uma prática comum eleger reviwers (revisores) ao criar o pull request. Os reviewers são pessoas que vão revisar o seu código, podendo adicionar comentários e solicitar alterações, antes de aprovar o pull request.&lt;/p&gt;

&lt;h2&gt;
  
  
  Merge (mesclagem)
&lt;/h2&gt;

&lt;p&gt;Quando um pull request é aprovado, a mesclagem (merge) ocorre, combinando as alterações de um ramo (branch) em outro. Às vezes podem ocorrer conflitos ao realizar essa operação (o famoso conflito de merge), quando as mesmas partes de um arquivos foram modificadas em paralelo em ambos os branches. Por isso, é importante revisar o código antes de aprovar uma solicitação de pull (pull request), e ter muito cuidado ao realizar uma mesclagem de forma manual.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mão na massa
&lt;/h2&gt;

&lt;p&gt;Hora de colocar a mão na massa, lembrando que este é um tutorial básico para que você tenha um contato com a utilização de branches.&lt;/p&gt;

&lt;p&gt;1º passo: Abra o Git Bash em um repositório que foi clonado na sua máquina. De preferência um repositório seu, apenas para fins didáticos. Você pode utilizar o repositório criado no primeiro artigo desta série, o importante é que ele já esteja ligado ao GitHub.&lt;br&gt;
2º passo: A partir do seu repositório local utilize o comando “git branch” para verificar em qual branch você está. Neste exemplo, estou no branch main:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git branch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hoRIFCUo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9vtn7d3pn495jhagwy4i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hoRIFCUo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9vtn7d3pn495jhagwy4i.png" alt="Image description" width="786" height="51"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3º passo: Faça o checkout para um novo branch usando o comando “git checkout -b ”. O parâmetro -b indica que quero criar esse branch caso ele não exista.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git checkout -b dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EyanCxDB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nrj0kkemdnz9sxt3q75e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EyanCxDB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nrj0kkemdnz9sxt3q75e.png" alt="Image description" width="786" height="47"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4º passo: Execute novamente o comando “git branch” para validar em qual branch você está. Note que aparece um “*” antes do branch atual:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Vnt5o0g2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vyhczu4ksohttq21uq0y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Vnt5o0g2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vyhczu4ksohttq21uq0y.png" alt="Image description" width="786" height="55"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5º passo: Faça as modificações necessárias no projeto. Neste exemplo vou criar um novo arquivo “meuarquivo.txt” e escrever no arquivo a frase “Olá, mundo!”:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kz3Cyqi2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cqs2mthy5lh6rtao14zr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kz3Cyqi2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cqs2mthy5lh6rtao14zr.png" alt="Image description" width="786" height="34"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;6º passo: Após realizar as alterações desejadas, execute o comando “git status” para verificar o que foi alterado.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Q0wVp7qS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rxvn5vmwo73v20i7ys35.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Q0wVp7qS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rxvn5vmwo73v20i7ys35.png" alt="Image description" width="786" height="129"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;7º passo: Adicione os arquivos modificados desejados à área de stage:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git add . # para adicionar todas as modificações
git add &amp;lt;nome-arquivo&amp;gt; # para adicionar somente as modificações realizadas em um arquivo específico
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;8º passo: Você pode verificar novamente o que foi enviado à área de stage:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RrlSEW9E--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/umvr7uerjfw1b3hx56ev.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RrlSEW9E--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/umvr7uerjfw1b3hx56ev.png" alt="Image description" width="786" height="113"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;9º passo: Crie o commit e adicione uma mensagem para identificar o commit:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4wxrkXaG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4iguxepg7o5xsubryxl4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4wxrkXaG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4iguxepg7o5xsubryxl4.png" alt="Image description" width="628" height="113"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;10º passo: Envie as alterações ao repositório remoto utilizando “git push origin ”:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git push origin dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dO3YGkQw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6oep7jik8ir84gbv0yae.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dO3YGkQw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6oep7jik8ir84gbv0yae.png" alt="Image description" width="786" height="231"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ao acessar o repositório pelo navegador, é possível ver uma mensagem dizendo que o branch dev enviou alterações, e a opção para comparar as modificações e criar o pull request.&lt;/p&gt;

&lt;p&gt;Os passos a seguir variam bastante, de acordo com as configurações do repositório no próprio GitHub ou da ferramenta utilizada para hospedar o código remotamente, mas os conceitos básicos por trás são os mesmos.&lt;/p&gt;

&lt;p&gt;O repositório deste tutorial é um repositório meu, da minha conta pessoal do GitHub. Em uma empresa, normalmente você precisa adicionar os reviwers ao fazer o pull request, que são pessoas que vão revisar o seu código e aprovar o merge ao branch principal de desenvolvimento.&lt;/p&gt;

&lt;h2&gt;
  
  
  Criando um Pull Request
&lt;/h2&gt;

&lt;p&gt;Clique em “Compare &amp;amp; pull request”:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aRlYjeub--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2obyftin007pbswghzwg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aRlYjeub--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2obyftin007pbswghzwg.png" alt="Image description" width="786" height="401"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;É possível adicionar comentários sobre o commit e alterar o nome do pull request. Para criar o pull request clique em “Create pull request”.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Zr8vWNJM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0l49r4226jdvkc278855.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Zr8vWNJM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0l49r4226jdvkc278855.png" alt="Image description" width="786" height="486"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Aprovando o Pull Request
&lt;/h2&gt;

&lt;p&gt;Caso você tenha permissões para aprovar o pull request e fazer o merge, irá aparecer uma nova tela com as informações do pull request.&lt;/p&gt;

&lt;p&gt;Para verificar o que foi alterado, você pode clicar na aba “Files changed”. Nessa aba irá aparecer a comparação do código que você tinha antes, com o código atual para que você e quem vai revisar o código para aprovar o pull request possam visualizar o impacto das alterações no projeto. Se houverem conflitos, eles também irão aparecer. Nesse caso você precisará resolvê-los localmente e atualizar o código do seu branch novamente (mas isso é assunto para outra publicação).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wSO-jig_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k3uy1sw594p4kt09n46s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wSO-jig_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k3uy1sw594p4kt09n46s.png" alt="Image description" width="786" height="507"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para aprovar o pull request, na aba “Conversation” clique na opção “Merge pull request”:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zSWwNoKo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dqc6g4jf8ldxuogd07ct.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zSWwNoKo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dqc6g4jf8ldxuogd07ct.png" alt="Image description" width="786" height="514"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;E clique em “Confirm merge”&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DkdHfhYX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zb7nmx15abh9ao00x4hd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DkdHfhYX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zb7nmx15abh9ao00x4hd.png" alt="Image description" width="786" height="488"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Após a confirmação, você pode apagar o branch que realizou o pull request.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5MmMI3Wq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/svmziridhat98bmve1dh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5MmMI3Wq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/svmziridhat98bmve1dh.png" alt="Image description" width="786" height="428"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ao atualizar a página do repositório, você verá que as mudanças serão aplicadas.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HIOzF8N1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0ushek1sf6zjzm3odmwy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HIOzF8N1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0ushek1sf6zjzm3odmwy.png" alt="Image description" width="786" height="370"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Espero que este tutorial tenha te ajudado!&lt;/p&gt;

&lt;p&gt;Se ficou alguma dúvida, sinta-se à vontade para me contatar.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Introdução ao Git e GitHub — Parte II</title>
      <dc:creator>Amanda</dc:creator>
      <pubDate>Wed, 06 Dec 2023 09:54:05 +0000</pubDate>
      <link>https://dev.to/amandashichinoe/introducao-ao-git-e-github-parte-ii-lk7</link>
      <guid>https://dev.to/amandashichinoe/introducao-ao-git-e-github-parte-ii-lk7</guid>
      <description>&lt;p&gt;No &lt;a href="https://dev.to/amandashichinoe/introducao-ao-git-e-github-parte-i-37nh"&gt;primeiro post&lt;/a&gt; desta série, você aprendeu a enviar os arquivos do seu repositório local para um repositório remoto. Mas e se você quiser modificar um arquivo que está em um repositório remoto que você ainda não possui em sua máquina?&lt;/p&gt;

&lt;h2&gt;
  
  
  Git Clone
&lt;/h2&gt;

&lt;p&gt;O git permite que façamos um clone de um repositório remoto. Ao fazer um clone, estamos criando uma cópia local que nos permite trabalhar no código sem afetar diretamente o repositório original, até que as alterações sejam enviadas ao repositório por meio do comando git push.&lt;/p&gt;

&lt;p&gt;Quando queremos criar uma cópia local de um repositório que é nosso, podemos utilizar simplesmente o comando git clone . Mas às vezes queremos utilizar um repositório disponibilizado publicamente no GitHub, e não podemos deixar que as nossas alterações afetem o código original. Nesse caso, podemos também fazer um “fork”.&lt;/p&gt;

&lt;h2&gt;
  
  
  Usando Fork
&lt;/h2&gt;

&lt;p&gt;Um “fork” é uma cópia independente de um repositório remoto. Quando você faz um fork de um repositório, você está criando uma cópia separada desse repositório em sua própria conta no GitHub.&lt;/p&gt;

&lt;p&gt;Ele é muito utilizado quando queremos experimentar modificações sem interferir diretamente no repositório original.&lt;/p&gt;

&lt;p&gt;Acesse a página do Github onde está o repositório que você deseja clonar e clique em “Fork”. Neste exemplo, estamos utilizando este repositório da &lt;a href="https://github.com/alura-cursos/introducao-a-data-science"&gt;Alura&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PnYunxbf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u5pxt7981ttul7vcfi7b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PnYunxbf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u5pxt7981ttul7vcfi7b.png" alt="Image description" width="786" height="371"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Irá aparecer uma página onde você tem a opção de personalizar o seu fork, alterando o título e descrição, assim como a opção de clonar apenas a branch master ou as outras branches do projeto também. Clique em “Create fork” para confirmar a criação do fork:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EdIL-DI0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a7uu0as99wcous9x9s69.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EdIL-DI0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a7uu0as99wcous9x9s69.png" alt="Image description" width="786" height="482"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Observe que abaixo do nome do repositório aparece a mensagem “forked from …” . A partir de agora é como se o repositório fosse seu. Todas as alterações que você fizer serão refletidas somente no seu fork.&lt;/p&gt;

&lt;h2&gt;
  
  
  Clonando o repositório remoto
&lt;/h2&gt;

&lt;p&gt;Para clonar o repositório em sua máquina local e poder alterar o projeto, você precisa do link para o repositório. Para isso, na página do seu repositório remoto, clique em “Code” e copie a url:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wYwRGOa4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kl5dm61x2o3nu8rl7vs9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wYwRGOa4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kl5dm61x2o3nu8rl7vs9.png" alt="Image description" width="786" height="393"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Na sua máquina, vá até o local onde você deseja que o repositório seja salvo, e abra o Git Bash:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vy8m4mnz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/agx0j7wjsk3pkz0fo5h8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vy8m4mnz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/agx0j7wjsk3pkz0fo5h8.png" alt="Image description" width="677" height="523"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Você também pode abrir o Git Bash e navegar até o diretório desejado usando o comando cd  .&lt;/p&gt;

&lt;p&gt;Insira o comando a seguir utilizando a url que você copiou:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# git clone &amp;lt;url do repositorio&amp;gt;
git clone https://github.com/&amp;lt;seu-usuario-github&amp;gt;/introducao-a-data-science.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SiUzAP8n--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mjsmmdpsjevhg0hn4zeb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SiUzAP8n--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mjsmmdpsjevhg0hn4zeb.png" alt="Image description" width="724" height="122"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ainda usando o Git Bash, acesse o repositório clonado.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd introducao-a-data-science/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Observe que existe uma pasta “.git”.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JSkyHJmj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y1q9bomyog4iyhmo1zn9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JSkyHJmj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y1q9bomyog4iyhmo1zn9.png" alt="Image description" width="326" height="53"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A pasta .git é uma pasta oculta que fica no diretório raiz de um repositório Git, contém todo o controle de versão para aquele repositório e armazena as informações sobre o histórico de commits, branches, tags e outras configurações relacionadas ao repositório.&lt;/p&gt;

&lt;p&gt;Ela possui em seu conteúdo:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;objects:&lt;/strong&gt; Esta pasta armazena os objetos do Git compactados, que representam as versões dos arquivos e diretórios ao longo do tempo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;refs:&lt;/strong&gt; Aqui estão as referências para commits, branches, tags e outras entidades. As branches e tags são mantidas aqui como ponteiros para commits específicos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;logs:&lt;/strong&gt; Essa pasta contém logs de referências, mantendo um registro de quando as referências (como branches) foram atualizadas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;HEAD:&lt;/strong&gt; Este é um arquivo que aponta para o commit atual em que você está trabalhando. Geralmente, ele aponta para a branch que está ativa.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;config:&lt;/strong&gt; Este arquivo armazena as configurações específicas do repositório, como informações de usuário e opções de formatação.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;index:&lt;/strong&gt; Este arquivo é conhecido como “index” ou “staging area”. Ele contém informações sobre as mudanças que estão prontas para serem commitadas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;hooks:&lt;/strong&gt; Nesta pasta, você pode adicionar scripts personalizados que serão executados automaticamente em certos eventos do Git, como antes de um commit ou após um merge.&lt;/p&gt;

&lt;p&gt;É importante não mexer manualmente nos arquivos dentro desta pasta, a menos que você tenha um conhecimento profundo do funcionamento interno do Git.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enviando as alterações para o repositório remoto
&lt;/h2&gt;

&lt;p&gt;Após realizar as alterações desejadas, você pode atualizar o seu repositório. Por ainda se tratar de um tutorial básico, e o repositório ser apenas para fins didáticos e sem impacto no repositório original, ainda vamos fazer as alterações diretamente na branch master.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git status # verifique os arquivos que foram alterados
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MgmokMIW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hbtqathimganpqfz7nbk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MgmokMIW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hbtqathimganpqfz7nbk.png" alt="Image description" width="786" height="198"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git add readme.md # adiciona ao commit apenas as alterações feitas no arquivo readme.md
# você pode adicionar ao commit todas as alterações usando git add .

git commit -m "add readme" # adiciona a mensagem de commit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KzLyoRZf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tlli6dh8gjp88d2r169z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KzLyoRZf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tlli6dh8gjp88d2r169z.png" alt="Image description" width="408" height="93"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git push origin master # envia o commit com as alterações para a branch master
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lIa0vDBJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uoasfxznp9kyyupy4m8q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lIa0vDBJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uoasfxznp9kyyupy4m8q.png" alt="Image description" width="786" height="195"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Acesse/Atualize a página com o repositório remoto e observe que o arquivo adicionado já aparece, bem como a mensagem do último commit.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MCs50N5P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xfgbr25751gsehk5n73w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MCs50N5P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xfgbr25751gsehk5n73w.png" alt="Image description" width="786" height="551"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Espero que este tutorial tenha te ajudado!&lt;/p&gt;

&lt;p&gt;Se ficou alguma dúvida, sinta-se à vontade para me contatar.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Introdução ao Git e Github — Parte I</title>
      <dc:creator>Amanda</dc:creator>
      <pubDate>Wed, 06 Dec 2023 09:42:58 +0000</pubDate>
      <link>https://dev.to/amandashichinoe/introducao-ao-git-e-github-parte-i-37nh</link>
      <guid>https://dev.to/amandashichinoe/introducao-ao-git-e-github-parte-i-37nh</guid>
      <description>&lt;p&gt;Seja no desenvolvimento de software ou no mundo dos dados, a colaboração entre os integrantes do time está sempre presente, sendo assim, o controle eficiente das alterações de código é essencial.&lt;/p&gt;

&lt;p&gt;Neste post vamos explorar o que é o Git e o GitHub, configuração e principais comandos. Este é um tutorial introdutório para que você se familiarize com a ferramenta.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que é Git e GitHub?
&lt;/h2&gt;

&lt;p&gt;O Git é um sistema de controle de versão distribuído, projetado para rastrear as alterações realizadas em arquivos ao longo do tempo, permitindo controlar as alterações realizadas em scripts, conjuntos de dados e qualquer outro tipo de arquivo. Ele mantém um histórico completo de todas as modificações, o que ajuda a evitar conflitos e facilita a colaboração entre diferentes pessoas.&lt;/p&gt;

&lt;p&gt;O GitHub, por sua vez é uma plataforma baseada na web que hospeda um repositório Git, também oferecendo diversos outros recursos adicionais, e se tornou uma das principais comunidades de desenvolvimento open source.&lt;/p&gt;

&lt;p&gt;Ao utilizar o Git você pode se deparar com vários termos, como commit, stage e branches.&lt;/p&gt;

&lt;p&gt;Um commit é como se fosse uma foto instatânea das mudanças feitas nos arquivos de um repositório. Cada commit tem uma descrição que ajuda a entender o que foi alterado e é utilizado para rastrear as alterações realizadas no projeto.&lt;/p&gt;

&lt;p&gt;O stage é um espaço intermediário entre os arquivos modificados em seu repositório local e o repositório remoto. Quando você faz alterações em seus arquivos, precisa selecionar quais alterações deseja incluir em um commit, é como dizer ao Git quais mudanças você deseja incluir na próxima “foto”. A ação de selecionar essas alterações e prepará-las para adicionar ao commit é chamada de “staging”.&lt;/p&gt;

&lt;p&gt;Branches(ou ramos) são cópias separadas do projeto e permitem que você trabalhe em diferentes partes do projeto sem afetar o código principal. É como uma linha de desenvolvimento independente. O ramo principal do projeto, normalmente chamado de “master” ou “main”, contém a versão estável e funcional do seu projeto, que seria a versão de “produção”. Você pode criar novos ramos para trabalhar em novos recursos (features) ou correções de bugs específicos, isolando as mudanças até que estejam prontas para serem incorporadas ao ramo principal, o que facilita o trabalho em equipe e a organização das alterações.&lt;/p&gt;

&lt;p&gt;A forma como as branches são criadas varia de equipe a equipe. Uma prática muito comum é que a branch principal (master/main) contenha a versão de produção mais recente e por isso seja intocável até o lançamento da próxima versão. Então a partir da branch main, cria-se uma branch “dev”, que se torna a branch principal de desenvolvimento. Sendo assim, cada membro responsável por uma correção de bug ou adição de uma nova feature deve criar a sua branch individual a partir da branch “dev” e realizar as suas alterações no código apenas dentro de sua branch. Quando a alteração da branch individual é finalizada, é criado um pull request, que é a solicitação de que o código da sua branch individual seja incorporado(mergeado) à branch “dev”. Ao final do ciclo de desenvolvimento, a branch “dev” é incorporada à branch “main” para que seja disponibilizada a nova versão do produto.&lt;/p&gt;

&lt;p&gt;Não se preocupe se você não conseguir entender todos esses conceitos em um primeiro momento, isso é algo que normalmente absorvemos com a prática. No tutorial desta publicação não vamos trabalhar com várias branches, porque o objetivo aqui é que você tenha um primeiro contato e se familiarize com a ferramenta. Branches e outros conceitos serão aplicados com maior profundidade em publicações futuras.&lt;/p&gt;

&lt;h2&gt;
  
  
  Configuração
&lt;/h2&gt;

&lt;p&gt;Primeiramente, crie uma conta no GitHub, caso ainda não tenha.&lt;/p&gt;

&lt;p&gt;O próximo passo é configurar o &lt;a href="https://git-scm.com/"&gt;Git&lt;/a&gt;, para isso, é necessário fazer o &lt;a href="https://git-scm.com/downloads"&gt;download&lt;/a&gt; e instalação em sua máquina, acessando o site oficial do Git e seguindo as instruções específicas para o seu sistema operacional.&lt;/p&gt;

&lt;p&gt;Após a instalação, é necessário realizar uma configuração inicial, definindo o nome de usuário e endereço de e-mail. Crie uma nova pasta na sua máquina e adicione um arquivo de texto qualquer para enviar para o repositório do GitHub (você pode também utilizar uma pasta já criada com os códigos que deseja enviar para o GitHub ao invés de criar uma nova), abra o terminal a partir da nova pasta criada (ou o Git Bash se você utiliza o Windows). Um jeito fácil de fazer isso se você utiliza o Windows é clicar com o botão direito do mouse (clicar em “Mostrar mais opções”, se utilizar Windows 11) e selecionar a opção “Git Bash Here”.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LIkCJxAK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xxfyu2d9m3yz36nxdk4v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LIkCJxAK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xxfyu2d9m3yz36nxdk4v.png" alt="Image description" width="525" height="395"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Execute os comandos a seguir substituindo o conteúdo dentro das aspas pelas suas informações utilizadas para criar a conta no GitHub:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git config --global user.name "Seu username"
git config --global user.email "seu-email@example.com"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Enviando o conteúdo local para o repositório remoto do GitHub
&lt;/h2&gt;

&lt;p&gt;Crie um novo repositório no GitHub e copie a url do repositório:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nVS5kkns--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/055rrpf58r8gqcotc6mr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nVS5kkns--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/055rrpf58r8gqcotc6mr.png" alt="Image description" width="371" height="226"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BZtefwdv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tsv5dxt3h51htkjv0rqd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BZtefwdv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tsv5dxt3h51htkjv0rqd.png" alt="Image description" width="800" height="401"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9ENr20OM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b9d2onhkb5yjvnc1l671.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9ENr20OM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b9d2onhkb5yjvnc1l671.png" alt="Image description" width="800" height="337"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para conectar o repositório local (a pasta na sua máquina) com o repositório remoto (criado no GitHub) utilize os comandos a seguir:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git init # inicializa o repositório
# criando uma ligação entre o repositório local e repositório remoto
git remote add origin "a url que você copiou ao criar o repositório"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agora que já foi criada essa conexão, você já pode enviar o conteúdo do seu repositório local (da pasta no seu computador) para o repositório remoto.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git status # compara os arquivos do repositorio local com o repositorio remoto
# observe que aparecem todos os arquivos/pastas que existem no repositório local
# porque eles ainda não estão disponiveis no GitHub
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QmgMfd4X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9g3zm1u5ykjnl1nol39p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QmgMfd4X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9g3zm1u5ykjnl1nol39p.png" alt="Image description" width="721" height="185"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para adicionar todos os arquivos ao commit utilize o comando a seguir:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git add .
# se você quiser enviar apenas um arquivo específico,
# especifique o nome do arquivo. Por exemplo:
# git add teste.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Você pode verificar o que foi enviado para o stage. Os arquivos presentes no stage aparecem após Changes to be commited: (use “git rm — cached …” to unstage) .&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kY5oxbKg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cep51tyvnbbxwhstt7pl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kY5oxbKg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cep51tyvnbbxwhstt7pl.png" alt="Image description" width="732" height="159"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para criar o commit e adicionar uma mensagem para identificá-lo, utilize o comando a seguir:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git commit -m "mensagem descritiva"
# exemplo:
# git commit -m "first-commit"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para simplificar, e como esse repositório não é utilizado por outra pessoa, vamos enviar as alterações para a branch master, que é a branch principal. Em projetos reais não devemos enviar diretamente à branch master.&lt;/p&gt;

&lt;p&gt;Para enviar as alterações utilize o comando a seguir:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git push origin master
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gtiW3pWY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c9guehm3ocfpftk3mkh7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gtiW3pWY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c9guehm3ocfpftk3mkh7.png" alt="Image description" width="581" height="133"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Após enviar os arquivos, você pode usar o comando “git status” para verificar se ainda há arquivos no repositório local que podem ser enviados ao repositório remoto. Nesse caso não há, pois aparece a mensagem “nothing to commit, working tree clean”.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--K49CfQNI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/txdwxjp1ns7yxymvuaxg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--K49CfQNI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/txdwxjp1ns7yxymvuaxg.png" alt="Image description" width="727" height="64"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Atualize a página no seu repositório e você poderá ver que o conteúdo foi enviado com sucesso para o repositório remoto.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SBBzne6I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1iqkxujwpx7rzdo2vesf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SBBzne6I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1iqkxujwpx7rzdo2vesf.png" alt="Image description" width="786" height="237"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Calculando o tempo de Execução de códigos em Python</title>
      <dc:creator>Amanda</dc:creator>
      <pubDate>Wed, 08 Nov 2023 23:21:03 +0000</pubDate>
      <link>https://dev.to/amandashichinoe/calculando-o-tempo-de-execucao-de-codigos-em-python-1l7m</link>
      <guid>https://dev.to/amandashichinoe/calculando-o-tempo-de-execucao-de-codigos-em-python-1l7m</guid>
      <description>&lt;p&gt;Você já teve curiosidade em saber o tempo de execução do seu código ou comparar qual método utilizado é mais rápido?&lt;/p&gt;

&lt;p&gt;O objetivo deste post é compartilhar algumas formas de fazer isso usando Python.&lt;/p&gt;

&lt;h3&gt;
  
  
  Biblioteca time
&lt;/h3&gt;

&lt;p&gt;Utilizando a biblioteca time, você pode capturar o início e o fim da execução de um trecho de código para saber o tempo que ela levou.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import time

tempo_inicio = time.time()

for i in range(3):
    print(i)

tempo_fim = time.time()

print(f('Tempo de execução do trecho de código {str(tempo_fim - tempo_inicio)}s')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SJJvw5hN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tw20d0e2x0pwlyaup4zl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SJJvw5hN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tw20d0e2x0pwlyaup4zl.png" alt="Imagem exibindo a saída do trecho de código acima" width="608" height="90"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Funções Mágicas do iPython
&lt;/h3&gt;

&lt;p&gt;No iPython você pode usar %%timeit no início da célula para capturar o tempo de execução de toda a célula ou o %timeit para apenas uma única linha:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;%timeit sum(range(5000))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NS7n5ywC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0v9occc1s5v21xo25j38.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NS7n5ywC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0v9occc1s5v21xo25j38.png" alt="Imagem exibindo a saída do trecho de código acima" width="777" height="47"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O que essa função faz é automaticamente utilizar múltiplas execuções do código e retornar o tempo médio de execução.&lt;/p&gt;

&lt;p&gt;Essa função também aceita alguns argumentos, como por exemplo -n que define o número de vezes que o código deve ser executado, e -r que define o número de repetições com a quantidade de loops passada no argumento “-n”.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;%%timeit -r2 -n2
for i in range(3):
  print(i)`
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bAlM8mPx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2bh34911sz3tl5vg5ety.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bAlM8mPx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2bh34911sz3tl5vg5ety.png" alt="Imagem exibindo a saída do trecho de código acima" width="786" height="207"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Também é possível armazenar o resultado em uma variável (utilizando o argumento -o) para visualizar melhor os resultados:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;tempo_exec = %timeit -o -r2 -n2 my_list = [i for i in range(3)]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Como por exemplo, ver todos os tempos de execução:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;tempo_exec.timings
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tkHz_cpp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/talnpjdqjpj42yk637tr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tkHz_cpp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/talnpjdqjpj42yk637tr.png" alt="Imagem exibindo a saída do trecho de código acima" width="786" height="27"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Outra opção é a função mágica %time, que verifica o tempo de execução uma única vez. Ela é preferível em alguns casos, como quando se quer descobrir o tempo de execução para uma função de ordenação. Nesse caso, como uma lista já ordenada demora um tempo menor do que uma lista não ordenada, usar %timeit pode distorcer os resultados.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import random
random_list = [random.random() for i in range(100000)]
%time random_list.sort()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Por outro lado, %timeit além de executar o cálculo várias vezes retornando a média para tentar contornar a influência de outras tarefas do sistema durante a execução, também realiza outras operações por baixo dos panos, como desabilitar o garbage collector (responsável pela limpeza de objetos não utilizados), retornando um tempo de execução menor e mais acurado.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--q59N44s6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/59fc9unbjhwtn18nw1o1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--q59N44s6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/59fc9unbjhwtn18nw1o1.png" alt="Imagem exibindo a saída do trecho de código acima" width="733" height="604"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Para saber mais:
&lt;/h3&gt;

&lt;p&gt;Documentação iPython. Disponível em: &lt;a href="https://ipython.readthedocs.io/en/stable/interactive/magics.html#magic-time"&gt;https://ipython.readthedocs.io/en/stable/interactive/magics.html#magic-time&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Jake VanderPlas. Python Data Science Handbook. Disponível em: &lt;a href="https://jakevdp.github.io/PythonDataScienceHandbook/01.07-timing-and-profiling.html"&gt;https://jakevdp.github.io/PythonDataScienceHandbook/01.07-timing-and-profiling.html&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
