<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Javeiro</title>
    <description>The latest articles on DEV Community by Javeiro (@javeiro).</description>
    <link>https://dev.to/javeiro</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%2F804331%2F4154d471-ebcb-4154-83b2-430e00aea9f4.jpeg</url>
      <title>DEV Community: Javeiro</title>
      <link>https://dev.to/javeiro</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/javeiro"/>
    <language>en</language>
    <item>
      <title>30 dias aprendendo UI/UX</title>
      <dc:creator>Javeiro</dc:creator>
      <pubDate>Tue, 21 Feb 2023 01:04:18 +0000</pubDate>
      <link>https://dev.to/javeiro/30-dias-aprendendo-design-hch</link>
      <guid>https://dev.to/javeiro/30-dias-aprendendo-design-hch</guid>
      <description>&lt;p&gt;É isso mesmo galera, eu não sai do Java blz? haha, mas acontece que, meus projetos estavam muito sem profundidade, e chegou o momento de aprender logo design, pelos menos para entender e conseguir realizar algo da forma que eu quero, sem dependender de terceiros!!&lt;/p&gt;

&lt;p&gt;E olha só, já tem 4 dias que estou estudando UI/UX e estou dando meus primeiros passos, espero aprender com a comunidade de designers e gerar projetos que no futuro possa me orgulhar!&lt;/p&gt;

&lt;p&gt;Eu tambem tenho um projeto que vou realizar com a comunidade do twitter, que no final, vai render um CRUD com springboot e quero esse blog com deploy para publicar meu artigos!&lt;/p&gt;

&lt;p&gt;Resultado dos primeiros 4 dias abaixo!&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%2F1yd64ob75dmc3mm5f84u.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%2F1yd64ob75dmc3mm5f84u.png" alt=" " width="723" height="864"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5° Dia de aprendizado:&lt;/p&gt;

&lt;p&gt;Então, seguindo essa saga de UI/UX, hoje aprendi com mão na massa, seguindo a recomendação do professor da Origamid, um projeto esboço ao lado, e tudo que aprendi com ele, eu precisava refazer com aquilo que acreditava que era possivel refazer... Abaixo segue o esboço do professor: &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%2Fl3wgpy1e35gqkm9odam1.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%2Fl3wgpy1e35gqkm9odam1.jpg" alt=" " width="800" height="1600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;E aqui segue o meu wireframe da forma que acreditei que era seguindo a atividade: &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%2Fb2vs2q4ohw5nc48tne2y.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%2Fb2vs2q4ohw5nc48tne2y.png" alt=" " width="400" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;É isso, em pleno carnaval e estudando para no fim conseguir ter habilidades suficientes de produzir meu blog e um site portfolio, eae, acha que consigo em 30 dias? &lt;/p&gt;

</description>
      <category>vibecoding</category>
    </item>
    <item>
      <title>Hello world um pouco por trás dos panos</title>
      <dc:creator>Javeiro</dc:creator>
      <pubDate>Tue, 15 Mar 2022 00:46:28 +0000</pubDate>
      <link>https://dev.to/javeiro/hello-world-um-pouco-por-tras-dos-panos-26ke</link>
      <guid>https://dev.to/javeiro/hello-world-um-pouco-por-tras-dos-panos-26ke</guid>
      <description>&lt;p&gt;Falando do famoso "Hello World" .&lt;br&gt;
Bom... a primeira coisa que nos deparamos ao interagir com alguma linguagem é o famoso hello world, e no java não foge a regra, ora, mas como funciona um pouco mais por tras dos panos ele?&lt;br&gt;
Aqui tento explicar um pouco os passos para a criação até a execução da classe Hello world&lt;/p&gt;

&lt;p&gt;No geral temos 5 fases que o programa passam até rodar de fato sua instrução, sendo elas, edição, compilação, carregamento, verificação e execução. &lt;/p&gt;

