Administración de repositorios de Git en Visual Studio

La ventana Repositorio de GIT proporciona una experiencia de Git de pantalla completa que ayuda a administrar el repositorio de Git y mantenerse al día con los proyectos del equipo. Por ejemplo, es posible que tenga que restablecer, revertir o realizar una selección exclusiva de las confirmaciones, o simplemente limpiar el historial de confirmaciones. La ventana Repositorio de GIT también es un lugar excelente para visualizar y administrar las ramas.

El control de versiones con Visual Studio es sencillo con Git. Además, 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.

Abra la ventana del Repositorio de Git

Para abrir la ventana del Repositorio de Git, elija Ver>Repositorio de Git (o presione Ctrl+0, Ctrl+R) o presione Ctrl+Q y, en Características, busque Repositorio de Git.

Cambio en la última confirmación (rectificación)

En Git, un caso de uso habitual consiste en actualizar la última confirmación, lo que se conoce como rectificar. A veces, simplemente necesita actualizar el mensaje de confirmación o incluir un cambio de última hora.

Puede rectificar una confirmación en la línea de comandos mediante el comando siguiente:

git commit --amend

La ventana Repositorio de GIT facilita el proceso de actualizar el mensaje de confirmación más reciente. Haga doble clic en la última confirmación para abrir los detalles y seleccione la opción Editar que aparece junto al mensaje de confirmación.

Captura de pantalla de la edición de un mensaje de confirmación.

Cuando acabe de editar el mensaje de confirmación, seleccione Amend (Rectificar).

Captura de pantalla del proceso para guardar un mensaje editado mediante la selección de Amend (Rectificar).

Si necesita incluir cambios de código en la última confirmación, puede hacerlo en la ventana Git Changes (Cambios de Git). Active la casilla Amend (Rectificar) y confirme los cambios.

Captura de pantalla del proceso para modificar los cambios de código mediante la ventana Git Changes (Cambios de Git).

Para obtener más información sobre la modificación, incluido cómo cambiar los mensajes de confirmación distintos de los más recientes, consulte Herramientas de Git: reescritura del historial en el sitio web de Git.

Confirmaciones de combinación (fusión mediante combinación con "squash")

Para combinar una serie de confirmaciones, Git proporciona una opción para fusionar mediante combinación con "squash" en una sola confirmación. Esta opción puede resultar útil si realiza confirmaciones frecuentes y acaba con una larga lista de confirmaciones que quiere limpiar antes de realizar una inserción en un repositorio remoto.

Puede fusionar mediante combinación con "squash" dos confirmaciones en la línea de comandos mediante el comando siguiente:

git rebase -i HEAD~2

Después, actualice pick a squash, guárdelo y actualice el mensaje de confirmación.

Captura de pantalla de la actualización de

Para combinar confirmaciones en Visual Studio, use la tecla CTRL para seleccionar varias confirmaciones que quiera combinar. Después, haga clic con el botón derecho y seleccione Confirmaciones de squash. Visual Studio combina automáticamente los mensajes de confirmación, pero a veces es mejor proporcionar un mensaje actualizado. Después de revisar y actualizar el mensaje de confirmación, seleccione el botón Squash.

Captura de pantalla de las confirmaciones de squash en Visual Studio.

Para obtener más información sobre la fusión mediante combinación con "squash", consulte Herramientas de Git: reescritura del historial en el sitio web de Git.

Combinación y fusión mediante cambio de base de las ramas

Si usa ramas de Git para trabajar en diferentes características, en algún momento tendrá que incluir actualizaciones introducidas en otras ramas. Esto puede ocurrir mientras todavía está trabajando en la rama de características. También podría suceder cuando ha acabado de trabajar en la rama de características y necesita conservar los cambios agregándolos a otra rama. En Git, puede incluir estas actualizaciones gracias a la combinación o la fusión mediante cambio de base de las ramas.

Nota

En las instrucciones siguientes se usa New_Feature como nombre de ejemplo para una rama de características. Reemplácelo por el nombre de su rama.

Para combinar la rama principal (main) con la rama de características en la línea de comandos, use los comandos siguientes:

git checkout New_Feature
git merge main

Para hacer lo mismo en Visual Studio, en la lista de ramas, haga doble clic en la rama de características para extraerla del repositorio. Después, haga clic con el botón derecho en main y seleccione Merge 'main' into 'New_Feature' (Combinar "main" con "New_Feature").

Captura de pantalla de la combinación de ramas en Visual Studio.

Para fusionar mediante cambio de base la rama principal (main) con la rama de características en la línea de comandos, use los comandos siguientes:

