Uso de Git con Visual Studio

Como usuario de Visual SourceSafe desde hace mucho tiempo (y que lo odia) estaba discutiendo el cambio a SVN con un colega; él sugirió usar Git en su lugar. Ya que, aparentemente, se puede utilizar como peer-to-peer sin un servidor central (somos un equipo de 3 desarrolladores).

Sin embargo, no he podido encontrar nada sobre herramientas que integren Git con Visual Studio, ¿existe algo así?

¿Cuáles son las tecnologías disponibles para utilizar Git con Visual Studio? ¿Y qué necesito saber sobre las diferencias entre ellas antes de empezar?

Solución

En enero de 2013, Microsoft anunció que está añadiendo soporte completo para Git en todos sus productos ALM. Han publicado un plugin para Visual Studio 2012 que añade la integración del control de fuentes Git.

Alternativamente, hay un proyecto llamado Git Extensions que incluye complementos para Visual Studio 2005, 2008, 2010 y 2012, así como la integración del Explorador de Windows. Se actualiza con regularidad y, tras haberlo utilizado en un par de proyectos, me ha resultado muy útil.

Otra opción es Git Source Control Provider.

Comentarios (21)

Yo uso Git con Visual Studio para mi puerto de Buffers de Protocolo a C#. No utilizo la interfaz gráfica de usuario - Sólo mantengo una línea de comandos abierta, así como Visual Studio.

En su mayor parte está bien - el único problema es cuando se quiere cambiar el nombre de un archivo. Tanto Git como Visual Studio prefieren que sean ellos los que cambien el nombre. Creo que renombrar en Visual Studio es el camino a seguir - sólo ten cuidado con lo que haces en el lado de Git después. Aunque esto ha sido un poco de un dolor en el pasado, he oído que en realidad debe ser bastante sin problemas en el lado de Git, porque puede notar que el contenido será en su mayoría el mismo. (No totalmente igual, normalmente - tiendes a renombrar un archivo cuando estás renombrando la clase, IME).

Pero básicamente - sí, funciona bien. Soy un novato en Git, pero puedo conseguir que haga todo lo que necesito. Asegúrate de tener un archivo git ignore para bin y obj, y *.user.

Comentarios (13)

Encuentro que Git, al trabajar en árboles completos como lo hace, se beneficia menos de la integración con el IDE que las herramientas de control de fuentes que se basan en archivos o siguen un patrón de checkout-edit-commit. Por supuesto, hay casos en los que puede ser agradable hacer clic en un botón para hacer algún examen de la historia, pero no echo mucho de menos eso.

Lo que realmente hay que hacer es tener tu archivo .gitignore lleno de las cosas que no deberían estar en un repositorio compartido. El mío generalmente contiene (entre otras cosas) lo siguiente:

*.vcproj.*.user
*.ncb
*.aps
*.suo

pero esto está fuertemente sesgada C ++ con poco o ningún uso de cualquier funcionalidad de estilo asistente de clase.

Mi patrón de uso es algo como lo siguiente.

  1. Código, código, código en Visual Studio.

    1. Cuando esté satisfecho (punto intermedio sensato para confirmar el código, cambiar a Git, poner en escena los cambios y revisar las diferencias. Si algo está obviamente mal, vuelve a Visual Studio y corrige, si no, confirma.

Cualquier fusión, rama, rebase u otras cosas SCM de lujo es fácil de hacer en Git desde el símbolo del sistema. Visual Studio es normalmente bastante feliz con las cosas que cambian bajo él, aunque a veces puede necesitar recargar algunos proyectos si usted ha alterado los archivos del proyecto de manera significativa.

Creo que la utilidad de Git supera cualquier inconveniente menor de no tener una integración completa con el IDE, pero es, hasta cierto punto, una cuestión de gustos.

Comentarios (10)