&lt;p&gt;A primeira parte se resume a criar um arquivo com um programa editor. usando esse editor, faz as edições e correções necessárias e o salvamos em um dispositivo de armazenamento secundário, até aqui pense no seu disco rígido(Hd). Um nome&lt;br&gt;
de arquivo que termina com a extensão .java é indicado que o arquivo contem o código-fonte java.&lt;br&gt;
Na compilação o compilador cria bytecodes e os armazena em disco, o arquivo com o nome atribuído termina .class, após isso, temos o carregamento onde o carregador de classe lê os arquivos .class que contêm bytecodes a partir do disco&lt;br&gt;
e coloca esses bytecodes na memoria. O  verificador de bytecode confirma que todos os bytecodes estão validos e não será violado restrições de segurança do Java. E por fim a execução, a JVM lê os bytecodes e compila no momento correto,&lt;br&gt;
famoso (Just In Time- JIT) para que o computador possa entender.&lt;br&gt;
Ok... agora sabemos como é realizado a execução de um simples programa, e olhando um pouco mais para o arquivo hello world, o que encontramos ?&lt;br&gt;
Normalmente para escrever o simples hello world, será preciso fazer isso aqui :&lt;/p&gt;

&lt;p&gt;&lt;code&gt;class HelloWorld{&lt;br&gt;
public static void main(String[] args){&lt;br&gt;
    System.out.println("Hello World");  // exibe a string&lt;br&gt;
     }&lt;br&gt;
  }&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Podemos dizer que temos 2 componentes, nossa definição de classe e o main método.&lt;/p&gt;

&lt;p&gt;a forma mais básica para definirmos nossa classe será :&lt;/p&gt;

&lt;p&gt;&lt;code&gt;class HelloWorld{&lt;br&gt;
   ...&lt;br&gt;
  }&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;nossa palavra class inicia uma definição de classe chamado HelloWorld e o código para cada classe aparece entre as chaves.&lt;/p&gt;

&lt;p&gt;Main método&lt;/p&gt;

&lt;p&gt;Na linguagem de programação java toda aplicação deve conter um main método, e seguir essa assinatura :&lt;br&gt;
Algo curiosos é que os modificadores de acesso podem ser escritos em qualquer ordem, porem a convenção é usar public static, nos argumentos podemos nomear como quiser, mas sempre é definido como args ou argv.&lt;br&gt;
O main método é parecido com main função do C, é ponto de entrada do aplicativo e logo, invocara métodos exigidos pelo programa.&lt;br&gt;
O main método ele aceita o argumento, que é uma array com elementos do tipo String, matriz na qual o sistema de tempo de execução passa informações para o app.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;public static void main(String[] args){&lt;br&gt;
    ...&lt;br&gt;
}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Por fim a saída dos dados :&lt;br&gt;
É usado a System da biblioteca principal para imprimir o "Hello World", biblioteca essa tambem conhecida como Application Programming Interface ou API.&lt;/p&gt;

&lt;p&gt;System.out.println("Hello World");&lt;/p&gt;

</description>
      <category>java</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Obtendo repositório git</title>
      <dc:creator>Javeiro</dc:creator>
      <pubDate>Tue, 22 Feb 2022 02:34:19 +0000</pubDate>
      <link>https://dev.to/javeiro/obtendo-repositorio-git-4eoj</link>
      <guid>https://dev.to/javeiro/obtendo-repositorio-git-4eoj</guid>
      <description>&lt;p&gt;Se você vem acompanhando a sequencia de artigos relacionados a git, então já conseguiu avançar bastante com nossos estudos, agora vamos cobrir comandos básicos do git e assim continuando nossa sequencia de estudos do terminal. Ao final desse artigo acredito que tenha uma base para iniciar seu repositório, iniciar e interromper os rastreamento de arquivos e assim fazer os commits das suas alterações, como desfazer de erros comuns, fazer &lt;strong&gt;push&lt;/strong&gt; e &lt;strong&gt;pull&lt;/strong&gt; nos seu repositório.&lt;/p&gt;

&lt;h2&gt;
  
  
  Criando seu repositório Git
&lt;/h2&gt;

&lt;p&gt;Existe duas maneiras de você ter seu repositório git, a primeira é você pegando um repositório e tornando ele um repositório git, 2. e a segunda é você fazendo o &lt;strong&gt;clone&lt;/strong&gt; do repositório que já existe em outro lugar.&lt;/p&gt;

&lt;h2&gt;
  
  
  Iniciando um projeto git dentro de um diretório existente
&lt;/h2&gt;

