Cómo Visual Studio facilita el control de versiones con Git

¿Alguna vez ha deseado volver a una versión anterior de su código que funcionara? ¿Tiene que almacenar manualmente copias del código en diferentes ubicaciones como medida de seguridad? El control de versiones es la respuesta.

Git es el sistema de control de versiones moderno más usado. Con Git, puede realizar un seguimiento de los cambios de código que realice con el tiempo y revertir a versiones específicas. Así que, tanto si es un desarrollador profesional como si está aprendiendo a codificar, la experiencia de Git de Visual Studio le puede resultar muy útil.

Sugerencia

Para obtener información sobre el uso de Git y GitHub en Visual Studio, regístrese en la serie de aprendizaje de Git.

Primeros pasos con Git y GitHub en Visual Studio

El control de versiones con Visual Studio es sencillo con Git. Nos reuniremos allí donde se encuentre. Puede trabajar de forma remota con el proveedor de Git que prefiera, como GitHub o Azure DevOps. También puede trabajar en modo local sin ningún proveedor.

Para empezar a usar Git con Visual Studio:

  • Si tiene un repositorio Git hospedado en un proveedor de Git como GitHub, clone el repositorio en el equipo local.

  • De lo contrario, cree fácilmente un repositorio de Git y agregue el código. Si aún no tiene un proveedor de Git, se recomienda comenzar con GitHub, ya que la experiencia de Git en Visual Studio está optimizada para este proveedor. GitHub ofrece almacenamiento de código en la nube gratuito y seguro donde puede guardar su código y acceder a él desde cualquier dispositivo y en cualquier lugar.

No solo puede agregar cuentas GitHub y GitHub Enterprise a la cadena de claves, sino que también puede aprovecharlas igual que con las cuentas de Microsoft. Si no tiene una cuenta de GitHub, siga estos pasos para crear una cuenta de GitHub a fin de usarla con Visual Studio ahora.

Si ha empezado a usar Git recientemente, el sitio web https://git-scm.com/ es un buen punto de partida.

Screenshot of the Create a Git Repository dialog box in Visual Studio.

Vista de archivos en el Explorador de soluciones

Al clonar un repositorio o abrir un repositorio local, Visual Studio cambia al contexto de Git. El Explorador de soluciones carga la carpeta en la raíz del repositorio de Git y examina el árbol de directorios en busca de cualquier archivo visible, como CMakeLists.txt o los que tienen la extensión de archivo .sln. Para obtener más información, consulte Vista de archivos en el Explorador de soluciones.

Flujo de trabajo de bucle interno intuitivo

Para el flujo de trabajo diario de Git, Visual Studio proporciona una forma de interactuar con Git sin problemas mientras codifica sin tener que salir del código.

Tiene la capacidad de realizar varias tareas y experimentar con el código mediante ramas. Si usted o su equipo trabajan en varias características al mismo tiempo o si quiere explorar ideas sin que esto afecte al código de trabajo, resulta muy útil crear ramas. El flujo de trabajo recomendado de Git usa una nueva rama para cada característica o corrección en la que trabaje. Descubra cómo crear una rama a partir de Visual Studio.

Cuando se crea una rama y se cambia a ella, se puede empezar a trabajar cambiando los archivos existentes o agregando otros nuevos y confirmando luego el trabajo en el repositorio. Para obtener más información sobre cómo realizar una confirmación en Visual Studio y comprender mejor los estados de los archivos en Git, consulte la página Creación de una confirmación.

Git es un sistema de control de versiones distribuido, lo que significa que todos los cambios realizados hasta ahora son solo cambios locales. Para contribuir con estos cambios a un repositorio remoto, debe insertar esas confirmaciones locales en un repositorio remoto.

Si trabaja en un equipo o si usa diferentes equipos, también deberá capturar y extraer continuamente los nuevos cambios en el repositorio remoto. Para obtener más información sobre la administración de operaciones de red de Git en Visual Studio, consulte la página Captura, extracción, inserción y sincronización.

The Visual Studio IDE with the Git menu and the Git Changes tab in Solution Explorer showing.

Administración del repositorio y colaboración

