2009-04-11 15 views
31

Utilizo para trabajar con Visual Studio + C#, y he estado usando svn antes, pero no actualmente, así que quiero poner mi código nuevamente en el control de la fuente.¿Por qué debería usar git en lugar de svn?

Recientemente oí hablar de Git, y he estado leyendo el wiki de Git y this y this, y he leído que no hay clientes GUI para git como TortoiseSVN, o al menos, no he found'em.

Mis preguntas son:

  • ¿Cuáles son las ventajas de más de git svn
  • ¿Dónde puedo encontrar frOnTenDs fácil de usar para Git.
  • ¿Hay algún complemento (ANKH) para git que funcione con Visual Studio?
  • ¿Dónde más puedo encontrar recursos para comenzar con git?
+0

Puede encontrar esta pregunta interesante: http://stackoverflow.com/questions/26845/do-you-use-distributed-version-control –

+0

Vea también http://stackoverflow.com/questions/871/why- is-git-better-than-subversion –

+0

Hace un tiempo, hice un comentario en la página wiki de git que mencionaste. Según http://svnvsgit.com/, es injusto. OMI, en el estado actual, no proporciona una comparación equitativa de ninguna manera. – bahrep

Respuesta

21

Aquí mis experiencias personales con git vs SVN:

  • Git vs SVN: pistas git estado, la historia y la integridad de la estructura de directorios. SVN solo rastrea el estado.

Especialmente cuando se fusiona, el uso extensivo de git del historial almacenado (a través de renombrados y fusiones) es útil para tomar decisiones mucho mejor informadas que conducen a menos conflictos.

Tener una cadena de integridad completa, criptográficamente verificable a través del repositorio ayuda a generar confianza en los sistemas subyacentes, o detectar cuando fallan. En el lado negativo, puede ser complicado crear parches "limpios". Tener un flujo de trabajo adecuado ayuda.

Finalmente, git funciona localmente de forma predeterminada, lo que le da un impulso increíblemente grande en contraste con SVN, que debe ir al repositorio central para casi cualquier operación.

  • software: Ver this question, hay varias interfaces gráficas de usuario independientes para trabajar con el repositorio, los navegadores de la historia y las extensiones de shell.

  • Studio Plugin:GitExtensions tiene un plugin de Visual Studio 2005 y 2008.

  • Documentación: Comience con la GIT User's Manual. Hay más enlaces a tutoriales y libros en git-scm.com.

+4

Git es un VCS distribuido; Subversion a VCS centralizado. Pero ambos comprueban el estado, la historia y la integridad de la garantía ... pero de diferentes maneras. –

+0

SVN no notará cambios accidentales o maliciosos en la tienda repo y SVN rastrea el "historial" como una serie desconectada de parches sin mucho pedigrí. Intente fusionar varias veces entre dos ramas en SVN, creará conflictos para todos los cambios ya fusionados. –

+1

Ah .. usaste una subversión de más de un año de antigüedad? (El seguimiento de fusión está disponible desde 1.5, la actual es 1.6) ¿Asumo que su git está desactualizado también? Y como usuario, puede verlo como una serie de parches (lo mismo se aplica a git). Internamente, la subversión no lo ve de esta manera. –

8

Hay un relevante question sobre herramientas para GIT similar a la tortuga.

Las ventajas de GIT más de SVN se discuten over y over así que no es algo que alguien debe elaborar aquí

Y en cuanto a un estudio plug-in Visual, no creo que hay, o serán uno desde hace bastante hora. Sin embargo, tal vez me falta algo aquí.

Trate here para una buena guía sobre cómo empezar a trabajar con Git en Windows

En cuanto a mi gusto totalmente personal y ver, sigo a pegarse a svn basado en mis necesidades personales de lo que quiero de mi control de versiones y considero que svn se encuentra en un nivel completamente diferente de soporte de herramienta y comunidad. También considero a svn muy maduro y eso no necesariamente significa que git no hace el trabajo.

+0

