<?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>Forem: Jason Hornet</title>
    <description>The latest articles on Forem by Jason Hornet (@hornet_daemon).</description>
    <link>https://forem.com/hornet_daemon</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%2F916103%2F099b3c3c-b09b-4ab1-b4d5-4258de5340a0.png</url>
      <title>Forem: Jason Hornet</title>
      <link>https://forem.com/hornet_daemon</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/hornet_daemon"/>
    <language>en</language>
    <item>
      <title>What is GitHub?</title>
      <dc:creator>Jason Hornet</dc:creator>
      <pubDate>Fri, 17 Mar 2023 13:19:43 +0000</pubDate>
      <link>https://forem.com/hornet_daemon/what-is-github-62b</link>
      <guid>https://forem.com/hornet_daemon/what-is-github-62b</guid>
      <description>&lt;p&gt;GitHub is a cloud-based website and service that helps developers store and manage their code, as well as tracking and controlling changes to their code. To know exactly what GitHub is, you need to know two intertwined principles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Versioning&lt;/li&gt;
&lt;li&gt;Version control softwares&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both have been covered in past articles.&lt;/p&gt;




&lt;p&gt;GitHub is a company that provides a cloud-based Git repository hosting service. In short, it makes it much simpler for individuals and teams to use Git for version control and collaboration.&lt;/p&gt;

&lt;p&gt;GitHub is so easy to use that some people use GitHub to manage other types of projects – for example, &lt;a href="http://braythwayt.com/2015/01/29/how-i-write-books-with-github-and-leanpub.html" rel="noopener noreferrer"&gt;to write books&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Anyone can register and host a public code repository for free, which makes GitHub particularly useful for open-source projects.&lt;/p&gt;

&lt;p&gt;As a company, GitHub makes money by selling hosted private code repositories, as well as other enterprise plans that allow organizations to more easily manage team members and security.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to use GitHub?
&lt;/h3&gt;

&lt;p&gt;To use GitHub &lt;strong&gt;it is necessary to create a personal account or a team account&lt;/strong&gt;. There are those that are free, for individual users, and those that are intended for teams that use open source. If you want some perks, like having private repositories, you can purchase one of the paid options.&lt;/p&gt;

&lt;p&gt;To create your account, &lt;a href="https://github.com/" rel="noopener noreferrer"&gt;log into GitHub&lt;/a&gt; and fill in the requested data — name, email and password. In a few minutes, you will receive a confirmation email to start using the platform.&lt;/p&gt;

&lt;p&gt;The first step, after confirming your e-mail, is to get to know the new environment. For that you can use the &lt;em&gt;Hello World Guide&lt;/em&gt; that will guide you on how to create your first repository, make a branch or open a pull request.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is a Issues?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Issues&lt;/strong&gt; on GitHub are a way to track problems, improvements, and bugs for your projects. They are similar to an email, except they can be shared and discussed with the rest of your team.&lt;/p&gt;

&lt;p&gt;You can report bugs, typos and even a possible solution to a problem faced by a certain library.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is a Pull Request?
&lt;/h3&gt;

&lt;p&gt;To propose the changes you've just made to other developers working on the same project, you must create a pull request. They are what make it so easy to work together on projects, as they are the main collaboration tool on GitHub.&lt;/p&gt;

&lt;h3&gt;
  
  
  Github Codespaces
&lt;/h3&gt;

&lt;p&gt;Another very interesting tool that few people know how to use is GitHub Codespaces.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Ok.. what is GitHub CodeSpaces?”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It is a cloud-based, instant development environment that uses a container to provide common languages and tools for development.&lt;/p&gt;

&lt;p&gt;It is configurable, allowing you to create a custom development environment for your project.&lt;/p&gt;

&lt;p&gt;To create your codespace you just need to click on the green button written &lt;strong&gt;“Code”&lt;/strong&gt; and then choose the option &lt;strong&gt;“create codespace on main”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbeawfypal2i7bcp9ll9f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbeawfypal2i7bcp9ll9f.png" alt="Image showing how to create a codespace"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To learn more about I recommend these two articles written by &lt;a href="https://twitter.com/pachicodes" rel="noopener noreferrer"&gt;Pachi&lt;/a&gt;: &lt;/p&gt;

&lt;p&gt;&lt;del&gt;It’s in brazilian protuguese, sorry&lt;/del&gt;&lt;/p&gt;

&lt;p&gt;1 - &lt;strong&gt;&lt;a href="https://dev.to/github/porque-github-codespaces-e-a-melhor-ferramenta-para-seu-workshop-de-programacao-607"&gt;Porque GitHub Codespaces é a melhor ferramenta para seu Workshop de programação&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;Why GitHub Codespaces is the Best Tool for Your Coding Workshop&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;2 - &lt;strong&gt;&lt;a href="https://dev.to/github/o-que-e-github-codespaces-e-como-usar-337f"&gt;O que é GitHub Codespaces e como usar&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;What is GitHub Codespaces and how to use it&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Github no WordPress
&lt;/h3&gt;

&lt;p&gt;If you already use WordPress, you should know how good it is to have the platform's plugins.&lt;/p&gt;

&lt;p&gt;However, outside of WordPress, there are also a lot of plugins that can be used on the platform. One of these is GitHub.&lt;/p&gt;

&lt;p&gt;To access them, there are two ways: installing a plugin from the GitHub platform or using a WordPress plugin to make the task easier.&lt;/p&gt;

&lt;h4&gt;
  
  
  Installing a plugin from GitHub
&lt;/h4&gt;

&lt;p&gt;To install a plugin from GitHub, you must first download it. Start typing the name of the plugin you need.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx0f8bwt81r6fs3yh2f60.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx0f8bwt81r6fs3yh2f60.png" alt="wordpress plugin repository search on github"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After finding it, the image that will appear will be this one, with the repository folders. To download it, just click on the green &lt;strong&gt;“Code”&lt;/strong&gt; button and then select &lt;strong&gt;“Download”&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjragzn1makrso3r4e8mw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjragzn1makrso3r4e8mw.png" alt="Repository from choosen plugin"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you have the file, you will have to upload it to the &lt;strong&gt;&lt;u&gt;/wp-content/plugins&lt;/u&gt;&lt;/strong&gt; directory, either via FTP or cPanel.&lt;/p&gt;

&lt;h4&gt;
  
  
  Install a plugin in WordPress itself
&lt;/h4&gt;

&lt;p&gt;Before using GitHub on your WordPress platform, you must first install another plugin that allows you to embed the repositories directly in WP.&lt;/p&gt;

&lt;p&gt;A recommended plugin is &lt;a href="https://embed.ly/provider/github" rel="noopener noreferrer"&gt;Github Embed&lt;/a&gt;. With it, you will be able to embed directories from GitHub by copying the URL.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffa7oxp5c2nuvbyotp5c9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffa7oxp5c2nuvbyotp5c9.png" alt="Github Embed plugin introduction page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From here, just install the plugin following the WordPress instructions.&lt;/p&gt;

&lt;p&gt;The material found on GitHub is quite extensive. Although most directories are for codes and software, the ease of the platform has attracted many users.&lt;/p&gt;




&lt;p&gt;Github offers much more tools than the ones covered in this article, I just covered the basics for beginners to understand how the platform works.&lt;/p&gt;

&lt;p&gt;Some examples of more advanced features are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Actions&lt;/li&gt;
&lt;li&gt;Packages&lt;/li&gt;
&lt;li&gt;Security&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Maybe I'll address some of them in future articles, but for now we'll stop here...&lt;/p&gt;

</description>
      <category>github</category>
      <category>beginners</category>
      <category>tutorial</category>
      <category>productivity</category>
    </item>
    <item>
      <title>O Que é GitHub?</title>
      <dc:creator>Jason Hornet</dc:creator>
      <pubDate>Wed, 15 Mar 2023 16:00:00 +0000</pubDate>
      <link>https://forem.com/hornet_daemon/o-que-e-github-13pa</link>
      <guid>https://forem.com/hornet_daemon/o-que-e-github-13pa</guid>
      <description>&lt;p&gt;O GitHub é um site e serviço baseado em nuvem que ajuda os desenvolvedores a armazenar e gerenciar o seu código, rastreando e controlando também as alterações nos seus códigos. Para saber exatamente o que é o GitHub, você precisa conhecer dois princípios interligados: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Versionamento&lt;/li&gt;
&lt;li&gt;Softwares de controle de versão&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ambos já foram abordados em artigos passados.&lt;/p&gt;




&lt;p&gt;O GitHub é uma empresa que disponibiliza um serviço de hospedagem de repositório Git baseado em nuvem. De forma sucinta, faz com que pessoas singulares e equipes usem de forma muito mais simples o Git para o controle de versão e colaboração.&lt;/p&gt;

&lt;p&gt;O GitHub é tão fácil de usar que algumas pessoas utilizam o GitHub para gerenciar outros tipos de projetos – &lt;a href="http://braythwayt.com/2015/01/29/how-i-write-books-with-github-and-leanpub.html"&gt;por exemplo, para escreverem livros&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Além disso, qualquer pessoa pode se registrar e hospedar gratuitamente um repositório de código público, o que faz com que o GitHub seja particularmente utilizado em projetos open-source.&lt;/p&gt;

&lt;p&gt;Enquanto empresa, o GitHub ganha dinheiro com a venda de repositórios hospedados de código privado, além de outros planos empresariais, que permitem à organizações gerenciar mais facilmente os membros da equipe e a segurança.&lt;/p&gt;

&lt;h3&gt;
  
  
  Como utilizar o GitHub?
&lt;/h3&gt;

&lt;p&gt;Para utilizar o GitHub &lt;strong&gt;é necessário criar uma conta pessoal ou uma conta de equipe&lt;/strong&gt;. Existem aquelas gratuitas, para usuários individuais, e aquelas destinadas a equipes que utilizam código aberto. Se você quiser algumas vantagens, como ter repositórios privados, pode adquirir alguma das opções pagas.&lt;/p&gt;

&lt;p&gt;Para criar a sua conta, entre no &lt;a href="https://github.com/"&gt;GitHub&lt;/a&gt; e preencha os dados solicitados — nome, e-mail e senha. Em alguns minutos, você vai receber um e-mail de confirmação para começar a utilizar a plataforma.&lt;/p&gt;

&lt;p&gt;O primeiro passo, depois que você confirma seu e-mail, é conhecer o novo ambiente. Para isso você pode utilizar o Hello World Guide que o orientará como criar o seu primeiro repositório, fazer um branch ou abrir um pull request.&lt;/p&gt;

&lt;h3&gt;
  
  
  O que são Issues?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Issues&lt;/strong&gt; no GitHub são uma maneira de controle de tarefas, melhorias e bugs para seus projetos. Eles são parecidos com um e-mail, exceto que podem ser compartilhadas e discutidas com o resto de sua equipe.&lt;/p&gt;

&lt;p&gt;Você pode reportar bugs, erros de digitação e até mesmo uma possível solução para um problema enfrentado por uma determinada biblioteca.&lt;/p&gt;

&lt;h3&gt;
  
  
  O que são Pull Requests?
&lt;/h3&gt;

&lt;p&gt;Para propor as mudanças que você acabou de fazer para outros desenvolvedores trabalhando no mesmo projeto, você deve criar um pull request. São eles que fazem ser tão fácil de trabalhar junto em projetos, já que eles são a principal ferramenta de colaboração no GitHub.&lt;/p&gt;

&lt;h3&gt;
  
  
  Github Codespaces
&lt;/h3&gt;