Pero hay ocasiones en las que tiene más sentido centrarse en el repositorio de Git. Por ejemplo, es posible que necesite obtener una buena imagen de lo que ha estado trabajando el equipo, copiar una confirmación de otra rama o simplemente limpiar las confirmaciones salientes. Visual Studio incluye características de colaboración y exploración del repositorio muy eficaces, que eliminan la necesidad de usar otras herramientas.

Para ayudarle a centrarse en el repositorio de Git, Visual Studio tiene una nueva ventana Repositorio de GIT, que es una vista consolidada de todos los detalles del repositorio, incluidas las ramas locales y remotas y los historiales de confirmación. Puede acceder a esta ventana directamente desde Git o Vista en la barra de menús o desde la barra de estado.

The Visual Studio IDE that highlights the Git menu and the Git Changes tab in Solution Explorer.

Examen y administración de repositorios de Git

Para obtener más información sobre cómo puede usar la ventana Repositorio de GIT en Visual Studio para examinar y administrar el repositorio de Git, consulte las páginas siguientes:

Control de conflictos de combinación

Pueden producirse conflictos durante una combinación si dos desarrolladores modifican las mismas líneas en un archivo y Git no sabe automáticamente cuál es la correcta. Git detiene la fusión mediante combinación e informa de que está en un estado Con conflictos. Obtenga más información en la página Resolución de conflictos de combinación.

Personalización de la configuración de Git

Para personalizar la configuración de Git en un nivel de repositorio, así como en un nivel global:

  1. Vaya a Git>Configuración en la barra de menús o a Herramientas>Opciones>Control del origen>Configuración global de Git

  2. Seleccione las opciones que quiera.

    Screenshot of the Options dialog box where you can choose personalization and customization settings in Visual Studio IDE.

Mejoras en la productividad y el rendimiento

En lo que respecta a las herramientas de Git integradas en Visual Studio, seguimos iterando en mejoras de rendimiento y productividad. Estas son algunas actualizaciones importantes:

  • Grafo de confirmación. En la versión 17.2 de Visual Studio 2022, hemos introducido una característica de grafo de confirmación que ayuda a reducir los retrasos que puede experimentar al ver el repositorio de Git o el historial de ramas. Para más información, consulte la entrada de blog Mejoras al usar Git.

  • Cambio de rama. También en la versión 17.2 de Visual Studio 2022, hemos reducido el número de conmutadores de rama que necesitan recargas de solución en una estimación del 80 %. Para más información, consulte la entrada de blog Mejoras de rendimiento: cambio de rama de Git.

En la versión 17.6 de Visual Studio 2022 se ha producido más actualizaciones de las características, que se han realizado para incluir la capacidad de buscar y crear vínculos a los problemas de GitHub y a los elementos de trabajo de Azure DevOps, entre otros. Para obtener todos los detalles al respecto, consulte la entrada de blog Características de Git para mejorar la productividad.

Ahora Git es la experiencia de control de versiones predeterminada en Visual Studio 2019. Desde la versión 16.6, hemos trabajado en la creación del conjunto de características y la iteración en él en función de vuestros comentarios. En la versión 16.8, se convirtió en la experiencia de control de versiones predeterminada para todos los usuarios.

Nota

También seguimos compilando e iterando en la característica de Git establecida en Visual Studio 2022. Para obtener más información sobre las actualizaciones recientes de la característica, vea la entrada de blog Compatibilidad de varios repositorios en Visual Studio.

Más información sobre Git

Git es el sistema de control de versiones moderno más usado, por lo que tanto si es un desarrollador profesional como si está aprendiendo a codificar, Git puede resultarle muy útil. Si ha empezado a usar Git recientemente, el sitio web https://git-scm.com/ es un buen punto de partida. Allí encontrará hojas de referencia rápida, un libro en línea conocido y vídeos de conceptos básicos de Git.

Primeros pasos con Git en Visual Studio 2019

Le guiaremos por el uso de la nueva experiencia de Git en Visual Studio, pero si quiere realizar un recorrido rápido primero, eche un vistazo al vídeo siguiente:

Duración del vídeo: 5,27 minutos

Hay tres formas de empezar a usar Git con Visual Studio para ser más productivo:

Nota