&lt;p&gt;Para começar a monitorar o git você precisa navegar até o diretório desejado, caso nunca tenha feito isso deixo o comando abaixo :&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;linux:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$cd /home/user/seu_repositorio&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Windows:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$cd /c/user/seu_repositorio&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;logo após isso, digite : &lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git init&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
com esse comando cria um subdiretório .git. Nele se verificarmos estão todos os arquivos necessários para iniciar o repositório, basicamente o esqueleto do GIT, bom e não se engane, até esse momento os seus arquivos ainda não estão sendo monitorados.&lt;br&gt;
Para começar a monitorar seus arquivos você precisa &lt;strong&gt;git add&lt;/strong&gt;, exatamente esse comando passa seus arquivos agora para area de stage seguido do git commit para fazer seu comentário do arquivo monitorado : &lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git add .&lt;/code&gt;&lt;br&gt;
&lt;code&gt;$ git commit -m "projeto inicial"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Não se preocupe que falaremos o que esses comandos fazem, mas se atente que até nesse primeiro momento, você já tem os comandos necessário para iniciar seu projeto e publicar no GitHub&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Então como clonar o repositório existente ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ok, agora que você já tem o básico de comandos e seu foco nesse momento é contribuir para algum projeto, e usar o que aprendeu com todos os comandos acima, o que você precisa fazer é usar o comando no seu CLI  &lt;code&gt;git clone&lt;/code&gt;. Como seu primeiro contato ou não, entenda que o git clone como o próprio comando diz, ele vai clonar o projeto totalmente para sua maquina local, todos os dados que estão nesse repositório que você escolheu do servidor. E cada versão de cada arquivo tambem é obtido quando você executa o comando &lt;code&gt;git clone&lt;/code&gt;.&lt;br&gt;
Como seria na pratica ? vejamos, aqui digamos que vamos clonar um repositório que vamos usar de exemplo, dadas condições já sabemos que o comando &lt;code&gt;git clone [url]&lt;/code&gt; é o que vai proporcionar o clone do projeto.&lt;br&gt;
Vamos usar de exemplo um repositório que criamos para esse teste e o servidor será o GitHub :&lt;/p&gt;

&lt;p&gt;Na pagina inicial do GitHub, vá até repositórios ou simplesmente clique na aba + :&lt;/p&gt;

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

&lt;p&gt;No repositório que escolher clique no botão verde escrito code e copie uma das 3 opções, eu particularmente indico usar https até se familiarizar com o github&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnsw98ifkorv26axwkz3k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnsw98ifkorv26axwkz3k.png" alt="Image description" width="800" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Escolha onde vai deixar vai trazer o conteúdo clonado e inicie o git bash here como no exemplo, no meu caso utilizei da área de trabalho para trazer os dados do repositório:&lt;/p&gt;

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

&lt;p&gt;Com o terminal iniciado, insira o comando git clone e com o botão direito cole os dados copiados do servidor GitHub&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git clone [url]&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;*Detalhe: a sua URL vai ficar diferente da minha ok ?😃&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh4kzbgdicvzdo6cgoiau.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh4kzbgdicvzdo6cgoiau.png" alt="Image description" width="577" height="367"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;E para entrar no seu diretório, insira o comando:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git cd [nome do projeto]&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;o comando cd vai acessar outras pastas e com isso a frente dele inserimos o nome do projeto clonado&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbbfjiye6x212m4j71bqn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbbfjiye6x212m4j71bqn.png" alt="Image description" width="576" height="362"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pronto, agora temos o repositório que desejamos contribuir😃&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>git</category>
    </item>
    <item>
      <title>JDK, JVM, JRE para que serve ?</title>
      <dc:creator>Javeiro</dc:creator>
      <pubDate>Sun, 13 Feb 2022 16:31:32 +0000</pubDate>
      <link>https://dev.to/javeiro/jdk-jvm-jre-para-que-serve--4m7a</link>
      <guid>https://dev.to/javeiro/jdk-jvm-jre-para-que-serve--4m7a</guid>
      <description>&lt;h2&gt;
  
  
  JVM (JAVA VIRTUAL MACHINE)
&lt;/h2&gt;

&lt;p&gt;Java(codigo fonte)  -&amp;gt; compilador(javac) -&amp;gt; bytecode -&amp;gt; JVM = executar&lt;/p&gt;

&lt;p&gt;Quando passado o bytecode para a Java virtual machine, ela compreende seu código e interpreta e executa, então compreendemos que o código fonte é passado para o JAVAC e compilado e gerado um bytecode e quando passado para a JVM, ela interpreta e executa nas plataformas de software.&lt;/p&gt;

&lt;p&gt;JAVAC: então para sanar duvidas o JAVAC é o compilador primário da linguagem JAVA&lt;/p&gt;

&lt;p&gt;JRE(JAVA RUNTIME ENVIRONMENT)&lt;/p&gt;