&lt;p&gt;Outra ferramenta muito interessante e que poucas pessoas sabem como utilizar é o GitHub Codespaces. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Mas o que é o GitHub CodeSpaces?”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;É um ambiente de desenvolvimento instantâneo baseado em nuvem que usa um container para fornecer linguagens e ferramentas comuns para desenvolvimento.&lt;/p&gt;

&lt;p&gt;Ele é configurável, o que permite que você crie um ambiente de desenvolvimento personalizado para seu projeto.&lt;/p&gt;

&lt;p&gt;Pra criar um codespace você só precisa clicar no botão verde escrito &lt;strong&gt;&lt;u&gt;“Code”&lt;/u&gt;&lt;/strong&gt; e em seguida escolher a opção &lt;strong&gt;&lt;u&gt;“create codespace on main”&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YQdQ5Mhz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v3bw2pam3wcknf711hxj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YQdQ5Mhz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v3bw2pam3wcknf711hxj.png" alt="Imagem mostrando como criar um CodeSpace" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para saber mais sobre o eu recomendo esses dois artigos feitos pela &lt;a href="https://twitter.com/pachicodes"&gt;Pachi&lt;/a&gt;: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://dev.to/github/porque-github-codespaces-e-a-melhor-ferramenta-para-seu-workshop-de-programacao-607"&gt;Porque GitHub Codespaces é a melhor ferramenta para seu Workshop de programação&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://dev.to/github/o-que-e-github-codespaces-e-como-usar-337f"&gt;O que é GitHub Codespaces e como usar&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Github no WordPress
&lt;/h3&gt;

&lt;p&gt;Se você já utiliza WordPress deve saber como é bom contar com os plugins da plataforma.&lt;/p&gt;

&lt;p&gt;Contudo, fora do WordPress, também existe uma grande quantidade de plugins que podem ser utilizados na plataforma. Um desses é o GitHub.&lt;/p&gt;

&lt;p&gt;Para acessá-los, há duas formas: instalando um plugin a partir da plataforma do GitHub ou utilizando um plugin do próprio WordPress para facilitar a tarefa.&lt;/p&gt;

&lt;h4&gt;
  
  
  Instalando um plugin da plataforma do GitHub
&lt;/h4&gt;

&lt;p&gt;Para instalar um plugin da plataforma do GitHub, primeiro, você deve baixá-lo. Comece digitando o nome do plugin que você precisa.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--exMtO42j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1gbi559f5sab2l5gm1k0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--exMtO42j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1gbi559f5sab2l5gm1k0.png" alt="Repositórios para wordpress no github" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Após achar, a imagem que vai aparecer será esta, com as pastas do repositório. Para baixá-lo, é só clicar no botão verde escrito &lt;strong&gt;“Code”&lt;/strong&gt; e depois escolha &lt;strong&gt;“Download”&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--w9Ceeb2B--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4gh3z412czp2jpi1nxzt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--w9Ceeb2B--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4gh3z412czp2jpi1nxzt.png" alt="Repositório escolhido de plugin wordpress" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Uma vez que você tenha o arquivo, deverá subi-lo no diretório &lt;strong&gt;&lt;u&gt;/wp-content/plugins&lt;/u&gt;&lt;/strong&gt;, pode ser por FTP ou cPanel.&lt;/p&gt;

&lt;h4&gt;
  
  
  Instalar um plugin no próprio WordPress
&lt;/h4&gt;

&lt;p&gt;Antes de utilizar o GitHub na sua plataforma WordPress, primeiro você deverá instalar outro plugin que permita incorporar os repositórios diretamente no WP.&lt;/p&gt;

&lt;p&gt;Um plugin recomendado é o &lt;a href="https://embed.ly/provider/github"&gt;Github Embed&lt;/a&gt;. Com ele, você poderá incorporar diretórios do GitHub copiando o URL.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JiIshDe0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/syfrrk4nacjj14x725qv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JiIshDe0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/syfrrk4nacjj14x725qv.png" alt="Plugin wordpress chamado GitHub Embed" width="880" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A partir daqui, é só instalar o plugin seguindo as instruções do WordPress.&lt;/p&gt;

&lt;p&gt;O material encontrado no GitHub é bastante amplo. Apesar da maioria dos diretórios serem de códigos e softwares, a facilidade da plataforma tem atraído diversos usuários.&lt;/p&gt;




&lt;p&gt;O Github oferece bem mais ferramentas do que as tratadas neste artigo, eu só cobri o básico para iniciantes entenderem como funciona a plataforma.&lt;/p&gt;

&lt;p&gt;Alguns exemplos de features mais avançadas são:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Actions&lt;/li&gt;
&lt;li&gt;Packages&lt;/li&gt;
&lt;li&gt;Security&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Talvez eu aborde alguma delas em artigos futuros, mas por enquanto ficamos por aqui… Abraços.&lt;/p&gt;

</description>
      <category>github</category>
      <category>beginners</category>
      <category>tutorial</category>
      <category>braziliandevs</category>
    </item>
    <item>
      <title>[PT-BR]Comandos do Git: básico ao avançado</title>
      <dc:creator>Jason Hornet</dc:creator>
      <pubDate>Fri, 24 Feb 2023 15:00:00 +0000</pubDate>
      <link>https://forem.com/hornet_daemon/comandos-do-git-basico-ao-avancado-2p6p</link>
      <guid>https://forem.com/hornet_daemon/comandos-do-git-basico-ao-avancado-2p6p</guid>
      <description>&lt;p&gt;Eu sei que já existem milhares de artigos como esse por ai, mas como eu poderia fazer uma série de posts sobre Git e GitHub sem falar dos comandos?&lt;/p&gt;




&lt;p&gt;No dia a dia estes comandos são utilizados com muito frequência.&lt;/p&gt;

&lt;h3&gt;
  
  
  Comandos Básicos
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git config&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Quando você está utilizando o Git pela primeira vez ou com uma instalação nova, em um projeto colaborativo, esse comando é fundamental para configurar sua identidade de usuário, as informações nome e email serão empregadas em cada &lt;em&gt;commit.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git config –global user.name “Seu nome”&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git config –global user.email “Seu email”&lt;/code&gt;&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git init&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O comando irá criar um repositório novo em branco e, a partir daí, será possível armazenar seu código fonte, alterar, salvar alterações etc.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git init &amp;lt;Seu repositório&amp;gt;&lt;/code&gt;&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git clone&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Esse comando Git cria uma cópia exata de um repositório já existente.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git clone &amp;lt;URL do seu projeto&amp;gt;&lt;/code&gt;&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git add&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Esse comando Git adiciona os arquivos especificados ao seu repositório, sejam arquivos novos ou arquivos anteriores que foram alterados. Oferece diferentes possibilidades de sintaxe.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git add &amp;lt;nome do arquivo&amp;gt;&lt;/code&gt; esse comando irá adicionar o arquivo em específico ao repositório&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git add&lt;/code&gt; esse comando irá adicionar todos os arquivos novos e/ou modificados ao repositório&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git commit&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;É fundamental se estabelecer uma diferença entre git add e git commit: O git add adiciona seus arquivos modificados à fila para serem submetidos a um commit posteriormente. Os arquivos &lt;strong&gt;não&lt;/strong&gt; passaram por um commit ainda.&lt;/p&gt;

&lt;p&gt;É possível combinar os dois comandos em um único: &lt;code&gt;$ git commit -a&lt;/code&gt; ou &lt;code&gt;$ git commit -m "seu comentário"&lt;/code&gt;&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git branch&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;É comum na maior parte do tempo possuir múltiplas variações em seu repositório Git, chamadas de &lt;em&gt;branches&lt;/em&gt; (“ramificações”).&lt;/p&gt;

&lt;p&gt;A princípio pode parecer fácil se perder em diversos caminhos, mas o comando git branch facilita o gerenciamento de tudo isso. Com diferentes parâmetros, é possível listar, criar ou apagar os &lt;em&gt;branches.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git branch&lt;/code&gt; (lista todas as ramificações)&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git branch &amp;lt;nome_do_branch&amp;gt;&lt;/code&gt; (cria um &lt;em&gt;branch&lt;/em&gt; com o nome especificado)&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git branch -d &amp;lt;nome_do_branch&amp;gt;&lt;/code&gt; (deleta o &lt;em&gt;branch&lt;/em&gt; com o nome especificado)&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git checkout &amp;lt;nome_do_branch&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ainda sobre &lt;em&gt;branches&lt;/em&gt;, esse comando Git pode ser utilizado para trocar de uma ramificação para outra.&lt;/p&gt;




&lt;h3&gt;
  
  
  Comandos Intermediários
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git remote add &amp;lt;nome&amp;gt; &amp;lt;url&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Esse comando estabelece uma conexão entre seu repositório local e um repositório remoto.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git push -u &amp;lt;remote&amp;gt; &amp;lt;branch&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Esse comando serve para subir suas modificações para um repositório &lt;strong&gt;remoto&lt;/strong&gt; conectado anteriormente com git remote.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git fetch&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Quando você precisa baixar as mudanças criadas por outros membros do seu projeto colaborativo, você precisa do comando Git fetch. A partir desse comando, você irá receber todas as informações de commits, para avaliar, antes de aplicar essas alterações na sua versão local do repositório.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git pull &amp;lt;URL&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O comando Git pull baixa o conteúdo do que foi alterado no repositório remoto para o seu repositório local e o atualiza para a última versão.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git stash&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Esse comando Git armazena temporariamente seus arquivos modificados em uma área chamada &lt;em&gt;stash&lt;/em&gt; (“esconderijo”), sem interagir com os outros arquivos até ser necessário.&lt;/p&gt;

&lt;p&gt;Para listar todos usamos:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git stash list&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Quando for o momento de aplicar o conteúdo do &lt;em&gt;stash&lt;/em&gt; a um &lt;em&gt;branch&lt;/em&gt;, usamos o “apply”:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git stash apply&lt;/code&gt;&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git show &amp;lt;hash_do_commit&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Quer detalhes específicos sobre um commit que o log não mostra? O comando Git show é a resposta.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git rm &amp;lt;nome_do_arquivo&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para remover arquivos da sua pasta, você pode utilizar o comando git rm.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git merge &amp;lt;nome_do_branch&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Esse comando Git integra as mudanças de dois &lt;em&gt;branches&lt;/em&gt; diferentes em um único &lt;em&gt;branch&lt;/em&gt;. Ele precisa ser iniciado a partir de um &lt;em&gt;branch&lt;/em&gt; já selecionado, que será mesclado com outro, com o nome passado por parâmetro.&lt;/p&gt;




&lt;h3&gt;
  
  
  Comandos Avançados
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git rebase &amp;lt;base&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Git rebase a princípio parece fazer o mesmo que um &lt;em&gt;merge&lt;/em&gt;: ele integra dois &lt;em&gt;branches&lt;/em&gt; em um &lt;em&gt;branch&lt;/em&gt; único. Porém, esse comando refaz o histórico de commits, tornando-o linear. É o mais indicado para consolidar múltiplos &lt;em&gt;branches&lt;/em&gt;.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git pull –rebase&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Essa é uma variação do comando pull mostrado anteriormente. A partir dessa instrução, o Git irá fazer um rebase (não um merge) depois de se utilizar um comando pull.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git cherry-pick &amp;lt;commit-hash&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Esse é um comando poderoso que permite selecionar qualquer commit específico de um &lt;em&gt;branch&lt;/em&gt; e aplicá-lo a outro &lt;em&gt;branch&lt;/em&gt;, sem precisar de uma mescla completa. A operação fica adicionada no histórico.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git archive –format zip HEAD &amp;gt; archive-HEAD.zip&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Esse comando Git combina múltiplos arquivos em um único arquivo, como se fosse um arquivo zipado. Esse pacote pode ser aberto depois e os arquivos contidos podem ser extraídos individualmente.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git blame &amp;lt;nome_do_arquivo&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O comando “culpa” - blame - ajuda a determinar qual usuário realizou qual mudança em um determinado arquivo.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git tag -a &amp;lt;nome_da_tag&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tags são uma boa opção para marcar uma &lt;em&gt;branch&lt;/em&gt; e evitar alteração, principalmente em releases públicos. &lt;/p&gt;