A partir de la versión 16.8 de Visual Studio 2019, incluimos una experiencia de cuenta de GitHub totalmente integrada. Ahora, puede agregar cuentas de GitHub y GitHub Enterprise a la cadena de claves. Puede agregar estas cuentas y aprovecharlas igual que hace con las cuentas de Microsoft, lo que significa que tendrá una mayor facilidad para acceder a los recursos de GitHub en Visual Studio. Para más información, consulte la página Trabajar con cuentas de GitHub en Visual Studio.

Sugerencia

Si no tiene una cuenta de GitHub, puede empezar siguiendo los pasos descritos en la página Creación de una cuenta de GitHub para usarla con Visual Studio.

Creación de un repositorio Git en Visual Studio 2019

Si el código no está asociado a Git, puede empezar por crear un repositorio de Git. Para ello, seleccione GIT>Crear repositorio GIT en la barra de menús. A continuación, en el cuadro de diálogo Crear un repositorio GIT, escriba su información.

The Create a Git Repository dialog box in Visual Studio.

El cuadro de diálogo Crear un repositorio GIT facilita la inserción del nuevo repositorio en GitHub. De forma predeterminada, el nuevo repositorio es privado, lo que significa que usted es el único que puede acceder a él. Si desactiva la casilla, el repositorio será público, lo que significa que cualquier persona en GitHub podrá verlo.

Sugerencia

Tanto si el repositorio es público como privado, es mejor tener una copia de seguridad remota del código almacenada de forma segura en GitHub, aunque no esté trabajando con un equipo. Así también tendrá el código a su disposición independientemente de la máquina que use.

Puede optar por crear un repositorio de Git solo local mediante la opción Solo locales. También puede vincular el proyecto local a un repositorio remoto vacío existente en Azure DevOps o cualquier otro proveedor de Git mediante la opción Repositorio remoto existente.

Clonación de un repositorio de Git existente en Visual Studio 2019

Visual Studio incluye una experiencia de clonación sencilla. Si conoce la dirección URL del repositorio que quiere clonar, puede pegar la dirección URL en la sección Ubicación del repositorio y luego elegir la ubicación del disco en la que quiere que Visual Studio se clone.

The Clone a Git Repository dialog box in Visual Studio.

Si no conoce la dirección URL del repositorio, Visual Studio facilita la búsqueda y clonación del repositorio existente de GitHub o Azure DevOps.

Apertura de un repositorio local existente en Visual Studio 2019

Después de clonar un repositorio o de crear uno, Visual Studio detecta el repositorio de Git y lo agrega a la lista de repositorios locales en el menú de Git.

Desde aquí, puede acceder rápidamente a los repositorios de Git y cambiar de uno a otro.

The Local Repositories option from the Git menu in Visual Studio

Visualización de archivos en el Explorador de soluciones de Visual Studio 2019

Al clonar un repositorio o abrir un repositorio local, Visual Studio lo lleva a ese contexto de Git al guardar y cerrar cualquier solución y proyecto abiertos previamente. El Explorador de soluciones carga la carpeta en la raíz del repositorio de Git y examina el árbol de directorios en busca de cualquier archivo visible. Estos incluyen archivos tales como CMakeLists.txt o aquellos que tienen la extensión de archivo .sln.

Visual Studio ajusta su Vista en función del archivo que se cargue en el Explorador de soluciones:

  • Si clona un repositorio que contiene un solo archivo .sln, el Explorador de soluciones carga automáticamente esa solución.
  • Si el Explorador de soluciones no detecta ningún archivo .sln en el repositorio, de forma predeterminada carga la Vista de carpetas.
  • Si el repositorio tiene más de un archivo .sln, el Explorador de soluciones muestra la lista de Vistas disponibles para que pueda elegir una.

Puede alternar entre la Vista abierta actualmente y la lista de Vistas mediante el botón Cambiar de vista de la barra de herramientas del Explorador de soluciones.

Solution Explorer with the Switch Views button selected in Visual Studio.

Para obtener más información, vea la sección Vista de archivos en el Explorador de soluciones del tutorial Abrir un proyecto desde un repositorio.

Ventana Cambios de Git en Visual Studio 2019

Git realiza un seguimiento de los cambios de archivo en el repositorio mientras usted trabaja y separa los archivos del repositorio en tres categorías. Estos cambios son equivalentes a lo que se vería al escribir el comando git status en la línea de comandos:

  • Archivos sin modificar: Estos archivos no han cambiado desde la última confirmación.
  • Archivos modificados: Estos archivos incluyen cambios realizados desde la última confirmación, pero aún no se han almacenado provisionalmente para la siguiente confirmación.
  • Archivos almacenados provisionalmente: Estos archivos tienen cambios que se agregarán a la siguiente confirmación.