&lt;p&gt;o JRE é composto por 2 partes, a JVM e bibliotecas e é utilizado para executar as aplicações da plataforma Java&lt;/p&gt;

&lt;h2&gt;
  
  
  o que compõe uma JVM ?
&lt;/h2&gt;

&lt;p&gt;Loader / Verificador&lt;/p&gt;

&lt;p&gt;Loader: é a parte interna da sua JVM que carrega o bytecode na memoria da maquina virtual.&lt;/p&gt;

&lt;p&gt;Verificador: ele faz uma verificação se o código pode ser interpretado sem nenhum problema.&lt;/p&gt;

&lt;h2&gt;
  
  
  Interpretador / Gerenciador / JIT
&lt;/h2&gt;

&lt;p&gt;Interpretador: Ele vai pegar seu código em ByteCode e transformar em código nativo&lt;br&gt;
do seu sistema operacional. na maquina que estiver ele converte o código em Bytecode&lt;br&gt;
em uma instrução que seu sistema operacional compreenda&lt;/p&gt;

&lt;p&gt;Gerenciador: Trata como os códigos e variáveis serão gerenciados dentro da JVM&lt;/p&gt;

&lt;p&gt;Compilador JIT: a cada trecho de código é traduzido no instante em que está para ser &lt;br&gt;
executado&lt;/p&gt;

&lt;h2&gt;
  
  
  JDK(JAVA DEVELOPMENT KIT)
&lt;/h2&gt;