&lt;p&gt;Note que por boas práticas uma tag sempre é criada como uma versão &lt;code&gt;$ git tag -a vX.X.X&lt;/code&gt;&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git diff&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para comparar dois arquivos gits ou dois &lt;em&gt;branches&lt;/em&gt; &lt;strong&gt;antes&lt;/strong&gt; de passarem por um commit ou um push, é importante executar esse comando Git.&lt;/p&gt;

&lt;p&gt;comparando o repositório ativo com o repositório local: &lt;code&gt;$ git diff HEAD &amp;lt;nome_do_arquivo&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;comparando duas ramificações: &lt;code&gt;$ git diff &amp;lt;*branch* de origem&amp;gt; &amp;lt;*branch* de destino&amp;gt;&lt;/code&gt;&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git citool&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Esse comando Git oferece uma alternativa gráfica ao commit.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git whatchanged&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Esse comando oferece informações de log, mas em formato raw.&lt;/p&gt;




&lt;h3&gt;
  
  
  Extra
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git help &amp;lt;comando que se tem dúvida&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Existem inúmeros comandos no Git, muito mais do que os dessa lista, cada um com sua função, parâmetros e características. Felizmente, o próprio Git tem o comando help para trazer ajuda diretamente no terminal.&lt;/p&gt;

</description>
      <category>git</category>
      <category>beginners</category>
      <category>tutorial</category>
      <category>braziliandevs</category>
    </item>
    <item>
      <title>Git commands: basic to advanced</title>
      <dc:creator>Jason Hornet</dc:creator>
      <pubDate>Fri, 24 Feb 2023 15:00:00 +0000</pubDate>
      <link>https://forem.com/hornet_daemon/git-commands-basic-to-advanced-17ep</link>
      <guid>https://forem.com/hornet_daemon/git-commands-basic-to-advanced-17ep</guid>
      <description>&lt;p&gt;I know there are thousands of articles like this out there, but how could I do a series of posts about Git and GitHub without talking about the commands?&lt;/p&gt;




&lt;p&gt;In our day-to-day life these commands are used very often.&lt;/p&gt;

&lt;h3&gt;
  
  
  Basic Commands
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git config&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When you are using Git for the first time in a new installation or in a collaborative project, this command is essential to configure your user identity, the name and email information will be used in each commit.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git config –global user.name “name”&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git config –global user.email “email”&lt;/code&gt;&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git init&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The command will create a new blank repository and from there you will be able to store your source code, change it, save changes, etc.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git init &amp;lt;repository&amp;gt;&lt;/code&gt;&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git clone&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This Git command creates an exact copy of an existing repository.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git clone &amp;lt;project URL&amp;gt;&lt;/code&gt;&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git add&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This Git command adds the specified files to your repository, whether they are new files or previous files that have changed. Offers different syntax possibilities.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git add &amp;lt;file name&amp;gt;&lt;/code&gt; this command will add the specific file to the repository&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git add&lt;/code&gt; this command will add all new and/or modified files to the repository&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git commit&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's critical to establish a difference between git add and git commit: git add will put your modified files to the queue to be committed later. The files have not been committed yet.&lt;/p&gt;

&lt;p&gt;It is possible to combine the two commands into a single one: &lt;code&gt;$ git commit -a&lt;/code&gt; or &lt;code&gt;$ git commit -m "message"&lt;/code&gt;&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git branch&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is common most of the time to have multiple variations in your Git repository, called branches.&lt;/p&gt;

&lt;p&gt;At first it might seem easy to get lost in many paths, but the git branch command makes it easy to manage it all. With different parameters, it is possible to list, create or delete branches.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git branch&lt;/code&gt; (lists all branches)&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git branch &amp;lt;name&amp;gt;&lt;/code&gt; (creates a branch with the specified name)&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git branch -d &amp;lt;name&amp;gt;&lt;/code&gt; (deletes the branch with the specified name)&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git checkout &amp;lt;nome_do_branch&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Still on branches, this Git command can be used to switch from one branch to another.&lt;/p&gt;




&lt;h3&gt;
  
  
  Intermediate Commands
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git remote add &amp;lt;name&amp;gt; &amp;lt;url&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This command establishes a connection between your local repository and a remote repository.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git push -u &amp;lt;remote&amp;gt; &amp;lt;branch&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This command is used to upload your modifications to a remote repository previously connected with git remote.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git fetch&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When you need to download changes created by other members of your collaborative project, you need the Git fetch command. From this command, you will receive all commit information to evaluate before applying these changes to your local version of the repository.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git pull &amp;lt;URL&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Git pull command pulls the contents of what has changed in the remote repository to your local repository and updates it to the latest version.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git stash&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This Git command temporarily stores your modified files in an area called a stash, without interacting with the other files until needed.&lt;/p&gt;

&lt;p&gt;To list them all we use:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git stash list&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;When it's time to apply the contents of the stash to a branch, we use:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git stash apply&lt;/code&gt;&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git show &amp;lt;commit_hash&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Want specific details about a commit that the log doesn't show? The Git show command is the answer.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git rm &amp;lt;file_name&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To remove files from your folder, you can use the git rm command.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git merge &amp;lt;branch&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This Git command integrates changes from two different branches into a single branch. It needs to be started from an already selected branch, which will be merged with another one, with the name passed as a parameter.&lt;/p&gt;




&lt;h3&gt;
  
  
  Advanced Commands
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git rebase &amp;lt;base&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Git rebase at first seems to do the same thing as merge: it merges two branches into a single branch. However, this command retraces the commit history, making it linear. It is best suited for consolidating multiple branches.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git pull –rebase&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is a variation of the pull command shown earlier. From this instruction, Git will do a rebase (not a merge) after using a pull command.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git cherry-pick &amp;lt;commit_hash&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is a powerful command that lets you select a specific commit from one branch and apply it to another branch, without needing to do a full merge. The operation is added to the history.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git archive –format zip HEAD &amp;gt; archive-HEAD.zip&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This Git command combines multiple files into a single file, much like a zipped file. This package can be opened later and the contained files can be extracted individually.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git blame &amp;lt;file_name&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The blame command helps to determine which user made which change in a given file.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git tag -a &amp;lt;tag_name&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tags are a good option to mark a branch and avoid changes, especially in public releases.&lt;/p&gt;

&lt;p&gt;For best practices a tag is always created as a version &lt;code&gt;$ git tag -a vX.X.X&lt;/code&gt;&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git diff&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To compare two git files or two branches before they undergo a commit or a push, it is important to run this Git command.&lt;/p&gt;

&lt;p&gt;comparing active repository with local repository: &lt;code&gt;$ git diff HEAD &amp;lt;file_name&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;comparing two branches: &lt;code&gt;$ git diff &amp;lt;origin branch&amp;gt; &amp;lt;target branch&amp;gt;&lt;/code&gt;&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git citool&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This Git command provides a "graphical interface" to commit.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git whatchanged&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This command provides log information, in raw format.&lt;/p&gt;




&lt;h3&gt;
  
  
  Extra
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git help &amp;lt;command_that_you_need_help&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are countless commands in Git, many more than those in this list, each with its own function, parameters and characteristics. Fortunately, Git itself has a help command to bring up help directly in the terminal.&lt;/p&gt;

</description>
      <category>memes</category>
      <category>watercooler</category>
    </item>
    <item>
      <title>[PT-BR]Um pouco sobre versionamento de código</title>
      <dc:creator>Jason Hornet</dc:creator>
      <pubDate>Fri, 17 Feb 2023 13:00:00 +0000</pubDate>
      <link>https://forem.com/hornet_daemon/pt-brum-pouco-sobre-versionamento-de-codigo-2flf</link>
      <guid>https://forem.com/hornet_daemon/pt-brum-pouco-sobre-versionamento-de-codigo-2flf</guid>
      <description>&lt;p&gt;Um conhecimento paralelo às linguagens de programação, mas muito importante para qualquer desenvolvedor, é o versionamento de código. Como o nome sugere, é o conhecimento em versionar e/ou salvar versões de uma aplicação.&lt;/p&gt;

&lt;p&gt;Falando dessa maneira, parece algo comum, como salvar vários arquivos das versões diferentes em pastas. Porém, na prática, o versionamento de código é algo ainda mais organizado - e um pouco mais complexo.&lt;/p&gt;




&lt;h3&gt;
  
  
  O que é versionamento?
&lt;/h3&gt;

&lt;p&gt;De maneira geral, todo projeto é feito por etapas, sendo que as funcionalidades são implementadas ou melhoradas aos poucos. Por isso, é preciso criar versões que possam ser retomadas sempre que necessário caso haja algum imprevisto.&lt;/p&gt;

&lt;p&gt;Em outras palavras, o versionamento de código é como ter vários arquivos, sendo que cada um conta com melhorias em comparação com o anterior. Porém, em vez de ter que salvar muitos arquivos, - o que é inviável para a computação e para a organização no geral - são feitas essas versões, direto no código.&lt;/p&gt;

&lt;p&gt;O versionamento de código faz parte das boas práticas de programação e se torna importante para a organização do projeto, consegue contribuir com o trabalho em equipe e também criar um “backup” de todas as mudanças.&lt;/p&gt;

&lt;h3&gt;
  
  
  Como Fazer Versionamento?
&lt;/h3&gt;

&lt;p&gt;O versionamento de código é feito durante a construção de código pelo desenvolvedor, utilizando o terminal da IDE escolhida - onde se escreve o código - ou no terminal do próprio computador.&lt;/p&gt;

&lt;p&gt;Para fazer o versionamento, são utilizadas ferramentas específicas para isso, chamadas de sistema de controle de versão. Sendo o Git, a mais conhecida e que conta com várias funcionalidades que auxiliam nessa organização.&lt;/p&gt;

&lt;p&gt;Ele precisa ser instalado e configurado em seu computador para funcionar localmente. Não tem uma interface visual, - apesar de que se pode instalar uma, sendo &lt;a href="https://www.gitkraken.com/download" rel="noopener noreferrer"&gt;GitKraken&lt;/a&gt; a mais famosa- por isso a necessidade de utilizar o terminal para criar suas versões.&lt;/p&gt;

&lt;p&gt;Além disso, o próprio versionamento também é feito em etapas, pois considera tanto o repositório local quanto um remoto. Assim, o Git tem a função de contribuir com a organização do código e também por enviá-lo para um repositório remoto.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ktbxic503xm7yfid56a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ktbxic503xm7yfid56a.png" alt="Processo de versionamento" width="800" height="366"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para conseguir fazer o versionamento de código é preciso conhecer os comandos do terminal, que criam os repositórios, os commits e revertem as versões.&lt;/p&gt;

&lt;h3&gt;
  
  
  E o GitHub?
&lt;/h3&gt;

&lt;p&gt;Muita gente acha que Git e Github são a mesma coisa, mas não são. O Github é uma ferramenta para reunir repositórios de forma remota. A partir do Git é possível enviar as alterações do código direto para o Github.&lt;/p&gt;

&lt;p&gt;Ou seja, o Github funciona como um local remoto para armazenar o código e suas versões. Assim, é muito utilizado em equipes, já que todos conseguem enviar o que for feito remotamente e reunir tudo em um mesmo repositório remoto do Github.&lt;/p&gt;