Mientras usted realiza su trabajo, Visual Studio realiza un seguimiento de los cambios de archivo en el proyecto en la sección Cambios de la ventana Cambios de Git.

The Git Changes window in Visual Studio.

Cuando esté listo para almacenar provisionalmente los cambios, haga clic en el botón + (más) en cada archivo que quiera almacenar provisionalmente o haga clic con el botón derecho en un archivo y seleccione Agregar al "stage" . También puede almacenar provisionalmente todos los archivos modificados con un solo clic mediante el botón + (más) de Almacenar todo provisionalmente situado en la parte superior de la sección Cambios.

Al almacenar provisionalmente un cambio, Visual Studio crea una sección Cambios almacenados provisionalmente. Solo se agregan en la siguiente confirmación los cambios de la sección Cambios almacenados provisionalmente, lo que puede hacer seleccionando Confirmar almacenados provisionalmente. El comando equivalente para esta acción es git commit -m "Your commit message". También se puede cambiar el almacenamiento provisional de los cambios haciendo clic en el botón (menos). El comando equivalente para esta acción es git reset <file_path> para cambiar el almacenamiento provisional de los cambios de un único archivo o git reset <directory_path> para cambiar el de todos los archivos de un directorio.

También puede optar por no almacenar provisionalmente los archivos modificados omitiendo el almacenamiento provisional. En este caso, Visual Studio le permite confirmar los cambios directamente sin tener que almacenarlos provisionalmente. Solo tiene que escribir el mensaje de confirmación y luego seleccionar Confirmar todo. El comando equivalente para esta acción es git commit -a.

Visual Studio también facilita la confirmación y sincronización con un solo clic mediante los métodos abreviados Confirmar todo e insertar y Confirmar todo y sincronizar. Al hacer doble clic en cualquier archivo de las secciones sección Cambios y Cambios almacenados provisionalmente, puede ver una comparación línea a línea con la versión no modificada del archivo.

The line-by-line comparison of file versions in Visual Studio

Sugerencia

Puede asociar un elemento de trabajo de Azure DevOps con una confirmación mediante el carácter "#" si está conectado al repositorio de Azure DevOps. Puede conectar el repositorio de Azure DevOps mediante Team Explorer>Administrar conexiones.

Selección de una rama existente en Visual Studio 2019

Visual Studio muestra la rama actual en el selector situado en la parte superior de la ventana Cambios de Git.

The current branches that you can view by using the selector at the top of the Git Changes selector in Visual Studio

La rama actual también está disponible en la barra de estado en la esquina inferior derecha del IDE de Visual Studio.

The current branches that you can view by using the status bar at the bottom-right corner in the Visual Studio IDE

En ambas ubicaciones, puede alternar entre las ramas existentes.

Creación de una rama en Visual Studio 2019

También puede crear una rama. El comando equivalente para esta acción es git checkout -b <branchname>.

La creación de una rama es tan sencillo como escribir el nombre de la rama y basarla en una rama existente.

The Create a New Branch dialog box in Visual Studio

Puede elegir una rama local o remota existente como base. La casilla Desproteger rama le lleva automáticamente a la rama recién creada. El comando equivalente para esta acción es git checkout -b <new-branch><existing-branch>.

Ventana Repositorio de GIT en Visual Studio 2019

Visual Studio tiene una nueva ventana Repositorio de GIT, que es una vista consolidada de todos los detalles del repositorio, incluidas todas las ramas, los elementos remotos y los historiales de confirmación. Puede acceder a esta ventana directamente desde Git o Vista en la barra de menús o desde la barra de estado.

Administración de ramas en Visual Studio 2019

Al seleccionar Administrar ramas en el menú Git, verá la vista de árbol Ramas en la ventana Repositorio de GIT. En el panel izquierdo, puede usar el menú contextual para desproteger ramas, crear ramas, combinar, fusionar mediante cambio de base, selección exclusiva, etc. Al hacer clic en la rama, puede ver una vista previa del historial de confirmaciones en el panel derecho.

Confirmaciones entrantes y salientes en Visual Studio 2019

