Como usuario de Visual SourceSafe desde hace mucho tiempo (y que odia), estaba discutiendo cambiar a SVN con un colega; sugirió usar Git en su lugar. Dado que, aparentemente, se puede usar como punto a punto sin un servidor central (somos un equipo de 3 desarrolladores).
Sin embargo, no he podido encontrar nada sobre las herramientas que integran Git con Visual Studio: ¿existe tal cosa?
¿Cuáles son las tecnologías disponibles para usar Git con Visual Studio? ¿Y qué necesito saber acerca de cómo difieren antes de comenzar?
visual-studio
git
Hierba caudill
fuente
fuente
Respuestas:
En enero de 2013, Microsoft anunció que agregarán soporte completo de Git en todos sus productos ALM. Han publicado un complemento para Visual Studio 2012 que agrega la integración de control de código fuente de Git.
Alternativamente, hay un proyecto llamado Git Extensions que incluye complementos para Visual Studio 2005, 2008, 2010 y 2012, así como la integración de Windows Explorer. Se actualiza regularmente y, después de haberlo utilizado en un par de proyectos, me ha resultado muy útil.
Otra opción es Git Source Control Provider .
fuente
Uso Git con Visual Studio para mi puerto de Protocol Buffers a C #. No uso la GUI, solo mantengo una línea de comando abierta y Visual Studio.
En su mayor parte está bien: el único problema es cuando desea cambiar el nombre de un archivo. Tanto Git como Visual Studio preferirían que fueran ellos quienes le cambiaran el nombre. Sin embargo, creo que renombrarlo en Visual Studio es el camino a seguir: solo tenga cuidado con lo que hace en el lado de Git después. Aunque esto ha sido un poco doloroso en el pasado, he oído que en realidad debería ser bastante transparente en el lado de Git, porque puede notar que el contenido será prácticamente el mismo. (No es exactamente lo mismo, por lo general, tiende a cambiar el nombre de un archivo cuando cambia el nombre de la clase, IME).
Pero básicamente, sí, funciona bien. Soy un novato de Git, pero puedo lograr que haga todo lo que necesito. Asegúrese de tener un archivo git ignore para bin y obj, y * .user.
fuente
Git Source Control Provider es un nuevo complemento que integra Git con Visual Studio.
fuente
He investigado esto un poco en el trabajo (tanto con Subversion como con Git). Visual Studio en realidad tiene una API de integración de control de código fuente que le permite integrar soluciones de control de código fuente de terceros en Visual Studio. Sin embargo, la mayoría de las personas no se molestan por un par de razones.
La primera es que la API casi asume que estás usando un flujo de trabajo de pago bloqueado. Hay muchos ganchos que son costosos de implementar, o simplemente no tienen sentido cuando está utilizando el flujo de trabajo de edición-fusión más moderno.
El segundo (que está relacionado) es que cuando utiliza el flujo de trabajo de edición-combinación que tanto Subversion como Git fomentan, realmente no necesita la integración de Visual Studio. Lo más importante de la integración de SourceSafe con Visual Studio es que usted (y el editor) pueden saber de un vistazo qué archivos posee, cuáles deben desprotegerse antes de poder editarlos y cuáles no puede desproteger, incluso si lo desea. Entonces puede ayudarte a hacer cualquier vudú de control de revisión que necesites hacer cuando quieras editar un archivo. Nada de eso es parte de un flujo de trabajo típico de Git.
Cuando usa Git (o SVN normalmente), todas sus interacciones de control de revisión tienen lugar antes de su sesión de desarrollo o después (una vez que tiene todo funcionando y probado). En ese punto, realmente no es demasiado doloroso usar una herramienta diferente. No tienes que cambiar constantemente de un lado a otro.
fuente
Me parece que Git, trabajando en árboles enteros como lo hace, se beneficia menos de la integración IDE que las herramientas de control de origen que están basadas en archivos o siguen un patrón de pago-edición-confirmación. Por supuesto, hay casos en los que puede ser bueno hacer clic en un botón para hacer un examen de historia, pero no lo extraño mucho.
El verdadero deber es hacer que su archivo .gitignore esté lleno de cosas que no deberían estar en un repositorio compartido. Los míos generalmente contienen (entre otras cosas) lo siguiente:
pero esto está fuertemente sesgado en C ++ con poco o ningún uso de ninguna funcionalidad de estilo de asistente de clase.
Mi patrón de uso es similar al siguiente.
Código, código, código en Visual Studio.
Cuando esté contento (punto intermedio sensato para confirmar código, cambie a Git, cambie de escenario y revise las diferencias. Si algo está obviamente mal, vuelva a Visual Studio y corríjalo, de lo contrario, confirme.
Cualquier combinación, rama, rebase u otro material SCM elegante es fácil de hacer en Git desde el símbolo del sistema. Visual Studio normalmente está bastante contento con las cosas que cambian debajo de él, aunque a veces puede necesitar volver a cargar algunos proyectos si ha alterado significativamente los archivos del proyecto.
Me parece que la utilidad de Git supera cualquier inconveniente menor de no tener una integración IDE completa, pero es, en cierta medida, una cuestión de gustos.
fuente
git rm <file>
yecho <file> >>.gitignore; git add .gitignore
sobre las puntas de sus ramas activas. Una vez que haya confirmado el cambio, siempre podrá elegir la solución en otras ramas.Microsoft anunció Git para Visual Studio 2012 (actualización 2) recientemente. Todavía no he jugado con él, pero este video parece prometedor.
Aquí hay un rápido tutorial sobre cómo usar Git de Visual Studio 2012.
fuente
Tampoco te pierdas TortoiseGit ... https://tortoisegit.org/
fuente
Hay un Visual Studio Tools para Git de Microsoft. Sin embargo, solo es compatible con Visual Studio 2012 (actualización 2).
fuente
Visual Studio 2013 admite de forma nativa Git.
Ver el anuncio oficial .
fuente
El soporte de Git realizado por Microsoft en Visual Studio es lo suficientemente bueno para el trabajo básico (commit / fetch / merge and push). Mi consejo es solo evitarlo ...
Prefiero GitExtensions (o en menor proporción SourceTree ). Porque viendo el DAG es realmente importante para mí entender cómo funciona Git. ¡Y usted es mucho más consciente de lo que han hecho los otros contribuyentes a su proyecto!
En Visual Studio, no puede ver rápidamente la diferencia entre archivos o confirmación, ni (agregar al índice) y confirmar solo una parte de las modificaciones. Examinar tu historial tampoco es bueno ... ¡Todo eso termina en una experiencia dolorosa!
Y, por ejemplo, GitExtensions está incluido con complementos interesantes: búsqueda de fondo, GitFlow, ... y ahora, integración continua ¡ !
Para los usuarios de Visual Studio 2015 , Git está tomando forma si instala la extensión GitHub. Pero una herramienta externa es aún mejor ;-)
fuente
TortoiseGit ha madurado y lo recomiendo especialmente si ha utilizado TortoiseSVN.
fuente
La última versión de Git Extensions es compatible con Visual Studio 2010 ahora (junto con Visual Studio 2008 y Visual Studio 2005 ).
Me pareció bastante fácil de usar con Visual Studio 2008 y la interfaz parece ser la misma en Visual Studio 2010.
fuente
La solución más simple que realmente funciona bastante bien es agregar los comandos de TortoiseGit como herramientas externas.
Solución para agregar una barra de herramientas Git (TortoiseGit) a Visual Studio
fuente
Según lo mencionado por Jon Rimmer, puede usar GitExtensions. GitExtensions funciona en Visual Studio 2005 y Visual Studio 2008, también funciona en Visual Studio 2010 si copia y configura manualmente el archivo .Addin.
fuente
Actualmente hay 2 opciones para Git Source Control en Visual Studio (2010 y 12):
He intentado ambos y he encontrado que el primero es más maduro y tiene más funciones. Por ejemplo, juega muy bien con git de tortuga y con extensiones de git, e incluso expone sus características.
Nota : Independientemente de la extensión que utilice, asegúrese de habilitarla
Tools -> Options -> Source control -> Plugin Selection
para que funcione.fuente
A partir del 2013-02-11, el complemento Microsoft Git para Visual Studio 2012 también debería funcionar con la versión Express .
fuente