&lt;p&gt;Também é visto como uma interface visual do Git, já que mostra as branches e outros detalhes de maneira mais simplificada do que no terminal. Na prática, é como “salvar” sua versão na nuvem.&lt;/p&gt;

&lt;p&gt;Por reunir os repositórios de um programador, o Github se tornou também uma rede social e um &lt;a href="https://jasonh33.github.io/portfolio/" rel="noopener noreferrer"&gt;portfólio&lt;/a&gt;, já que os repositórios públicos podem ser acessados pelas pessoas. Por isso, é interessante que todo programador tenha um Github e treine o versionamento do código com ele.&lt;/p&gt;

&lt;h3&gt;
  
  
  Alguns Softwares
&lt;/h3&gt;

&lt;p&gt;Entenda agora 5 das melhores ferramentas de controle de versão.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;u&gt;&lt;strong&gt;GIT&lt;/strong&gt;&lt;/u&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O GIT é uma das ferramentas de controle de versão de software mais populares, principalmente em projetos open source. Isso se deve, principalmente, pela popularidade do GitHub, uma plataforma para hospedagem de códigos. Apesar de ela poder ser utilizada em outras ferramentas, o GIT é a que ganhou mais repercussão nesse aspecto.&lt;/p&gt;

&lt;p&gt;As principais vantagens dessa ferramenta são o design interno e interface, a eficácia e o desempenho do software. Isso significa que ele é agradável de ser utilizado, consegue atingir todos os objetivos de um bom controle de software e é rápido. Porém, apresenta desvantagens relacionadas à simplicidade de utilização. Apesar de ser a principal ferramenta de controle de versão de software disponível no mercado, possui controles um pouco mais complexos quanto comparado a outros softwares.&lt;/p&gt;

&lt;p&gt;Isso significa que os colaboradores precisam entender uma série de conceitos mais profundos, relacionados ao controle de versão de software, para utilizar essa ferramenta corretamente. Apesar disso, é uma ferramenta de controle de versão distribuída, o que significa que é adequado para a utilização em grandes equipes, nas quais os desenvolvedores não estão localizados geograficamente no mesmo local.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;u&gt;&lt;strong&gt;Mercurial&lt;/strong&gt;&lt;/u&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O Mercurial é a ferramenta de controle de versão de software utilizada por grandes empresas como o Facebook e Google. Ela é bastante eficiente, o que significa que consegue desempenhar bem as funções básicas de um bom controle de software.&lt;/p&gt;

&lt;p&gt;O Mercurial é uma ferramenta bastante rápida na execução dos comandos e ainda funciona muito bem para equipes grandes, nas quais os desenvolvedores não estão todos trabalhando no mesmo local. Isso porque ela é uma ferramenta de controle de versão distribuída.&lt;/p&gt;

&lt;p&gt;Essa ferramenta não apresenta muitas desvantagens apontadas por críticos. Ela é um pouco mais complexa de ser utilizada em comparação com a Subversion, por exemplo. Porém, ainda é de aprendizagem fácil e rápida pelas equipes de desenvolvedores e possui medidas de segurança para impedir erros.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;u&gt;&lt;strong&gt;Subversion&lt;/strong&gt;&lt;/u&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No meio corporativo, o Subversion é uma ferramenta de controle de versão de software bastante utilizada. Ela é bastante rápida na execução das funcionalidades do sistema e ainda se mostra como uma das mais simples de ser empregada. Isso significa que com um conhecimento básico de conceitos relacionados ao controle de versão de software é possível executar comandos na ferramenta. A aprendizagem da equipe também é rápida nesse aspecto.&lt;/p&gt;

&lt;p&gt;Um dos problemas do Subversion são as críticas relacionadas à eficácia do software. No passado, essa ferramenta apresentou problemas na hora de executar as principais funções de um controle de versão de software eficiente. Porém, as últimas versões lançadas parecem ter solucionado tudo que foi apontado como desvantagem do programa.&lt;/p&gt;

&lt;p&gt;O Subversion é uma ferramenta de controle de versão centralizada. Isso significa que não é indicada para todas as equipes de TI, apenas para aquelas que são menores - com apenas algumas dezenas de desenvolvedores - e estão reunidas em um mesmo espaço físico.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;u&gt;&lt;strong&gt;TFS&lt;/strong&gt;&lt;/u&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O TFS — sigla para Team Foundation Server — é uma outra ferramenta de controle de versão de software que pode ser utilizada na sua empresa. Ele traz uma série de características interessantes, principalmente se você utiliza metodologias agile no setor de TI da sua empresa.&lt;/p&gt;

&lt;p&gt;Isso porque ele possibilita a gestão de projetos por meio de SCRUM ou CMMI. Também permite a utilização de forma centralizada ou distribuída, sendo adequado tanto para equipes que compartilham o mesmo espaço físico quanto aquelas que trabalham à distância. Outra vantagem apresentada por esse sistema é o fato de não possuir limitações de crescimento e ter integração direta com o Microsoft Office.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;u&gt;&lt;strong&gt;CVS&lt;/strong&gt;&lt;/u&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A CVS é uma das ferramentas de controle de software mais antigas no mercado. A primeira versão dela foi desenvolvida em 1968. Essa ferramenta possui como maior desvantagem o fato de ser considerada como uma tecnologia antiga. Porém, ainda é bastante utilizada por equipes de desenvolvedores.&lt;/p&gt;

&lt;p&gt;É muito simples de ser operada. Isso significa que a sua equipe pode aprender rapidamente como usar todas as funcionalidades da CVS com eficiência.&lt;/p&gt;




&lt;p&gt;Saber versionar um código da maneira correta é imprescindível para qualquer programador e, por isso, é considerado um conhecimento base da área. Não há como desenvolver um código sem conseguir versioná-lo da maneira correta.&lt;/p&gt;

&lt;p&gt;Agora que você entende o básico de versionamento e alguns de seus softwares será necessário saber os comandos para utiliza-los, e este é justamente o tema do próximo artigo.&lt;/p&gt;

</description>
      <category>gratitude</category>
    </item>
    <item>
      <title>A bit about code versioning</title>
      <dc:creator>Jason Hornet</dc:creator>
      <pubDate>Fri, 17 Feb 2023 13:00:00 +0000</pubDate>
      <link>https://forem.com/hornet_daemon/a-bit-about-code-versioning-21gi</link>
      <guid>https://forem.com/hornet_daemon/a-bit-about-code-versioning-21gi</guid>
      <description>&lt;p&gt;A parallel knowledge to programming languages, but very important for any developer, is code versioning. As the name suggests, it is the knowledge of versioning and/or saving versions of an application.&lt;/p&gt;

&lt;p&gt;Put that way, it sounds like a common thing, like saving multiple files of different versions in some folders. However, in practice, code versioning is something even more organized - and a little more complex.&lt;/p&gt;




&lt;h3&gt;
  
  
  What is Versioning?
&lt;/h3&gt;

&lt;p&gt;Every project is done in stages, with functionalities being implemented or improved little by little. Therefore, it is necessary to create versions that can be resumed whenever necessary in case of any unforeseen events.&lt;/p&gt;

&lt;p&gt;In other words, code versioning is like having multiple files, each with improvements over the last. However, instead of having to save a lot of files - which is impractical in computing and for the organization in general - these versions are made, in the code.&lt;/p&gt;

&lt;p&gt;Code versioning is part of good programming practices and is important for a project organization, contributing to teamwork and also creating a "backup" of all changes.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to do Versioning?
&lt;/h3&gt;

&lt;p&gt;Code versioning is done during code construction by the developer, using the chosen IDE terminal - where the code is written - or in the computer's own terminal.&lt;/p&gt;

&lt;p&gt;To carry out versioning, specific tools are used for this, called version control systems. Being Git, the best known and that has several features that help in this organization.&lt;/p&gt;

&lt;p&gt;It needs to be installed and configured on your computer to work locally. It doesn't have a visual interface, - although you can install one, &lt;a href="https://www.gitkraken.com/download" rel="noopener noreferrer"&gt;GitKraken&lt;/a&gt; being the most famous one - that's why you need to use the terminal to create your versions.&lt;/p&gt;

&lt;p&gt;In addition, the versioning itself is also done in stages, as it considers both the local and a remote repository. Thus, Git has the function of contributing to the organization of the code and also for sending it to a remote repository.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb164wy76b3t7y8j2v68f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb164wy76b3t7y8j2v68f.png" alt="The process of code versioning" width="700" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To be able to do code versioning, you need to know the terminal commands, which create repositories, commits and reverse versions.&lt;/p&gt;

&lt;h3&gt;
  
  
  What About GitHub?
&lt;/h3&gt;

&lt;p&gt;Many people think that Git and Github are the same thing, but they are not. Github is a tool to gather repositories remotely. From Git it is possible to send code changes directly to Github.&lt;/p&gt;

&lt;p&gt;That is, Github works as a remote location to store the code and its versions. Thus, it is widely used in teams, since everyone can send what is done remotely and gather everything in the same remote Github repository.&lt;/p&gt;

&lt;p&gt;It is also seen as a visual interface to Git, as it shows branches and other details in a more simplified way than in the terminal. In practice, it's like “saving” your version in a cloud service.&lt;/p&gt;

&lt;p&gt;By bringing together a programmer's repositories, Github has also become a social network and a &lt;a href="https://jasonh33.github.io/portfolio/en/index.html" rel="noopener noreferrer"&gt;portfolio&lt;/a&gt;, as public repositories can be accessed by people. Therefore, it is interesting that every programmer has a Github and trains code versioning with it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Some Softwares
&lt;/h3&gt;

&lt;p&gt;Understand now 5 of the best version control tools.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;u&gt;&lt;strong&gt;GIT&lt;/strong&gt;&lt;/u&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Is one of the most popular version control system, especially in open source projects. This is mainly due to the popularity of GitHub, a platform for hosting code. Although it can be used in other tools, GIT is the one that gained the most repercussions in this regard.&lt;/p&gt;

&lt;p&gt;The main advantages of this tool are the internal design and interface, the effectiveness and performance of the software. This means that it is pleasant to use, achieves all the goals of good software control, and is fast. Despite being the main software version control tool available on the market, it has slightly more complex controls compared to other software.&lt;/p&gt;

&lt;p&gt;This means that employees need to understand a series of deeper concepts related to software version control in order to use this tool correctly. Despite this, it is a distributed version control tool, which means it is suitable for use in large teams where developers are not geographically located in the same location.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;u&gt;&lt;strong&gt;Mercurial&lt;/strong&gt;&lt;/u&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mercurial is a software version control tool used by big companies like Facebook and Google. It is quite efficient, which means it can perform the basic functions of a good software control very well.&lt;/p&gt;

&lt;p&gt;Mercurial is a very fast tool in executing commands and still works very well for large teams, where developers are not all working in the same place. This is because it is a distributed version control tool.&lt;/p&gt;

&lt;p&gt;This tool doesn't have many of the downsides pointed out by critics. It is a bit more complex to use compared to Subversion, for example. However, it is still easy and quick to learn by the development teams and has security measures to prevent errors.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;u&gt;&lt;strong&gt;Subversion&lt;/strong&gt;&lt;/u&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In the corporate environment, Subversion is a widely used software version control tool. It is quite fast in executing the system's functionalities and is still one of the simplest to use. This means that with a basic knowledge of concepts related to version control, it is possible to execute commands in the tool. The team learns quickly in this aspect as well.&lt;/p&gt;