git checkout New_Feature
git rebase main

Para hacer lo mismo en Visual Studio, en la lista de ramas, haga doble clic en la rama de características para extraerla del repositorio. Después, haga clic con el botón derecho en main y seleccione Rebase 'New_Feature' onto 'main' (Fusionar mediante cambio de base "New_Feature" en "main").

Captura de pantalla de la fusión mediante cambio de base de ramas en Visual Studio.

Para obtener más información sobre la combinación, la fusión mediante cambio de base y la creación de ramas en general, consulte Creación de ramas en Git en el sitio web de Git.

Copia de confirmaciones (selección exclusiva)

Copie confirmaciones de una rama a otra mediante la opción de selección exclusiva. A diferencia de una combinación o una fusión mediante cambio de base, la selección exclusiva solo aporta los cambios de las confirmaciones que seleccione, en lugar de todos los cambios de una rama. La selección exclusiva es una manera excelente de abordar estos problemas comunes:

  • Realizar accidentalmente una confirmación en la rama incorrecta. Lleve a cabo una selección exclusiva de los cambios en la rama correcta y, luego, restablezca la rama original a la confirmación anterior.
  • Extraer un conjunto de confirmaciones realizadas en una rama de características, para volver a combinarlas antes en la rama principal.
  • Portar confirmaciones específicas desde la rama principal sin fusionar la rama mediante cambio de base.

Para copiar los cambios de una confirmación en la rama actual mediante la línea de comandos, use el comando siguiente:

git cherry-pick 7599e530

Para hacer lo mismo en Visual Studio, seleccione con un solo clic la rama en la que quiere realizar una selección exclusiva de una confirmación para obtener una vista previa. Después, haga clic con el botón derecho en la confirmación que le interesa y elija Selección exclusiva.

Captura de pantalla de la selección exclusiva en Visual Studio.

Cuando se complete la operación, verá en Visual Studio un mensaje que indica que la operación es correcta. La confirmación de la que haya realizado una selección exclusiva aparecerá en la sección Saliente.

Para obtener más información sobre la selección exclusiva de confirmaciones, consulte la página web de Git sobre el comando de selección exclusiva.

Reversión de cambios

Use el comando "revert" para deshacer los cambios que se hayan realizado en confirmaciones insertadas en ramas compartidas. El comando "revert" crea una confirmación que deshace los cambios realizados en una confirmación anterior. El comando "revert" no reescribe el historial del repositorio, lo que hace que sea seguro usarlo al trabajar con otras personas.

Para revertir los cambios realizados en una confirmación mediante la línea de comandos, use los comandos siguientes. Reemplace el identificador de ejemplo por el identificador de una confirmación real en la rama.

git revert 53333305
git commit

En el ejemplo anterior, los comandos desharán los cambios realizados en la confirmación 53333305 y crearán una confirmación en la rama. La confirmación original todavía está en el historial de Git. Para hacer lo mismo en Visual Studio, haga clic con el botón derecho en la confirmación que quiere revertir y seleccione Revertir. Una vez que haya confirmado la acción y que la operación se haya completado, verá en Visual Studio un mensaje que indica que la operación es correcta y aparecerá una nueva confirmación en la sección Saliente.

Captura de pantalla de la reversión en Visual Studio.

Seleccione la nueva confirmación para confirmar que deshace los cambios de la confirmación revertida.

Captura de pantalla de la confirmación de una operación de reversión.

Para obtener más información sobre cómo revertir los cambios, consulte la página web de Git sobre el comando "revert".

Restablecimiento de una rama a un estado anterior

Use el comando "reset" para devolver una rama del repositorio local al contenido de una confirmación anterior. Esta acción descarta todos los cambios que se han producido desde la confirmación en la que está restableciendo la rama.

Advertencia

No restablezca las ramas compartidas, ya que podría eliminar el trabajo de otras personas. Use el comando "revert"en su lugar.

Para restablecer una rama a un estado anterior mediante la línea de comandos, use el comando siguiente. Reemplace el identificador de ejemplo por el identificador de una confirmación real en la rama.

git reset --hard 53333305

La parte --hard del comando le indica a Git que restablezca los archivos al estado de la confirmación anterior y que descarte los cambios "staged". Para hacer lo mismo en Visual Studio, haga clic con el botón derecho en la confirmación en la que quiere restablecer la rama y seleccione Restablecer>Eliminar cambios (--hard).

Captura de pantalla en la que se muestra cómo se restablece una rama en Visual Studio.

Para obtener más información sobre el restablecimiento de ramas, consulte la página web de Git sobre el comando "reset".