Diferença entre Git e SVN

Git vs SVN

Git e SVN são ambos software. Git é SCM, gerenciamento de código-fonte e um sistema de controle de revisão distribuído. SVN é um sistema de controle de revisão e versão de software.

 Git é um SCM com ênfase principal na velocidade. Foi desenvolvido para o kernel Linux por Linus Torvalds. Possui um repositório com capacidades de rastreamento de revisão e histórico completo. Este repositório não depende de um servidor central ou acesso à rede. É um software livre. O Git é distribuído sob o GNU, e sua manutenção é supervisionada por Junio ​​Hamano. O Apache Subversion, ou SVN, é distribuído sob a licença de código aberto. É um VCS não distribuído, sistema de controle de versão. Ele não possui um repositório centralizado ou um servidor centralizado. É usado principalmente para manter versões históricas e atuais de código fonte, documentação e páginas da Web. O principal objetivo do SVN é ser usado como sucessor do CVS, Concurrent Version System. Foi desenvolvido por CollabNet, Inc.

 O conteúdo armazenado no Git são metadados. Ele armazena o conteúdo na pasta chamada pasta .git, que tem um tamanho maior. A pasta .git na máquina é o repositório clonado. A pasta consiste em todas as tags, histórico de versões, ramificações etc., como no repositório central; O SVN armazena arquivos. Eles não têm um repositório clonado.

 Os ramos do Git são mais fáceis de trabalhar. O sistema ajuda a mesclar os arquivos rapidamente e também ajuda a encontrar os não imersos; as ramificações SVN são na verdade uma pasta presente no repositório. Para mesclar as ramificações, comandos especiais são necessários.

 O SVN possui um número de revisão global; o número da revisão é um instantâneo do código-fonte; Git não tem isso.

 Git possui conteúdo criptograficamente hash. Isso é feito pelo uso de um algoritmo chamado algoritmo de hash SHA1. Esse recurso ajuda a proteger o conteúdo da corrupção do repositório que ocorre devido a problemas de rede ou falhas de disco.

Resumo:

  1. Git é um VCS distribuído; SVN é um VCS não distribuído.
  2. O Git tem um servidor e repositório centralizados; O SVN não possui um servidor ou repositório centralizado.
  3. O conteúdo do Git é armazenado como metadados; SVN armazena arquivos de conteúdo.
  4. Ramificações Git são mais fáceis de trabalhar do que ramificações SVN.
  5. O Git não possui o recurso de número de revisão global, como o SVN.
  6. O Git tem melhor proteção de conteúdo que o SVN.
  7. O Git foi desenvolvido para o kernel Linux por Linus Torvalds; SVN foi desenvolvido por CollabNet, Inc.
  8. O Git é distribuído sob GNU, e sua manutenção é supervisionada por Junio ​​Hamano; O Apache Subversion, ou SVN, é distribuído sob a licença de código aberto.