+1 para no hash sobre los argumentos git vs svn una y otra vez. – Abizern

+0

git parece ser considerado relativamente nuevo. Si te sirve de consuelo, estoy en una Mac y el entorno de desarrollo de Xcode tampoco tiene soporte para git (como lo hace para svn). – Abizern

+0

Sí, he estado usando svn por bastante tiempo y nunca me ha decepcionado hasta ahora. Sin querer sonar un fan de Windows, considero que git está en mejores términos en Linux que en cualquier otro entorno de sistema operativo * duh * – Konstantinos

5

TortoiseGit está disponible - sólo Google él (no puedo recordar la URL) Y:

  • siendo distribuido, que no necesita estar conectado a un servidor todo el tiempo, el trabajo acaba localmente y push cuando lo necesite.

  • Es muy rápido y no utiliza mucho ancho de banda

  • Y, el clásico, si es lo suficientemente bueno para Linus, es lo suficientemente bueno para ti :)

Actualización: Link to TortoiseGit

3

No he usado git, pero utilicé svn y bazaar (que es similar en filosofía a git), por lo que puedo responderle en términos generales.

La ventaja de los llamados sistemas de control de versiones distribuidas (DVCS) es que el repositorio y el código están juntos en su máquina, y usted no depende de un repositorio remoto para las operaciones. Cada desarrollador tiene una "sucursal", su propia copia del informe al que se compromete. Puedes comprometer, revertir, verificar revisiones previas, sin estar conectado a la red. La oficialidad del repositorio se otorga en virtud del acuerdo humano, no de la configuración técnica.En svn, solo tiene un repositorio, que es _el_repo_ al que usted y todas las demás personas se comprometen. En DVCS, usted se compromete con su propio repositorio y con otro desarrollador para su propio repositorio, y cada uno de ustedes puede enviar sus modificaciones al repositorio oficial cuando lo desee.

Otra clara ventaja es que las operaciones en un DVCS son rápidas, extremadamente rápidas. svn se vuelve increíblemente lento cuando comienzas a tener muchas cosas en tu repositorio. Esto puede volverse molesto muy pronto.

Por el lado negativo, los DVCS son más difíciles de usar, pero puede usar un DVCS como un VCS centralizado si lo desea.

7

No quiero hash sobre los pros y contras de git vs svn pero aquí hay un conjunto simple de comparaciones: - Why Git is better than X.

algunos buenos recursos Git:

  1. Git Ready. Una especie de blog con pequeñas publicaciones sobre los usos para principiantes, intermedios y avanzados de git.
  2. Git Magic. Un buen repaso de lo que puedes hacer.
  3. GitCasts screencasts - nada como verlo en acción para ayudarte a entender su poder. Incluyendo el útil screencast de Git On Windows.

Have fun!

+0

¿Se ha asumido ese dominio? El contenido actual en http://whygitisbetterthanx.com/ no es algo a lo que me gustaría vincular o upvote – WiseOldDuck

2

no estoy seguro de lo que la estabilidad de TortoiseGit Es en esta etapa, y cuando se está hablando de algo que se integra con el Explorador íntimamente que esta es una consideración importante. ¿Alguien puede hablar de esto?

También tenga en cuenta que git no es la única opción si busca los beneficios de un VCS distribuido. Git tiene las virtudes gemelas de ser muy poderoso y también muy complicado. Es posible que encuentre otro DVCS como Bazaar o Mercurial, una transición más fácil para aprovechar los beneficios de un sistema distribuido. Ambos tienen tortoiseinterfaces en desarrollo, pero una vez más, no estoy seguro de su estabilidad. (S Bazaar está incluido en su paquete de ventanas sin embargo, lo que podría suponer que está en una razonablemente buena etapa.)

Una búsqueda rápida también ha aparecido VisualHg y Bzr-VisualStudio aunque no tengo ni idea de su disposición a ser utilizado en la ira . Caveat Emptor.

+0