&lt;p&gt;One of Subversion's problems is criticism of the software's effectiveness. In the past, this tool has struggled to perform key functions of an effective version control. However, the last released versions seem to have solved everything that was pointed out as a disadvantage of the program.&lt;/p&gt;

&lt;p&gt;Subversion is a centralized version control tool. This means that it is not suitable for all teams, only for those that are smaller - with only a few dozen developers - and are gathered in the same physical space.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;u&gt;&lt;strong&gt;TFS&lt;/strong&gt;&lt;/u&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;TFS — short for Team Foundation Server — is another software version control tool that can be used in your company. It brings a series of interesting features, especially if you use agile methodologies in your company.&lt;/p&gt;

&lt;p&gt;This is because it enables project management through SCRUM or CMMI. It also allows for use in a centralized or distributed manner, being suitable both for teams that share the same physical space and those that work remotely. Another advantage presented by this system is the fact that it does not have growth limitations and has direct integration with Microsoft Office.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;&lt;u&gt;&lt;strong&gt;CVS&lt;/strong&gt;&lt;/u&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;CVS is one of the oldest software control tools on the market. The first version of it was developed in 1968. The biggest disadvantage of this tool is the fact that it is considered an old technology. However, it is still widely used by teams of developers.&lt;/p&gt;

&lt;p&gt;It is very simple to operate. This means your team can quickly learn how to use all CVS functionality efficiently.&lt;/p&gt;




&lt;p&gt;Knowing how to version code correctly is essential for any programmer and, therefore, is considered basic knowledge of the area. There is no way to develop code without being able to version it correctly.&lt;/p&gt;

&lt;p&gt;Now that you understand the basics of versioning and some of your software, you will need to know the commands to use them, and this is precisely the topic of the next article.&lt;/p&gt;

</description>
      <category>tooling</category>
      <category>productivity</category>
      <category>discuss</category>
    </item>
    <item>
      <title>[PT-BR] Git Commit Patterns</title>
      <dc:creator>Jason Hornet</dc:creator>
      <pubDate>Fri, 27 Jan 2023 16:00:00 +0000</pubDate>
      <link>https://forem.com/hornet_daemon/pt-br-git-commit-patterns-5aek</link>
      <guid>https://forem.com/hornet_daemon/pt-br-git-commit-patterns-5aek</guid>
      <description>&lt;p&gt;O uso do Git para nós Devs é algo essencial, seja em projetos pessoais, de código aberto com muitas pessoas ou uma comunidade.&lt;br&gt;
Dado isso, é importante utilizarmos o &lt;strong&gt;git commit&lt;/strong&gt; apropriadamente. Termos uma linguagem coerente e padronizada ajuda a todos os envolvidos no projeto a entenderem as mudanças ocorridas.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7r0qv3vii7v7yjxyxef2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7r0qv3vii7v7yjxyxef2.png" alt="Bad Commit Timeline" width="439" height="250"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Na imagem acima, percebemos o quão prejudicial podem ser commits mal comentados, uma vez que não conseguimos entender a natureza da mudança ocorrida e o contexto que se aplica. A longo prazo, o efeito é ainda mais danoso, dado que a manutenibilidade do software é prejudicada devido a incoerência no escopo dessas mudanças, e como afetaram o projeto no passado.&lt;br&gt;
Diante disso, vamos falar um pouco sobre o &lt;strong&gt;Conventional Commits Pattern&lt;/strong&gt;.&lt;/p&gt;


&lt;h3&gt;
  
  
  O que é ?
&lt;/h3&gt;

&lt;p&gt;O &lt;a href="https://www.conventionalcommits.org/en/v1.0.0/" rel="noopener noreferrer"&gt;Conventional Commits&lt;/a&gt; é uma convenção simples de mensagens de commit, que segue um conjunto de regras e que ajuda os projetos a terem um histórico de commit explícito e bem estruturado.&lt;/p&gt;


&lt;h3&gt;
  
  
  Como utilizar
&lt;/h3&gt;

&lt;p&gt;As regras são muito simples, como demonstrado abaixo temos um tipo de &lt;em&gt;commit (type)&lt;/em&gt;, o escopo/contexto do &lt;em&gt;commit (scope)&lt;/em&gt; e o assunto/mensagem do &lt;em&gt;commit (subject)&lt;/em&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;!type(?scope): !subject
&amp;lt;?body&amp;gt;
&amp;lt;?footer&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Dessa maneira, &lt;code&gt;!&lt;/code&gt; indica os atributos obrigatórios e &lt;code&gt;?&lt;/code&gt; indica os atributos não obrigatórios.&lt;/p&gt;




&lt;h3&gt;
  
  
  Subject: Imperativo ao invés de pretérito (modo passado)
&lt;/h3&gt;

&lt;p&gt;Desse modo nós estamos dizendo à nossa equipe &lt;strong&gt;o que fará o commit se aplicado&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmfm2chjhctjdspyfl4t8.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmfm2chjhctjdspyfl4t8.jpg" alt="Commit Subject use" width="720" height="306"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;“&lt;strong&gt;If applied, this commit will change the markup&lt;/strong&gt;”, o que faz mais sentido do que: “&lt;em&gt;If applied, this commit will changed the markup&lt;/em&gt;”&lt;/p&gt;




&lt;h3&gt;
  
  
  Type: Quais são os tipos de commit
&lt;/h3&gt;

&lt;p&gt;O &lt;strong&gt;type&lt;/strong&gt; é responsável por nos dizer qual o tipo de alteração ou iteração está sendo feita, das regras da convenção, temos os seguintes tipos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;test&lt;/code&gt;: indica qualquer tipo de criação ou alteração de códigos de teste. &lt;br&gt;
&lt;strong&gt;Exemplo:&lt;/strong&gt; Criação de testes unitários.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;feat&lt;/code&gt;: indica o desenvolvimento de uma nova feature no projeto. &lt;br&gt;
&lt;strong&gt;Exemplo:&lt;/strong&gt; Acréscimo de um serviço, funcionalidade, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;refactor&lt;/code&gt;: usado quando houver uma refatoração de código que não tenha qualquer tipo de impacto na lógica/regras de negócio do sistema. &lt;br&gt;
&lt;strong&gt;Exemplo:&lt;/strong&gt; Mudanças após um code review&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;style&lt;/code&gt;: empregado quando há mudanças de formatação e estilo do código que &lt;strong&gt;não alteram&lt;/strong&gt; o sistema de nenhuma forma.&lt;br&gt;
&lt;strong&gt;Exemplo:&lt;/strong&gt; Mudar o &lt;em&gt;style-guide&lt;/em&gt;, mudar de convenção &lt;em&gt;lint&lt;/em&gt;, arrumar indentações, remover espaços em brancos, remover comentários, etc..&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;fix&lt;/code&gt;: utilizado quando há correção de erros que estão gerando bugs no sistema.&lt;br&gt;
&lt;strong&gt;Exemplo:&lt;/strong&gt; Aplicar tratativa para uma função que não está tendo o comportamento esperado e retornando erro.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;chore&lt;/code&gt;: indica mudanças no projeto que não afetem o sistema ou arquivos de testes. São mudanças de desenvolvimento.&lt;br&gt;
&lt;strong&gt;Exemplo:&lt;/strong&gt; Mudar regras do &lt;em&gt;eslint&lt;/em&gt;, adicionar &lt;em&gt;prettier&lt;/em&gt;, adicionar mais extensões de arquivos ao .&lt;em&gt;gitignore&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;docs&lt;/code&gt;: usado quando há mudanças na documentação do projeto.&lt;br&gt;
&lt;strong&gt;Exemplo:&lt;/strong&gt; adicionar informações na documentação da API, mudar o &lt;em&gt;README&lt;/em&gt;, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;build&lt;/code&gt;: utilizada para indicar mudanças que afetam o processo de build do projeto ou dependências externas.&lt;br&gt;
&lt;strong&gt;Exemplo:&lt;/strong&gt; adicionar/remover dependências do &lt;em&gt;npm&lt;/em&gt;, etc...&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;perf&lt;/code&gt;: indica uma alteração que melhorou a performance do sistema.&lt;br&gt;
&lt;strong&gt;Exemplo:&lt;/strong&gt; alterar &lt;em&gt;ForEach&lt;/em&gt; por &lt;em&gt;while&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;ci&lt;/code&gt;: utilizada para mudanças nos arquivos de configuração de CI.&lt;br&gt;
&lt;strong&gt;Exemplo:&lt;/strong&gt; &lt;em&gt;Circle&lt;/em&gt;, &lt;em&gt;Travis&lt;/em&gt;, &lt;em&gt;BrowserStack&lt;/em&gt;, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;revert&lt;/code&gt;: indica a reversão de um &lt;em&gt;commit&lt;/em&gt; anterior.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feu75nl5bcy3l4em3s87m.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feu75nl5bcy3l4em3s87m.jpg" alt="Commit Types use" width="720" height="482"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Observações:&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Só pode ser utilizado um &lt;em&gt;type&lt;/em&gt; por &lt;em&gt;commit;&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;O &lt;em&gt;type&lt;/em&gt; é &lt;strong&gt;obrigatório;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Caso esteja indeciso sobre qual &lt;em&gt;type&lt;/em&gt; usar, provavelmente trata-se de uma grande mudança e é possível separar esse &lt;em&gt;commit&lt;/em&gt; em dois ou mais &lt;em&gt;commits;&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A diferença entre &lt;code&gt;build&lt;/code&gt; e &lt;code&gt;chore&lt;/code&gt; pode ser um tanto quanto sutil e pode gerar confusão, por isso devemos ficar atentos quanto ao tipo correto. No caso do Node.js por exemplo, podemos pensar que quando há uma adição/alteração de certa dependência de desenvolvimento presente em &lt;code&gt;devDependencies,&lt;/code&gt; utilizamos o &lt;code&gt;chore.&lt;/code&gt; Já para alterações/adições de dependências comuns aos projeto, e que haja impacto direto e real sobre o sistema, utilizamos o &lt;code&gt;build&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Scope: contextualizando o commit
&lt;/h3&gt;

&lt;p&gt;Nesse ponto — e seguindo as convenções passadas — conseguimos entender o &lt;em&gt;tipo&lt;/em&gt; de alteração que foi realizada no &lt;em&gt;commit (commit type)&lt;/em&gt; e entender com clareza o que o commit irá trazer se aplicado &lt;em&gt;(commit subject)&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Mesmo o scope &lt;strong&gt;não sendo obrigatório&lt;/strong&gt;, ele pode ser utilizado para contextualizar o &lt;em&gt;commit&lt;/em&gt; e trazer menos responsabilidade para a &lt;em&gt;subject&lt;/em&gt;, fazendo com que ele seja mais breve e conciso possível. &lt;strong&gt;Lembrando que o &lt;em&gt;scope&lt;/em&gt; deve ser inserido no commit entre parênteses&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmfiv8rrjrf40zsupe1w6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmfiv8rrjrf40zsupe1w6.jpg" alt="Commit Scope use" width="720" height="203"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Observação:&lt;/em&gt; Os escopos devem ser separados com &lt;code&gt;/&lt;/code&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Conclusão
&lt;/h4&gt;

&lt;p&gt;Escrevi este artigo no intuito de registrar um dos meus aprendizado meu &lt;em&gt;(eram só umas notas no notion)&lt;/em&gt;, mas espero que possa ajudar outros desenvolvedores por ai.&lt;/p&gt;

