Frecuentemente publicamos actualizaciones de nuestra documentación. Es posible que la traducción de esta página esté en curso. Para conocer la información más actual, visita la documentación en inglés. Si existe un problema con las traducciones en esta página, por favor infórmanos.
Versión del artículo: Enterprise Server 2.15

Esta versión de GitHub Enterprise se discontinuará el Esta versión de GitHub Enterprise se discontinuó el 2019-10-16. No se realizarán lanzamientos de patch, ni siquiera para problemas de seguridad críticos. 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.

¿Cuáles son las diferencias entre Subversion y Git?

Los repositorios de Subversion (SVN) son similares a los repositorios de Git, pero hay diferencias cuando se refiere a la arquitectura de tus proyectos.

Estructura del directorio

Cada referencia, o instantánea etiquetada de una confirmación, en un proyecto se organiza dentro de subdirectorios específicos, como tronco, ramas y etiquetas. Por ejemplo, un proyecto SVN con dos características bajo desarrollo debería parecerse a esto:

  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

Un flujo de trabajo SVN se parece a esto:

Los proyectos de Git también se almacenan dentro de un directorio único. Sin embargo, Git oculta los detalles de sus referencias al almacenarlos en un directorio .git especial. Por ejemplo, un proyecto Git con dos características bajo desarrollo debería parecerse a esto:

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

Un flujo de trabajo Git se parece a esto:

A diferencia de SVN, con Git la estructura del directorio permanece igual, pero los contenidos de los archivos cambia en base a tu rama.

Incluir los subproyectos

Un subproyecto es un proyecto que se ha desarrollado y administrado en algún lugar fuera del proyecto principal. Normalmente importas un subproyecto para agregar alguna funcionalidad a tu proyecto sin necesidad de mantener el código. Cada vez que el proyecto se actualiza, puedes sincronizarlo con tu proyecto para garantizar que todo esté actualizado.

En SVN, un subproyecto se llama un SVN externo. En Git, se llama un submódulo Git. A pesar de que conceptualmente son similares, los submódulos Git no se mantienen actualizados de forma automática; debes solicitar explícitamente que se traiga una nueva versión a tu proyecto.

Algunos ejemplos de recursos externos que explican las diferencias con mayor detalle:

Mantener el historial

SVN está configurado para suponer que el historial de un proyecto nunca cambia. Git te permite modificar cambios y confirmaciones previas utilizando herramientas como git rebase.

GitHub admite clientes de Subversion, lo que puede generar algunos resultados inesperados si estás utilizando tanto Git como SVN en el mismo proyecto. Si has manipulado el historial de confirmación de Git, esas mismas confirmaciones siempre permanecerán dentro del historial de SVN. Si accidentalmente confirmaste algunos datos confidenciales, hay un artículo que te ayudará a eliminarlo del historial de Git.

Leer más

Pregunta a una persona

¿No puedes encontrar lo que estás buscando?

Contáctanos