TortoiseGIT, desafortunadamente, es bastante inestable. Lo usé, y, por lo que puedo decir: arruinó mi repositorio. Tuve que volver a clonar desde Github, y ninguno de los comandos funcionó. :-(Bueno, con suerte se volverá más estable a medida que pase el tiempo, sería una herramienta realmente útil. –

+0

@ person-b, he estado usando TortoiseGIT porque me lo recomendaron aquí, pero no parece para mí tampoco, ¿qué otra guía recomiendas para git? –

2

¿Cuáles son las ventajas de git svn sobre

Antes de decidir si se debe usar Git o SVN, asegúrese de que usted entiende completamente sus necesidades y entender lo Git y SVN proporcionan y apoyo. Desafortunadamente, hay un montón de sesgo injusto en el tema de Git y SVN, por lo que descubrí recientemente en http://svnvsgit.com/.

Cito uno de los que responden aquí (@Konstantinos):

Las ventajas de GIT más de SVN se discuten una y otra vez por lo que no algo que alguien debe elaborar aquí

Este pregunta fue hecha hace casi 7 años. Pero el tema sigue siendo un poco caliente o cálido al menos. Recientemente me encontré con la página http://svnvsgit.com y me sentí un poco frustrado al descubrir que, de hecho, la mayoría de las comparaciones y pruebas de Git y SVN en Internet se basan en información extraña como la del repositorio de Mozilla que es muy grande en SVN. Esto simplemente no es cierto y la mayoría de los puntos descritos en http://git.or.cz/gitwiki/GitSvnComparsion son injustos o incorrectos.

O aquí es una cita de @DavidSchmitt (uno de los que responden):

Git vs SVN: pistas git estado, la historia y la integridad de la fuente árbol. SVN solo rastrea el estado.

SVN y Git garantizan la integridad de los datos (SVN lo hace mucho mejor IMO). Tanto el historial de seguimiento como el estado.

La única diferencia real entre SVN y Git es que Subversion está centralizada y Git está descentralizada. Subversion admite algunos conceptos, flujos de trabajo y casos que Git no puede admitir por diseño. Al mismo tiempo, la naturaleza desconectada de Git puede ser un gran beneficio para alguien.

¡Elija sabiamente!

0

Como otros señalaron que git es más rápido y más estable. Se distribuye vs centralizado, en svn si juegas con el repositorio central lo pierdes todo. En mi experiencia, hay menos problemas cuando fusionas código con git.

Solo hay una cosa que no me gusta. Es que no puedes descargar una parte de un repositorio con git. Si solo necesita una carpeta, deberá descargar todo el repositorio. Puedes hacer esto con svn.

+0

¿Qué quieres decir exactamente con "mess the central repo"? ¡Debes tratar el repositorio central como tu máquina del tiempo! Además, las corrupciones de repo en SVN son muy raras y en la mayoría de los casos tienen una causa raíz relacionada con el hardware. Las operaciones del cliente o usuario de Subversion nunca rompen el repositorio SVN. – bahrep

+0

Olvidé una vez que tenía mi repo central en mi computadora. Luego formateé la computadora :-) bye bye repo –

+0

si tenía su repositorio de Git local en su computadora y formateó la unidad, también habría perdido su código fuente y otro trabajo guardado allí. Estás confundiendo copia de trabajo de subversión con git repo, supongo. – bahrep

1

Git parece ser ahora el estándar de la industria para el control de versiones, reemplazando SVN y CVS, etc. Git desde la perspectiva del usuario da lugar a más características y ayuda a administrar los cambios de código mejor que SVN. También es más fácil configurar repositorios gracias a sitios como GitHub y BitBucket en lugar de necesitar su propio servidor.

Git es fácil de ejecutar en la línea de comandos (muchos más comandos de helfpul que SVN). También hay una gama de buenos programas de GUI que ayudan a proporcionar un buen front-end a su repositorio de Git, GitHub Desktop y SourceTree para nombrar un par.

Cuestiones relacionadas