&lt;p&gt;O JDK é composto pelo compilador e bibliotecas(API's) necessárias para criação de programas em Java, e ferramentas uteis para o desenvolvimento e para testes dos programas escritos por esta linguagem de programação.&lt;br&gt;
Dentro do JDK já temos incluso o JRE e todos seus componentes, a Java LANG e Java Tools e Debugger.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>java</category>
    </item>
    <item>
      <title>Configurações iniciais</title>
      <dc:creator>Javeiro</dc:creator>
      <pubDate>Mon, 07 Feb 2022 23:32:19 +0000</pubDate>
      <link>https://dev.to/javeiro/configuracoes-iniciais-1l1g</link>
      <guid>https://dev.to/javeiro/configuracoes-iniciais-1l1g</guid>
      <description>&lt;p&gt;Se você tem acompanhado os posts e seguidos os tutoriais, já deve ter o git em sua maquina local. Nesse momento vamos configurar o seu git e manter atualizado na sua maquina, essa configuração é dada apenas uma vez e não necessita de mais alterações, entretanto, nada impede de alterar caso seja necessário, com comandos simples já podemos altera-los novamente.&lt;/p&gt;

&lt;p&gt;A ferramenta que vamos utilizar é a &lt;u&gt;git config&lt;/u&gt; que permite definir variáveis de configuração que controlam todos os aspectos da aparência do Git. As variáveis se encontram em 3 lugares diferentes: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;[path]/etc/gitconfigfile: Contém valores aplicados a todos os usuários do sistema e a todos os seus repositórios. Se você passar a opção --system para git config, ele lê e grava especificamente no arquivo. Como este arquivo de configuração do sistema, você precisaria de privilégios administrativos de super usuários para fazer alterações nele.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;~/.gitconfigou ~/.config/git/configfile: Valores específicos para você o usuário, Você pode fazer o git ler e gravar neste arquivo especificamente passando a --global opção, e isso afeta todos os repositórios com os quais você trabalha em seu sistema.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;configfile no diretório Git(ou seja, .git/config) de qualquer repositório que você esteja usando atualmente: Especifico para esse único repositório. Você pode forçar o Git a ler e gravar neste arquivo com a --local opção, mas esse é o padrão. Sem essa surpresa, você precisa estar localizado em algum lugar em um repositório git para que esta opção funcione corretamente. &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Voce pode ver todas as suas configurações e de onde elas vêm usando:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$git config --list --show-origin&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sua Identidade&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Primeira coisa depois da instalação do git é definir o nome de usuario e endereço de email. É importante porque todos os commits usam essas informações e são incorporados naquilo que voce comeca a criar&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git config --global user.name "Darlan Onorio"&lt;/code&gt;&lt;br&gt;
&lt;code&gt;$ git config --global user.email "emailexemplo@exemplo.com"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Voce apenas precisa fazer isso uma vez na --global, a partir daí o git usara essa informação para qualquer informação que voce fizer no sistema. Se voce quiser substituir isso por um nome ou endereço diferente para projetos especificos, podera executar o comando sem a --global opção quando estiver no projeto.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Como Alterar o nome de filial padrão(branch)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Por padrão, o git criará uma branch chamado master quando você criar um novo repositório com git init. A partir da versão 2.28 do git. você pode definir um nome diferente para o branch inicial&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git config --global init.defaultBranch main&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verificando suas configurações&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Se você quiser verificar suas configurações, você pode usar o git config --list comando para listar todas as configurações que o git pode encontrar nesse ponto&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ git config --list&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

</description>
      <category>git</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Instalando git</title>
      <dc:creator>Javeiro</dc:creator>
      <pubDate>Mon, 31 Jan 2022 23:01:13 +0000</pubDate>
      <link>https://dev.to/javeiro/instalando-git-2669</link>
      <guid>https://dev.to/javeiro/instalando-git-2669</guid>
      <description>&lt;p&gt;Antes de começar a usar o git. Você precisa ter o software em sua maquina local, você pode instalar por meio de um pacote instalador executável.&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalando no Linux
&lt;/h2&gt;

&lt;p&gt;Se voce deseja instalar as ferramentas do git no linux, geralmente pode faze-lo por meio da ferramenta de gerenciamento de pacotes que acompanha sua distribuição. Se estiver no fedora(ou qualquer distribuição RPM relacionada com RHEL ou CentOS), voce pode usar dnf&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe9bc15jkvto0ege419j3.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe9bc15jkvto0ege419j3.gif" alt="Image description" width="800" height="352"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Caso esteja em uma distribuição baseada em debian, como Ubuntu, tente apt:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fylhmftwd9g7qt5xjkipd.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fylhmftwd9g7qt5xjkipd.gif" alt="Image description" width="800" height="352"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalando no Windows
&lt;/h2&gt;

&lt;p&gt;Existe também a maneira de instalar no windows. As versões mais recentes do software, você encontra no site oficial.&lt;/p&gt;

&lt;p&gt;link para download: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://git-scm.com/download/win"&gt;https://git-scm.com/download/win&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;logo depois, pode executar o instalador e prosseguir as etapas de instalação&lt;/p&gt;

</description>
      <category>git</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Linha de Comando</title>
      <dc:creator>Javeiro</dc:creator>
      <pubDate>Mon, 31 Jan 2022 15:14:39 +0000</pubDate>
      <link>https://dev.to/javeiro/linha-de-comando-551m</link>
      <guid>https://dev.to/javeiro/linha-de-comando-551m</guid>
      <description>&lt;p&gt;Existem muitas maneiras de usar o git. Desde interfaces gráficas a linhas de comando(vamos aprender isso). A linha de comando é onde vamos executar a maiorias do comandos git - existe as ferramentas do GUI, mas traz um pequeno subconjunto de ferramentas necessários para produção, afinal... o que é GUI ? de uma forma bem resumida, o GUI é uma interface gráfica que traz algumas funcionalidades com ele, mais a frente vamos abordar ele, portanto, não se preocupe se não entendeu totalmente. Prosseguindo, se você souber as funcionalidades da linha de comando do prompt, provavelmente sabe utilizar o GUI, e isso já não acontece quando contrario, logo, temos como foco aprender todas as funcionalidades do git para que você domine essa ferramenta poderosa.&lt;/p&gt;

&lt;p&gt;Portanto, espero que você já saiba ou já tenha tido contato com o prompt de comando ou powershell ou até mesmo no MacOS. Caso contrario procure alguns tutoriais básicos para sanar suas duvidas a prompt de comando e assim prosseguir com nossos estudos.&lt;/p&gt;

</description>
      <category>git</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>O que é Git</title>
      <dc:creator>Javeiro</dc:creator>
      <pubDate>Sat, 29 Jan 2022 04:22:39 +0000</pubDate>
      <link>https://dev.to/javeiro/o-que-e-git-29l9</link>
      <guid>https://dev.to/javeiro/o-que-e-git-29l9</guid>
      <description>&lt;p&gt;Ok... Então avançamos para essa parte importante, e a pergunta é o que é git ? Esta seção é bastante importante por que até certo ponto você já entendeu a historia do git e como foi aplicado outros softwares anteriores ao git. De fato estamos se aprofundando aos conceitos e entendendo como usa-lo efetivamente, será muito mais fácil para você. Não se atente ao primeiro momento sobre outros VCSs, CVS, SubVersion ou Peforce - com isso evitamos confundir ao usar a ferramenta. Embora sejam semelhantes a essas ferramentas, o Git pensa e performa de uma maneira muito diferente, e entender essas diferenças ajuda a evitar essas confusões.&lt;/p&gt;

&lt;h2&gt;
  
  
  Instantâneos, não diferenças
&lt;/h2&gt;

&lt;p&gt;O git tem uma característica que o destaca de outros CVS(Subversion e amigos) é a maneira de como pensado os seus dados. No geral os sistemas armazenam seus dados como uma lista de alterações com base em arquivo. Os outros sistemas (CVS, Subversion, Perforce, Bazaar e outros) consideram as informações como arquivos em conjunto e as alterações feitas em cada arquivo ao longo do tempo.&lt;/p&gt;

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

&lt;p&gt;Figura acima: Armazena dados como alterações em uma versão base de cada arquivo.&lt;/p&gt;

&lt;p&gt;O Git não pensa ou armazena os seus dados dessa maneira. O Git pensa em seus dados como uma serie de instantâneos de um sistema de arquivos em miniatura, para ficar mais claro o exemplo dado, voce pode pensar que toda a vez que você confirma ou salva o estado do seu projeto, o Git tira basicamente uma foto de como estão todos os seus arquivos naquele momento e armazena uma referencia a esse instantâneo. Garantindo mais eficiência, e caso esse arquivo não for alterado, o Git não armazena novamente, o git pensa como um fluxo de instantâneos.&lt;/p&gt;

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

&lt;p&gt;figura acima ilustra forma de armazenar dados como instantâneos do projeto ao longo do tempo.&lt;/p&gt;

&lt;p&gt;A diferença entre Git e quase todos os outros VCSs, é que quase todos os aspectos do Git foram reconsiderados em relação aos outros VCSs que somente copiaram de gerações anteriores. O Git vai muito além do que somente um VCS.&lt;/p&gt;

&lt;h2&gt;
  
  
  Maioria das operações são locais
&lt;/h2&gt;

&lt;p&gt;A maioria do fluxo de trabalho no git precisa apenas de arquivos e recursos locais para operar - normalmente não necessita de outra informação de outro computador em sua rede. E caso ainda tenha lembranças dos CVCS em que a maioria das vezes tenha operações com sobrecarga sobre latência de rede, com toda essa velocidade faz você tenha todo o histórico do git em seu disco local, as operações são quase instantânea.&lt;/p&gt;

&lt;p&gt;Para navegar no seu histórico por exemplo, você não precisa ir ao servidor e fazer toda a procura para exibi-lo, ele simplesmente lê o banco de dados local e o exibe. Tendo acesso ao histórico do projeto quase que instantâneo. E se tiver alguma alteração mais antiga no banco de dados local o git pode fazer o calculo para você e ter sua diferença local, em vez que ter que pedir autorização para um servidor ou vá até o servidor remoto antigo do arquivo remoto.&lt;/p&gt;

&lt;p&gt;Também significa que há muito pouco que NAO possa se fazer off-line ou sem VPN. você pode trabalhar de qualquer lugar e modificar o seu arquivo, até chegar em uma conexão de rede para fazer o upload. E caso você não consiga se conectar a rede, significa que consegue trabalhar normalmente no projeto até poder subir suas alterações. Em outros sistemas, fazer isso é impossível. No peforce, por exemplo, você não pode fazer muito quando não conectado no servidor, No subversion e no CVS, você pode editar arquivo, mas não pode enviar alterações para seu banco de dados(porque ele esta off-line). &lt;/p&gt;

&lt;h2&gt;
  
  
  Git tem integridade
&lt;/h2&gt;

&lt;p&gt;Tudo no Git passa por uma soma de verificação antes de ser armazenado e é então referenciado por essa soma de verificação. Isso significa que é imp0ossivel alterar o código antes que o git não saiba. Funcionalidade essa que foi adicionada ao Git nos níveis mais baixos e é parte principal de sua filosofia. Você não perde informações ou obtém arquivo corrompidos sem que o Git tenha detectado&lt;/p&gt;

&lt;p&gt;Mecanismo esse usado é chamado de hash SHA-1. abaixo tenho um exemplo de uma string de 40 caracteres composta por caracteres hexadecimais(0-9- e a-f) e calculada com de um diretorio git, um hash SHA-1, Se parece com isto: &lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    ``24b9da6552252987aa493b52f8696cd6d3b00373``
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Você vai encontrar números parecidos em todos os seus projetos, o Git armazena tudo em seu banco de dados não pelo nome do arquivo, e sim pelo valor do seu hash.&lt;/p&gt;

&lt;h2&gt;
  
  
  Git Geralmente apenas adiciona dados
&lt;/h2&gt;

&lt;p&gt;Quando você faz algo no Git, quase senão todas elas são adicionadas ao banco de dados Git. E dificilmente o sistema possa fazer algo que possa ser desfeito ou apague os dados de alguma forma. você pode perder alterações que ainda não fez, mas depois de fazer o commit de um SNAPSHOT no Git, é muito difícil perder, com maior dificuldade se você envia regularmente para seu banco de dados.&lt;/p&gt;

&lt;p&gt;E com isso torna o git mais seguro, sabendo que podemos alterar o arquivo tendo total consciência que podemos retornar ao estado anterior e recuperar todas as alterações.&lt;/p&gt;

&lt;h2&gt;
  
  
  Os Três Estados
&lt;/h2&gt;

&lt;p&gt;Três Estados principais que precisam ser lembrados no Git. modificado, preparado e confirmado.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Modificado: significa que você alterou alterou o arquivo, mas ainda não confirmou em seu banco de dados&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Staged: significa que você marcou um arquivo modificado em sua versão atual para entrar no snapshot do commit.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Comprometido: significa que os dados local estão guardados em seu banco de dados com segurança &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Figura: Área de trabalho, área de teste e diretório Git&lt;/p&gt;

&lt;p&gt;Arvore de trabalho é o único checkout da versão do projeto. Os arquivos são retirados do banco de dados compactado no diretório Git colocados no disco para você usar ou modificar.&lt;/p&gt;

&lt;p&gt;A área de teste é um arquivo, em geral esta em seu .git, e vai armazenar informações sobre seu próximo commit, o nome técnico dele é "índice".&lt;/p&gt;

&lt;p&gt;O diretório Git é onde armazena os metadados e o banco de dados de objetos do seu objetos do seu projeto. parte mais importante do Git, e é o que é copiado quando você clona um repositório de outro computador.&lt;/p&gt;

&lt;p&gt;fluxo de trabalho básico do git:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Você modifica arquivos em sua arvore de trabalho&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Você prepara seletivamente apenas as alterações que deseja que façam parte do seu próximo commit&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Você faz um commit, que pega os arquivos como eles estão na área de teste e armazena nesse snapshot permanentemente em seu diretório Git&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>git</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Historia do Git</title>
      <dc:creator>Javeiro</dc:creator>
      <pubDate>Fri, 28 Jan 2022 15:12:51 +0000</pubDate>
      <link>https://dev.to/javeiro/historia-do-git-4j04</link>
      <guid>https://dev.to/javeiro/historia-do-git-4j04</guid>
      <description>&lt;p&gt;&lt;strong&gt;Breve Historia do git&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O git já começa com uma historia bastante controvérsia e criativa.&lt;/p&gt;

&lt;p&gt;O kernel Linux é um projeto de código aberto. Durante os primeiros anos da manutenção do Linux(1991-2002), todas as mudanças eram passadas como patches e arquivos arquivados. Em 2002, o projeto começou a usar um DVCS proprietário chamado BitKeeper.&lt;/p&gt;

&lt;p&gt;Em 2005, o relacionamento entre ambos quebrou, e o status de gratuito foi revogado, ou seja, produziram um software com acesso por um tempo e logo depois decidiram o acesso pago. Isso levou a comunidade de desenvolvimento do linux(enfase ao Linus Torvalds, o criador do Linux) a desenvolver seu próprio software com base no que aprenderam com o BitKeeper. Objetivos do novo sistema foram : &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Velocidade&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Design Simples&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Forte suporte para desenvolvimento não linear(ramificações paralelas)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Totalmente distribuído&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Capaz de lidar com projetos grandes de forma eficiente(velocidade no tamanho dos dados)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Desde 2005 dada a criação do git, ele amadureceu para fácil usabilidade e manter as qualidades iniciais. É eficiente com projetos grandes e possui um sistema de ramificação com ótimo desempenho para desenvolvimento não linear.&lt;/p&gt;

</description>
      <category>git</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Introdução Sobre controle de versão</title>
      <dc:creator>Javeiro</dc:creator>
      <pubDate>Thu, 27 Jan 2022 21:55:09 +0000</pubDate>
      <link>https://dev.to/javeiro/introducao-sobre-controle-de-versao-4jhp</link>
      <guid>https://dev.to/javeiro/introducao-sobre-controle-de-versao-4jhp</guid>
      <description>&lt;p&gt;Este é o primeiro capítulo da ferramenta git. Começaremos com informações básicas sobre controle de versão, depois passaremos para como fazer rodar o git em seu sistema, logo depois, como configurar e começar a trabalhar com essa ferramenta que é essencial na vida dos programadores. No final dessa serie de artigos você devera ser capaz de entender por que git existe, porque deve usar e estar preparado para usa-lo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sobre o controle de versão
&lt;/h2&gt;

&lt;p&gt;O que você acredita ser controle de versão ? você acha que deve ser importante? Mas afinal... o que é controle de versão ?&lt;br&gt;
O controle de versão é um sistema que registra  arquivos ou conjunto de arquivos ao longo do tempo para que você possa recuperar versões anteriores do seu arquivo ou projeto posteriormente.&lt;/p&gt;

&lt;p&gt;Se você deseja manter versões de uma imagem ou código, o sistema de controle de versão (VCS) é o mais apropriado para isso.&lt;br&gt;
Com ele você pode reverter arquivos que não eram para alterar e recuperar para seu estado anterior, comparar alterações ao longo do tempo, ver quem modificou a ultima vez algo que estar causando problema, quem inseriu um problema no código ou solução também e muito mais.&lt;/p&gt;

&lt;p&gt;E usando um VCS significa que caso você estrague o projeto, com apenas um comando já retornara ao estado anterior e funcionando.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sistema de controle de versão local
&lt;/h2&gt;

&lt;p&gt;O método de controle de versão preferido de muitas pessoas é de copiar arquivos para outro diretório, ou seja apenas copiar toda a pasta e ter 2 arquivos. Essa forma de versionar é muito simples e comum, contudo fácil e propenso a erros. Por que é fácil esquecer o diretório original e assim gravar o projeto em outra pasta.&lt;/p&gt;

&lt;p&gt;Para lidar com esse tipo de problema, programadores há anos atrás desenvolveram VCSs locais que tinham um banco de dados simples que guardavam as alterações em arquivos sob controle de versão&lt;/p&gt;

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

&lt;p&gt;Naquele momento foi muito popular a ferramenta VCS chamada RCS, hoje ainda é distribuído em muitos computadores. O RCS funciona mantendo Patches, de modo geral, as diferenças de arquivos em um formato de disco.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sistemas de controle de versão Centralizados
&lt;/h2&gt;

&lt;p&gt;O problema que encontraram é que as pessoas precisam colaborar com desenvolvedores em outros sistemas. Com isso, foi desenvolvido Sistemas de Controle de Versão Centralizados(CVSs). Eles como os (CVS) tem um único servidor quem contem todos os arquivos, com versão de vários clientes, e sim, ele foi usado durante anos como versionador.&lt;/p&gt;

&lt;p&gt;Abaixo a figura ilustra o funcionamento : &lt;/p&gt;

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

&lt;p&gt;As Vantagens são que todos sabem até certo ponto o que todos no projeto estão fazendo. Os administradores tem controle sobre tudo, ou seja, quem pode fazer o que, e o que era mais fácil de lidar com esse tipo de trabalho.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Pontos negativos:&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;Suponhamos que o servidor fique inativo no período de 2 horas, dentro desse tempo você não pode colaborar ou salvar alterações no projeto. Caso o disco rígido seja corrompido, todas as alterações serão perdidas, absolutamente tudo no projeto será perdido, salvo aquelas que estão na maquina local de cada colaborador&lt;/p&gt;

&lt;h2&gt;
  
  
  Sistemas distribuídos de controle de versão
&lt;/h2&gt;

&lt;p&gt;Aqui falamos sobre os sistemas de controle de versão distribuidos(DVCSs). Em um DVCS(git, Darcs ou Mercurial), os clientes verificam não somente a ultima alteração de versionamento, mas sim como o todo histórico do projeto, e partes anteriores tendo o histórico completo. E caso algum servidor morrer e os sistemas estiver colaborando por meio desse servidor, Pode ser facilmente recuperado e copiado de volta para o servidor. Cada clone é um backup completo dos dados&lt;/p&gt;

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

</description>
      <category>git</category>
    </item>
  </channel>
</rss>