</description>
      <category>computerscience</category>
      <category>webdev</category>
      <category>frontend</category>
      <category>community</category>
    </item>
    <item>
      <title>Git Commit Patterns</title>
      <dc:creator>Jason Hornet</dc:creator>
      <pubDate>Fri, 27 Jan 2023 03:00:00 +0000</pubDate>
      <link>https://forem.com/hornet_daemon/git-commit-patterns-5dm7</link>
      <guid>https://forem.com/hornet_daemon/git-commit-patterns-5dm7</guid>
      <description>&lt;p&gt;The use of Git for us Devs is something essential, whether in personal projects, open source with many people or an entire community.&lt;br&gt;
Given that, it's important that we use &lt;strong&gt;git commit&lt;/strong&gt; properly. Having a coherent and standardized language helps everyone involved in the project to understand the changes that have occurred.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7r0qv3vii7v7yjxyxef2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7r0qv3vii7v7yjxyxef2.png" alt="Bad Commit Timeline" width="439" height="250"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the image above, we see how harmful a poorly commented commit can be, since we fail to understand the nature of the change that occurred and the context of it. In the long run, the effect is even more damaging, as the maintainability of the software suffers due to inconsistencies in the scope of these changes, and how they have affected the project in the past.&lt;/p&gt;

&lt;p&gt;With that in mind, let's talk a little about &lt;strong&gt;Conventional Commits Pattern&lt;/strong&gt;.&lt;/p&gt;


&lt;h3&gt;
  
  
  What Is It?
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.conventionalcommits.org/en/v1.0.0/" rel="noopener noreferrer"&gt;Conventional Commits&lt;/a&gt; is a simple convention for commit messages, which follows a set of rules and helps projects to have an explicit and well-structured commit history.&lt;/p&gt;


&lt;h3&gt;
  
  
  How To Use It?
&lt;/h3&gt;

&lt;p&gt;The rules are very simple, as shown below we have a &lt;em&gt;type&lt;/em&gt; of commit, the context &lt;em&gt;(scope)&lt;/em&gt; of commit and the message &lt;em&gt;(subject)&lt;/em&gt; of commit.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;!type(?scope): !subject
&amp;lt;?body&amp;gt;
&amp;lt;?footer&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Thus, &lt;code&gt;!&lt;/code&gt; indicates the mandatory attributes and &lt;code&gt;?&lt;/code&gt; indicates optional attributes.&lt;/p&gt;




&lt;h3&gt;
  
  
  Subject: Imperative instead of past tense
&lt;/h3&gt;

&lt;p&gt;In this way we are telling our team what the commit will do if applied.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“If applied, this commit will ”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;“If applied, this commit will change the markup”&lt;/strong&gt;, which makes a lot more sense than: &lt;em&gt;“If applied, this commit will changed the markup”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmfm2chjhctjdspyfl4t8.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmfm2chjhctjdspyfl4t8.jpg" alt="Commit Subject use" width="720" height="306"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Type: What are the types of commits
&lt;/h3&gt;

&lt;p&gt;The type is responsible for telling us what change or iteration is being made, from the convention rules, we have the following types:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;test&lt;/code&gt;: indicates any type of creation or alteration of test codes.&lt;br&gt;
&lt;strong&gt;Example&lt;/strong&gt;: Creation of unit tests.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;feat&lt;/code&gt;: indicates the development of a new feature for the project.&lt;br&gt;
&lt;strong&gt;Example&lt;/strong&gt;: Adding a service, functionality, endpoint, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;refactor&lt;/code&gt;: used when there is a code refactoring that does not have any impact on the system logic/rules.&lt;br&gt;
&lt;strong&gt;Example&lt;/strong&gt;: Code changes after a code review&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;style&lt;/code&gt;: used when there are code formatting and style changes that do not change the system in any way.&lt;br&gt;
&lt;strong&gt;Example&lt;/strong&gt;: Change the style-guide, change the lint convention, fix indentations, remove white spaces, remove comments, etc…&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;fix&lt;/code&gt;: used when correcting errors that are generating bugs in the system.&lt;br&gt;
&lt;strong&gt;Example&lt;/strong&gt;: Apply a handling for a function that is not behaving as expected and returning an error.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;chore&lt;/code&gt;: indicates changes to the project that do not affect the system or test files. These are developmental changes.&lt;br&gt;
&lt;strong&gt;Example&lt;/strong&gt;: Change rules for &lt;em&gt;eslint&lt;/em&gt;, add &lt;em&gt;prettier&lt;/em&gt;, add more file extensions to &lt;em&gt;.gitignore&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;docs&lt;/code&gt;: used when there are changes in the project documentation.&lt;br&gt;
&lt;strong&gt;Example&lt;/strong&gt;: add information in the API documentation, change the README, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;build&lt;/code&gt;: used to indicate changes that affect the project build process or external dependencies.&lt;br&gt;
&lt;strong&gt;Example&lt;/strong&gt;: Gulp, add/remove &lt;em&gt;npm&lt;/em&gt; dependencies, etc…&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;perf&lt;/code&gt;: indicates a change that improved system performance.&lt;br&gt;
&lt;strong&gt;Example&lt;/strong&gt;: change ForEach to While, etc…&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;ci&lt;/code&gt;: used for changes in CI configuration files.&lt;br&gt;
&lt;strong&gt;Example&lt;/strong&gt;: &lt;em&gt;Circle&lt;/em&gt;, &lt;em&gt;Travis&lt;/em&gt;, &lt;em&gt;BrowserStack&lt;/em&gt;, etc…&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;revert&lt;/code&gt;: indicates the reversal of a previous commit.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feu75nl5bcy3l4em3s87m.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feu75nl5bcy3l4em3s87m.jpg" alt="Commit Types use" width="720" height="482"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note:&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Only one &lt;em&gt;type&lt;/em&gt; per commit;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The &lt;em&gt;type&lt;/em&gt; is &lt;strong&gt;mandatory&lt;/strong&gt;;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you don’t know which &lt;em&gt;type&lt;/em&gt; to use, it is probably a big change and it is possible to split this &lt;em&gt;commit&lt;/em&gt; into two or more commits;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The difference between &lt;code&gt;build&lt;/code&gt; and &lt;code&gt;chore&lt;/code&gt; can be quite subtle and can lead to confusion, so we must be aware of the correct &lt;em&gt;type&lt;/em&gt;. In the case of Node.js, for example, we can think that when there is an addition/change to a certain development dependency present in &lt;code&gt;devDependencies&lt;/code&gt;, we use &lt;code&gt;chore&lt;/code&gt;. For changes/additions of common dependencies to the project, and that have a direct and real impact on the system, we use &lt;code&gt;build&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Scope: contextualizing the commit
&lt;/h3&gt;

&lt;p&gt;At this point — and following past conventions — we managed to understand the type of change that was made in the commit &lt;em&gt;(commit type)&lt;/em&gt; and clearly understand what the commit will bring if applied &lt;em&gt;(commit subject)&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Even though the scope is &lt;strong&gt;not mandatory&lt;/strong&gt;, it can be used to contextualize the commit and bring less responsibility to the subject, making it as brief and concise as possible. &lt;strong&gt;Remembering that the &lt;em&gt;scope&lt;/em&gt; must be inserted in the commit between parentheses&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmfiv8rrjrf40zsupe1w6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmfiv8rrjrf40zsupe1w6.jpg" alt="Commit Scope use" width="720" height="203"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note:&lt;/em&gt; Scopes must be separated with &lt;code&gt;/&lt;/code&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;I wrote this article in order to record one of my learnings &lt;em&gt;(they were just some notes in the notion app)&lt;/em&gt;, but I hope it can help other devs out there.&lt;/p&gt;

</description>
      <category>chatgpt</category>
      <category>ai</category>
    </item>
    <item>
      <title>[PT-BR] Arte e IA || Monopólio do Google e a lei</title>
      <dc:creator>Jason Hornet</dc:creator>
      <pubDate>Wed, 30 Nov 2022 13:00:00 +0000</pubDate>
      <link>https://forem.com/hornet_daemon/arte-e-ia-monopolio-do-google-e-a-lei-98d</link>
      <guid>https://forem.com/hornet_daemon/arte-e-ia-monopolio-do-google-e-a-lei-98d</guid>
      <description>&lt;p&gt;&lt;em&gt;(Imagem de capa feita com DALL-E 2)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Está cada vez mais difícil de entender como IA’s funcionam, redes neurais, treinadas para imitar o cérebro humano, as vezes parecem não apenas espelhar nossa inteligência, mas também nossas preferências e emoções. &lt;/p&gt;

&lt;h2&gt;
  
  
  Google acaba de entrar na partida
&lt;/h2&gt;

&lt;p&gt;No mais recente evento sobre IA’s a google também anunciou suas novas ferramentas movidas por IA, alguns destaques são: &lt;u&gt;“Code as Policies”&lt;/u&gt; (IA que gera código de forma autônoma), &lt;u&gt;“Wordcraft”&lt;/u&gt; (IA escritora de ficção), &lt;u&gt;“Iniciativa 1.000 Linguagens”&lt;/u&gt; (modelo que trabalhará com as mil línguas mais faladas do mundo). Além disso, o &lt;a href="https://imagen.research.google/" rel="noopener noreferrer"&gt;Imagen&lt;/a&gt;, sistema de geração de imagens, que é o nosso foco neste artigo.&lt;/p&gt;

&lt;p&gt;O Google não tornou o sistema acessível ao público em geral, apesar de o Imagen gera resultados comparáveis - se não melhores - em qualidade ao &lt;a href="https://openai.com/dall-e-2/" rel="noopener noreferrer"&gt;Dall-E 2&lt;/a&gt; ou a &lt;a href="https://stability.ai/" rel="noopener noreferrer"&gt;Stable Diffusion&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Agora, no exemplo abaixo encontrado no site da Imagen, observe algo. A IA pode escrever perfeitamente. Este é um grande passo à frente de todos as outras IA’s.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd9qcngn6688ofazevq6s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd9qcngn6688ofazevq6s.png" alt="Mosaico retirado do Google Imagen" width="800" height="264"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Os resultados da AI falam por si e representam mais uma grande inovação nos campos da geração de texto para imagem e modelagem generativa em geral. A Imagen AI aumenta a lista de realizações excelentes, que varreram a comunidade de machine learning nos últimos anos com uma sucessão de resultados espetaculares.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quem é o dono das ovelhas?
&lt;/h2&gt;

&lt;p&gt;Agora, entrando em um assunto mais sério, sobre lei e direitos. Se um robô sonha com ovelhas eletrônicas, quem é o dono das ovelhas?&lt;/p&gt;

&lt;p&gt;De acordo com Ryan Meyer, consultor do escritório de advocacia Dorsey &amp;amp; Whitney LLP, a resposta é… Ninguém; A lei ainda está para alcançar os avanços na tecnologia de IA. Ryan é um litigante de propriedade intelectual que trabalha em todas as áreas de IP, incluindo patente, direitos autorais, marca registrada e lei de segredo comercial. Ele também tem experiência em trabalhar em questões que envolvem software, dispositivos mecânicos e eletrônicos, tecnologia de rede, tecnologia de telecomunicações e outros.&lt;/p&gt;

&lt;p&gt;Destacando o trabalho gerado de Jason Allen, Theatre d'Opera Spatial - &lt;a href="https://dev.to/jasonh33/pt-br-arte-e-ia-3opo"&gt;veja na primeira parte do artigo&lt;/a&gt; - como um favorito, Ryan diz: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"O incrível para mim é que, como leigo, não posso dizer a diferença entre uma obra de arte criada com AI de uma por humanos”.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Isso nos mostra a velocidade com que a tecnologia evoluiu.&lt;/p&gt;

&lt;p&gt;IA’s até se provaram capazes de resolver as matrizes de Raven - testes visuais usados para medir a inteligência humana - mostrando que Dall-E, que foi usada neste teste, pode expressar conhecimento geográfico e temporal (um entendimento de lugares, conceitos e como eles mudam com o tempo.)&lt;/p&gt;

