Olá! No momento, esta página ainda está sendo desenvolvida ou traduzida. Para obter as informações mais recentes, acesse a documentação em inglês.
Versão do artigo: Enterprise Server 2.15

Esta versão do GitHub Enterprise será descontinuada em Esta versão do GitHub Enterprise foi descontinuada em 2019-10-16. No patch releases will be made, even for critical security issues. For better performance, improved security, and new features, upgrade to the latest version of GitHub Enterprise. For help with the upgrade, contact GitHub Enterprise support.

Diferenças entre o Subversion e o Git

Os repositórios do Subversion (SVN) são semelhantes aos do Git, mas com várias diferenças em relação à arquitetura dos projetos.

Estrutura do diretório

Cada referência ou instantâneo etiquetado de um commit em um projeto é organizado em subdiretórios específicos, como trunk, branches e tags. Por exemplo, um projeto do SVN com dois recursos em desenvolvimento pode ter esta aparência:

  sample_project/trunk/README.md
  sample_project/trunk/lib/widget.rb
  sample_project/branches/new_feature/README.md
  sample_project/branches/new_feature/lib/widget.rb
  sample_project/branches/another_new_feature/README.md
  sample_project/branches/another_new_feature/lib/widget.rb

Um fluxo de trabalho do SVN fica assim:

Os projetos do Git também são armazenados em um único diretório. No entanto, o Git obscurece os detalhes das referências armazenando-os em um diretório .git especial. Por exemplo, um projeto do Git com dois recursos em desenvolvimento pode ter esta aparência:

  sample_project/.git
  sample_project/README.md
  sample_project/lib/widget.rb

Um fluxo de trabalho do Git fica assim:

Ao contrário do SVN, a estrutura de diretórios no Git permanece a mesma, mas o conteúdo dos arquivos é alterado de acordo com o branch que você possui.

Incluir subprojetos

Um subprojeto é um projeto desenvolvido e gerenciado em algum lugar fora do projeto principal. Normalmente, você importa um subprojeto para adicionar alguma funcionalidade ao seu projeto sem precisar manter o código por conta própria. Sempre que o subprojeto é atualizado, você pode sincronizá-lo com o projeto para garantir que tudo esteja atualizado.

No SVN, um subprojeto é chamado de SVN externo. No Git, ele é chamado de submódulo do Git. Embora conceitualmente semelhantes, os submódulos do Git não são mantidos atualizados de forma automática. É preciso solicitar explicitamente que uma nova versão seja trazida para o projeto.

Veja a seguir alguns recursos externos que explicam as diferenças em detalhes:

Preservar o histórico

O SVN está configurado para pressupor que o histórico de um projeto nunca é alterado. O Git permite modificar alterações e commits anteriores usando ferramentas como git rebase.

O GitHub oferece suporte a clientes do Subversion, o que pode produzir alguns resultados inesperados se você está usando o Git e o SVN no mesmo projeto. Se você tiver manipulado o histórico de commits do Git, esses mesmos commits permanecerão para sempre no histórico do SVN. Caso tenha feito commit acidentalmente em alguns dados confidenciais, temos um artigo para ajudar você a removê-lo do histórico do Git.

Leia mais

Pergunte a uma pessoa

Não consegue encontrar o que procura?

Entrar em contato