Al capturar una rama, la ventana Cambios de Git presenta un indicador en la lista desplegable Rama, que muestra el número de confirmaciones no extraídas de la rama remota. Este indicador también muestra el número de confirmaciones locales sin insertar.

The Git Changes window that shows the indicator drop-down UI element in Visual Studio

El indicador también funciona como un vínculo que le lleva al historial de confirmaciones de esa rama en la ventana Repositorio de GIT. En la parte superior del historial se muestran los detalles de estas confirmaciones entrantes y salientes. Desde aquí, también puede optar por extraer o insertar las confirmaciones.

The Git Repository window that shows the commit history of a branch in Visual Studio

Detalles de confirmación en Visual Studio 2019

Al hacer doble clic en una Confirmación, Visual Studio abre los detalles en una ventana de herramientas independiente. Aquí puede revertir la confirmación, restablecer la confirmación, modificar el mensaje de confirmación o crear una etiqueta en la confirmación. Al hacer clic en un archivo cambiado en la confirmación, Visual Studio abre la vista en paralelo Diferencias de la confirmación y su elemento primario.

The Commit Details dialog box in Visual Studio

Control de conflictos de combinación en Visual Studio 2019

Pueden producirse conflictos durante una combinación si dos desarrolladores modifican las mismas líneas en un archivo y Git no sabe automáticamente cuál es la correcta. Git detiene la fusión mediante combinación e informa de que está en un estado Con conflictos.

Visual Studio hace que sea fácil identificar y resolver un conflicto de fusión mediante combinación. En primer lugar, la ventana Repositorio de GIT muestra una barra de información dorada en la parte superior de la ventana.

The 'Merge completed with conflicts' message in Visual Studio

La ventana Cambios de Git también muestra el mensaje "Fusión mediante combinación en curso con conflictos", con los archivos sin combinar en su sección independiente debajo.

The 'Merge in progress with conflicts' message in Visual Studio

Pero si ninguna de estas ventanas se abre y, en su lugar, se va al archivo que tiene conflictos de combinación, no tendrá que buscar el texto siguiente:

    <<<<<<< HEAD
    =======
    >>>>>>> main

En su lugar, Visual Studio muestra una barra de información dorada en la parte superior de la página que indica que el archivo abierto tiene conflictos. A continuación, puede hacer clic en el vínculo para abrir el editor de combinación.

Screenshot of 'File contains merge conflicts' message in Visual Studio

Editor de combinación en Visual Studio 2019

El editor de combinación de Visual Studio es una herramienta de combinación tridireccional que muestra los cambios entrantes, los cambios actuales y el resultado de la combinación. Puede usar la barra de herramientas situada en el nivel superior del editor de combinación para desplazarse entre los conflictos y las diferencias de combinación automática en el archivo.

The Merge Editor in Visual Studio

También puede usar los controles de alternancia para mostrar u ocultar las diferencias, mostrar u ocultar las diferencias de palabras y personalizar el diseño. Hay casillas en la parte superior de cada lado que puede usar para realizar todos los cambios de un lado o del otro. No obstante, para realizar cambios individuales, puede hacer clic en las casillas situadas a la izquierda de las líneas en conflicto en cualquier lado. Por último, cuando termine de resolver los conflictos, puede seleccionar el botón Aceptar combinación del editor de combinación. Escriba luego un mensaje de confirmación y confirme los cambios para completar la resolución.

Personalización de la configuración de Git en Visual Studio 2019

Para personalizar la configuración de Git en un nivel de repositorio, así como en un nivel global, vaya a Git>Configuración o a Herramientas>Opciones>Control de código fuente en la barra de menús. Después, elija las opciones que quiera.

The Options dialog box where you can choose personalization and customization settings in Visual Studio IDE.

Cómo usar la experiencia de Team Explorer heredada en Visual Studio 2019

La nueva experiencia de Git es el sistema de control de versiones predeterminado en Visual Studio 2019 a partir de la versión 16.8. Sin embargo, si desea desactivarla, puede hacerlo. Vaya a Herramientas>Opciones>Entorno>Características en versión preliminar y active la casilla New Git User Experience (Nueva experiencia de usuario de Git), que le cambiará a la experiencia de Team Explorer para Git.

The Preview Features section of the Options dialog box in Visual Studio