&lt;p&gt;Então, depois de criar sua obra-prima gerada por IA, o que o impede de reivindicá-la como sua, usá-la comercialmente ou impedir que outras pessoas a usem? Ryan diz que o conteúdo gerado pela IA levanta muitas questões legais.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“O escritório de direitos autorais dos EUA já se recusou a conceder um registro de direitos autorais para a arte gerada por IA, porque a atual lei de direitos autorais requer autoria humana para proteção de direitos autorais. Isso significa que, sob as regras atuais, a arte gerada não tem proprietário”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Os proprietários da tecnologia da IA em si podem ser os que devem se preocupar - potencialmente em risco de processos por violação de direitos autorais. Ele continua: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“IA não pode criar arte do nada; Em vez disso, analisa ou contém reproduções das obras de arte de outras pessoas, na qual ela usa para criar novas obras de arte. Essa nova obra de arte pode ser um derivado não autorizado, isso caracteriza uma violação. Se a IA também armazena uma reprodução dessa obra de arte, isso também é uma violação. Outra questão é que, embora a obra de arte geralmente esteja no domínio da lei de direitos autorais, a tecnologia de computação necessária para obras de arte geradas por IA podem ser protegidas sob a lei de patentes. Podemos começar a ver a lei de patentes usada de novas maneiras para proteger as IA’s e os métodos que eles usam para criar obras de arte”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A lei de IP varia de país para país, mas Ryan explica que a maioria dos países estão na &lt;em&gt;Convenção de Berne para a proteção de obras literárias e artísticas&lt;/em&gt;, que estabelece a proteção uniforme de direitos autorais internacionalmente. No entanto, Ryan reitera que, nos EUA&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"A lei de direitos autorais não protege obras de arte geradas pela IA, então nem você nem a empresa de IA têm direitos na imagem"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Uma mistura de direitos autorais, patentes e segredos comerciais são usadas para proteger o código-fonte de uma IA e a tecnologia necessária para operar, mas muito poucos dos precedentes legais foram elaborados com a arte gerada pela IA em mente.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Para uma questão complicada e potencialmente controversa como essa, talvez tenhamos que esperar vários anos para que as leis acompanhem a tecnologia"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;diz Ryan.&lt;/p&gt;

&lt;p&gt;Ele também diz que a maneira pela qual AI’s coletam informações pode ser motivo de preocupação, pois o software de aprendizado de máquina utiliza um banco de dados de imagens coletadas de outros artistas.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Se uma pessoa usa uma IA para gerar uma logomarca, e essa marca contém elementos do trabalho de outro artista, essa pessoa poderá ser responsabilizada por direitos autorais ou violação de marca registrada. A marca pode ser uma reprodução ou derivada não autorizada de um trabalho protegido por direitos autorais, ou pode ser tão semelhante à marca registrada de outra pessoa que criaria uma confusão para identificar as duas”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  E o Futuro?
&lt;/h2&gt;

&lt;p&gt;Apesar de ainda trazer muitos problemas e polêmicas, assim como qualquer invenção inovadora, as IA’s geradoras de imagem vieram para ficar. Elas não devem ser algo temido ou odiado, mas sim uma ferramenta para auxiliar os artistas, assim como hoje em dia existem softwares de desenho que te possibilitam uma facilidade que seria impossível somente com papel e caneta.&lt;/p&gt;

&lt;p&gt;A criação de prompts para IA’s é algo complicado e que também necessita de algum grau de conhecimento artístico. Mais à frente pode ser que encontremos eventos somente para artes geradas.&lt;/p&gt;

&lt;p&gt;A euforia, a raiva e o medo que se instalaram na comunidade artística por conta desta nova tecnologia são tipicas de acontecerem sempre que uma grande invenção ganha fama, e podem ser apaziguadas quando a questão mais preocupante, a lei de direitos autorais, for resolvida.&lt;/p&gt;

</description>
      <category>watercooler</category>
    </item>
    <item>
      <title>Art &amp; AI || Google monopoly and the law</title>
      <dc:creator>Jason Hornet</dc:creator>
      <pubDate>Wed, 30 Nov 2022 13:00:00 +0000</pubDate>
      <link>https://forem.com/hornet_daemon/art-ai-google-monopoly-and-the-law-30m</link>
      <guid>https://forem.com/hornet_daemon/art-ai-google-monopoly-and-the-law-30m</guid>
      <description>&lt;p&gt;&lt;em&gt;(Cover made with DALL-E 2)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It is increasingly difficult to understand how AI work, neural networks, trained to imitate the human brain, sometimes seem not only to mirror our intelligence, but also our preferences and emotions.&lt;/p&gt;




&lt;h2&gt;
  
  
  Google joined the party
&lt;/h2&gt;

&lt;p&gt;In the latest AI event, Google has announced some new AI tools, some highlights are: &lt;u&gt;“Code as Policies”&lt;/u&gt; (AI that generates code autonomously), &lt;u&gt;“Wordcraft”&lt;/u&gt; (Fiction Writer), &lt;u&gt;“Initiative 1,000 Languages”&lt;/u&gt; (AI that will work with the thousand most spoken languages in the world). In addition, &lt;a href="https://imagen.research.google/" rel="noopener noreferrer"&gt;Imagen&lt;/a&gt;, the image generation system, which is our focus in this article.&lt;/p&gt;

&lt;p&gt;Google has not made the system accessible to the general public, although Imagen generates comparable results - if not better - in quality to &lt;a href="https://openai.com/dall-e-2/" rel="noopener noreferrer"&gt;DALL-E 2&lt;/a&gt; or &lt;a href="https://stability.ai/" rel="noopener noreferrer"&gt;Stable Diffusion&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Now, in the example below found on the Imagen website, notice something. This AI can write perfectly. This is a big step ahead of all the other AI's.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvbsdblu9wqr4m9u26kpz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvbsdblu9wqr4m9u26kpz.png" alt="Image Mosaic from Google Imagen" width="800" height="264"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The results of Imagen AI speak for themselves and represent yet another major breakthrough in the fields of text-to-image generation and generative modeling in general. Imagen adds to the list of Diffusion Models’ outstanding accomplishments, which have swept the machine learning community off their feet over the past few years with a succession of spectacular outcomes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who owns the sheep?
&lt;/h2&gt;

&lt;p&gt;Now, entering a more serious subject, on law and rights. If a robot dreams of an electronic sheep, who owns the sheep?&lt;/p&gt;

&lt;p&gt;According to Ryan Meyer, Of Counsel at American law firm Dorsey &amp;amp; Whitney LLP, the answer is, well… no one. The law is yet to catch up with the advances in AI technology. Ryan is an intellectual property litigator who works across all areas of IP including patent, copyright, trademark, and trade secret law. He also has experience working in matters involving software, mechanical and electronic devices, networking technology, telecom technology, and others.&lt;/p&gt;

&lt;p&gt;Highlighting Jason Allen’s AI-generated work, ‘Theatre D’opera Spatial’ - &lt;a href="https://dev.to/jasonh33/art-ai-5b3i"&gt;see the first part of this article series&lt;/a&gt; - as a personal favourite - Ryan says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“The amazing thing to me is that, as a layperson, I cannot tell the difference between AI- and human-created artwork.” &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This just shows how quickly the technology has developed.&lt;/p&gt;

&lt;p&gt;It has even proven to be capable of solving Raven's Matrices - visual tests used to measure human intelligence - showing that DALL-E can express both geographical and temporal knowledge (an understanding of places, concepts and how they change over time.)&lt;/p&gt;

&lt;p&gt;So once you’ve created your AI-generated masterpiece, what’s stopping you from claiming it as your own, using it commercially or preventing others from using it? Ryan says that AI-generated content raises many legal issues.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“The US Copyright Office has already refused to grant a copyright registration for AI-generated art because the current copyright law requires human authorship for copyright protection. That means that, under the current rules, AI-generated art has no owner.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The owners of the AI technology itself may be the ones with cause for concern - potentially being at risk of copyright infringement lawsuits. He continues:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“AI cannot create art in a vacuum; instead, it usually reviews or even contains reproductions of other people’s artwork that it uses to create new artwork. That new artwork could be an unauthorized derivative, which is an infringement. If the AI also stores a reproduction of that artwork, that too is an infringement. Another issue is that, while artwork is generally in the domain of copyright law, computer technology necessary for AI-generated artwork might be protectible under patent law. We might start seeing patent law used in new ways to protect AIs and the methods they use for creating artwork.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;IP law varies from country to country, but Ryan explains that most nations are signatories to the &lt;em&gt;Berne Convention for the Protection of Literary and Artistic Works&lt;/em&gt;, which establishes uniform copyright protection internationally. However, Ryan reiterates that in the US:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Copyright law does not protect AI-generated artwork, so neither you nor the AI company has any rights in the image.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A mix of copyrights, patents and trade secrets are used to protect an AI’s source code and the technology it needs to operate, but very few of the legal precedents were drafted with AI-generated art in mind.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“For a complicated, potentially controversial issue like this, we might have to wait several years for the laws to catch up with technology” &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;says Ryan.&lt;/p&gt;

&lt;p&gt;He also says that the way in which AIs collect information can be a cause for concern, especially as much machine-learning software utilizes a database of images collated from other artists.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“If a person uses an AI to generate a mark, and that mark contains elements of another artist’s work, that person could be liable for copyright or trademark infringement. The mark might be an unauthorized reproduction or derivative of a copyrighted work, or it might be so similar to someone else’s trademark that it would create a substantial likelihood of confusion.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What about the Future?
&lt;/h2&gt;

&lt;p&gt;Although it still brings many problems and controversies, just like any innovative invention, the text-to-image AI are here to stay. They should not be feared nor hated, but be used as a tool to assist the artists, just as nowadays exist softwares that enables you to do things that would be impossible only with paper and pen.&lt;/p&gt;

&lt;p&gt;The creation of prompts is complicated and also needs some degree of artistic knowledge. In the future we may find events only for generated images.&lt;/p&gt;

&lt;p&gt;The euphoria, anger and fear that have settled in the artistic community because of this new technology are typical of happening whenever a great invention gains fame, and can be appeased once the most worrying issue, the copyright law, is resolved.&lt;/p&gt;

</description>
      <category>emptystring</category>
    </item>
    <item>
      <title>Art &amp; AI interview with Creammy</title>
      <dc:creator>Jason Hornet</dc:creator>
      <pubDate>Sat, 26 Nov 2022 13:00:00 +0000</pubDate>
      <link>https://forem.com/hornet_daemon/art-ai-interview-with-creammy-2kja</link>
      <guid>https://forem.com/hornet_daemon/art-ai-interview-with-creammy-2kja</guid>
      <description>&lt;p&gt;&lt;em&gt;(Cover made with NightCafeAI)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Specialized in 3D Arts and VTuber streamer with two different channels, her team, is highly notorious in the streaming scenario, they are responsible for creating the command &lt;strong&gt;&lt;em&gt;!s2&lt;/em&gt;&lt;/strong&gt;, which has the function of promoting another streamer. Today's guest is &lt;a href="https://twitter.com/its_creammy" rel="noopener noreferrer"&gt;Creammy&lt;/a&gt; with her lives being composed of games, conversations and handicrafts, her secondary &lt;a href="https://twitter.com/Meoowgic" rel="noopener noreferrer"&gt;Meoowgic&lt;/a&gt; channel focuses on arts and drawings.&lt;/p&gt;

&lt;p&gt;Following is our conversation.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;How is the use of AI's in 3D arts? Have you ever used one?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I never used it, I couldn't even say if it exists.&lt;br&gt;
What would be an image generated by AI? Something that was taken from several artists and put together by a robot.&lt;br&gt;
In 3D artists already make assets for you to put in a VTuber model and use it. Sometimes for free, sometimes paid.&lt;br&gt;
But if there is a 3D AI to create models, I don’t know it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I came across this &lt;a href="https://sejacriativo.com.br/inteligencia-artificial-cria-imagens-abstratas-em-3d/" rel="noopener noreferrer"&gt;article&lt;/a&gt; on the use of AI's in 3D, you can read it and elaborate more your answer&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In the case of this article, this is renders made by an AI; a render is an image made of a 3D, it can be a model, a landscape, a cube, etc… a 3D model is what you put on the program to do the render.&lt;br&gt;
Some 3D models are available on the internet for free, I find it difficult to an AI make a model that people want to use because there are many ways to make one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What are the most common arguments you witness against or in favor of AI's?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I am against it, but I have seen arguments in both ways. Cons usually are "It will end the artists", "this is stealing our art”, and I agree with both.&lt;br&gt;
Every AI need an image bank to work, and they mimic the trace of a specific artist. For me this just is a copy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do you think there is any means of avoiding this copy/theft of arts?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yes, but it would have to come from the AI creators themselves. The DeviantArt for example has created an AI, and in the site settings you can choose to let your image be used by AI or not.&lt;br&gt;
For me the ideal would be if an AI were created and her bank were the artists who sent their own art, like ShutterStock for example.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do you believe it is possible for artists to be completely replaced by AI's?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No. My fear is that the creators of images generated by IA start to think they are artists and start claiming ownership for some image they have generated.&lt;br&gt;
There was a case of an artist and streamer who was making an art on his Live, and before he finished, a person took a screen shot and put it on AI to finish; As soon as the streamer ended, the creator of the image by AI said the streamer should make some reference to him, as he "finished the art first.”&lt;br&gt;
And this can happen here in Brazil too, because people are so ignorant that they do not understand the concepts of art and not being artists in fact, this can generate a great scandal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Raiden’s case again ... This is a problem related to the ethics and moral of a person and may be solved by law, taking this into consideration: you think it would be possible to regulate the arts market with help of a government monitoring system?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I think so, but at the same time I don't. The programmers behind the AI would have to follow the law, and every artist who enters the database would have to sign that he is agreeing with it; But if any ordinary person who is using these AI’s to generate art makes an upload of an artist he likes and is not currently in the database, how could they monitor this? &lt;br&gt;
And there is also the fact that AI code can "leak" and someone can make a different website or program, it's hard for the government to do something about it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do you think it is fair to use IA at an event or contest? Like Jason Allen did.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No, and I also don't agree that such people can enter the Artist Valley. &lt;br&gt;
Most art contests say you can only enter with an art of your own; An image generated by AI is not your own because it uses other people's art. If he had used the image he generated as a reference, then in my opinion it would be valid.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is the future of these AI's in your opinion?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That art must have two categories: manual art and images generated by AI.&lt;br&gt;
But art is indeed hard to learn and improve, so many people will choose to be creators of Image by AI; But one day this will saturate, just as it happened with NFT.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let's finish here, would you like to add something?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I want to leave a message for the artists. You are amazing, keep studying, do your best. It is not the amount of likes that says your art is good or bad, in this new business model where you need to be artists, influencer, video editor, and more, this makes us focus on the engagement of publications and not in our own progress. We already have many problems with our own art to be worrying about people who are not even artists.&lt;/p&gt;




&lt;p&gt;This was today's guest, who is also open to teach about art:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"If anyone wants to ask questions about 3D, they can ask me on Twitch or Twitter"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;She also makes an honorable mention to her friend and teammate: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“&lt;a href="https://twitter.com/Miki_art_" rel="noopener noreferrer"&gt;Miki&lt;/a&gt; does art studies on Twitch at 2pm. She is an amazing artist that I am very proud of, I saw her evolution as a streamer and as an artist; She is always ready to help”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This was the last interview of this series; the conclusion that it is also my personal opinion will come out on the last day of this month&lt;/p&gt;

</description>
      <category>learning</category>
      <category>community</category>
    </item>
    <item>
      <title>[PT-BR] Arte e IA entrevista com Creammy</title>
      <dc:creator>Jason Hornet</dc:creator>
      <pubDate>Sat, 26 Nov 2022 13:00:00 +0000</pubDate>
      <link>https://forem.com/hornet_daemon/pt-br-arte-e-ia-entrevista-com-creammy-1gkl</link>
      <guid>https://forem.com/hornet_daemon/pt-br-arte-e-ia-entrevista-com-creammy-1gkl</guid>
      <description>&lt;p&gt;&lt;em&gt;(Imagem de capa feita com NightCafeAI)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Especializada em artes 3D além de ser streamer VTuber em dois canais diferentes, sua equipe, a &lt;a href="https://twitter.com/streAMAndoS2" rel="noopener noreferrer"&gt;streAMAndo&lt;/a&gt; é de suma importância para o cenário de streamers pois são os responsáveis pela criação do comando &lt;em&gt;&lt;strong&gt;!s2&lt;/strong&gt;&lt;/em&gt;, no qual tem a função de divulgar o canal de streamers visitantes. A convidada de hoje é &lt;a href="https://twitter.com/its_creammy" rel="noopener noreferrer"&gt;Creammy&lt;/a&gt; com suas lives focadas em jogos, conversas e artesanato, seu canal secundário &lt;a href="https://twitter.com/Meoowgic" rel="noopener noreferrer"&gt;Meoowgic&lt;/a&gt; tem foco em artes e desenhos.&lt;br&gt;
Segue abaixo nossa conversa.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Como é o uso de IA’s em artes 3D? Você já usou?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Eu nunca usei, nem saberia dizer se existe IA para o 3D. &lt;br&gt;
O que seria uma imagem gerada por IA? Algo que foi pego de vários artistas e colocado junto por um robô. &lt;br&gt;
No 3D os artistas já fazem assets para você colocar em um modelo vtuber e usar aquilo. As vezes de graça, as vezes pago.&lt;br&gt;
Mas se existe um IA de 3D para criação de modelos, eu não saberia dizer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Eu vi esse &lt;a href="https://sejacriativo.com.br/inteligencia-artificial-cria-imagens-abstratas-em-3d/" rel="noopener noreferrer"&gt;artigo&lt;/a&gt; sobre o uso de IA’s em artes 3D, você pode ler ele e e elaborar mais a sua resposta&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No caso desse artigo, isso são renders feitos por uma IA; um render é uma imagem feita de um 3D, ela pode ser um modelo, uma paisagem, um cubo, etc… Um modelo 3D é o que você coloca no programa para fazer o render.&lt;br&gt;
Alguns modelos 3D já estão disponíveis na internet de graça, acho difícil uma IA fazer um modelo e as pessoas quererem usar pois já existe muitos jeitos de se fazer um.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quais são os argumentos mais comuns que você presencia contra ou a favor de IA’s?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Eu sou contra, mas já vi argumentos nos dois sentidos. Os contras geralmente são "vai acabar com os artistas", "estão roubando a arte das pessoas", e eu concordo com as duas. Pois toda IA precisa de um banco de imagens para funcionar, e eles até imitam o traço de um artista específico. Isso pra mim é uma cópia.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Acha que tem algum meio de evitar essa cópia/roubo de artes?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sim, mas teria que vir dos próprios criadores da IA. A DeviantArt por exemplo criou uma IA, e nas configurações do site você pode optar por deixar ou não sua imagem ser usada pela IA.&lt;br&gt;
Pra mim o ideal seria se uma IA fosse criada e o banco dela fossem os artistas que mandassem a própria arte, como na ShutterStock por exemplo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Você acredita que é possível os artistas serem substituídos totalmente por IA's?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Não. Meu receio é que os criadores de imagens geradas por IA achem que são artistas e comecem a exigir créditos por alguma imagem que eles geraram.&lt;br&gt;
Teve um caso de um artista e streamer que estava fazendo uma arte em live, e antes dele terminar, uma pessoa fez uma captura de tela e a colocou na IA para finalizar; assim que o streamer terminou, o criador da imagem por IA disse que o streamer podia fazer alguma referência a ele, já que ele "terminou a arte primeiro”.&lt;br&gt;
E isso pode acontecer aqui no Brasil também, porque as pessoas são tão ignorantes no sentido de não entenderem os conceitos de arte e de não serem artistas de fato, isso pode gerar um grande escândalo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;O caso da arte da Raiden Shogun de novo... Como isso é um problema relacionado a ética e moral da pessoa talvez isso se resolva com alguma lei, levando isso em consideração: Você acha que seria possível regulamentar o mercado de artes com a ajuda de algum monitoramento do governo?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Eu acho que sim, mas ao mesmo tempo acho que não. Os programadores por trás da IA teriam que seguir a lei, e todo artista que entrar no banco de dados teria que assinar que ele está concordando com isso; Mas caso alguma pessoa comum que está usando essas IA’s para gerar arte fizer o upload de um artista que ele gosta e que não está no banco de dados, como que faz? Como regulamentar isso? &lt;br&gt;
E também tem o fato que o código da IA pode "vazar" e podem fazer um site ou programa diferente, é difícil o governo fazer algo em relação à isso.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Você acha que é justo o uso de IA em algum evento ou concurso? como Jason Allen fez.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Não, e também não concordo com que pessoas desse tipo entrem no Artist Valley. &lt;br&gt;
A maioria dos concursos de arte dizem que você só pode entrar com uma arte de sua autoria; Uma imagem gerada por IA não é de sua autoria pois usa como base a arte de outras pessoas. Caso ele tivesse usado a imagem que ele gerou como referência, então na minha opinião seria válido, mas ele usou a própria imagem da IA.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Qual o futuro dessas IA’s na sua opinião?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Que a arte deve ter duas categorias: Arte própria e Imagens geradas por IA.&lt;br&gt;
Porém como arte de fato é demorada de se aprender e aperfeiçoar, muita gente vai optar por ser criador de imagens por IA; Mas um dia isso vai saturar, da mesma forma que aconteceu com os NFT.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vamos finalizar por aqui, gostaria de acrescentar algo?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Quero deixar um recado para os artistas. Vocês são incríveis, continuem estudando, façam o seu melhor. Não é a quantidade de likes que diz que sua arte é boa ou ruim,  nesse novo modelo de negócio onde você precisamos ser artistas, influencers, editores de vídeo, e muito mais, faz com que foquemos no engajamento de publicações e não no seu próprio progresso. &lt;br&gt;
Já temos muitas neuras com nossas próprias artes pra se preocupar com pessoas que não são artistas.&lt;/p&gt;




&lt;p&gt;Essa foi a convidada de hoje, que também se demonstra aberta para ensinar sobre arte: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“Caso queiram tirar alguma dúvida sobre 3D, podem me perguntar, tanto na twitch quanto no meu twitter.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;E faz uma menção honrosa a sua amiga e colega de equipe: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“A &lt;a href="https://twitter.com/Miki_art_" rel="noopener noreferrer"&gt;Miki&lt;/a&gt; faz estudos de arte na twitch à partir das 14h. Ela é uma artista muito incrível e que eu tenho muito orgulho, eu vi a evolução dela tanto de streamer quanto como artista; ela sempre tá lá pronta para ajudar.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Essa foi a ultima entrevista dessa série; à conclusão que também é a minha opinião pessoal sairá no ultimo dia deste mês&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>ai</category>
      <category>github</category>
    </item>
  </channel>
</rss>
