Git en Visual Studio 2017

Esta guía cubre lo básico para que podamos empezar a utilizar GIT en Visual Studio con código en Visual Studio Team Services (VSTS) o Visual Studio Team Foundation Server (TFS) (Las versiones modernas que soportan GIT).

Obtener nuestro código

Para obtener una copia de nuestro código, tenemos que clonar un repositorio de VSTS. Clonar crea una copia del código fuente para que trabajemos con el y tambien de toda la información de control de versiones para que GIT pueda administrarla.

Si no tenemos un repositorio de GIT aún, podemos crear uno usando el propio código y continuar con los pasos de este artículo para comitear y compartir nuestro trabajo.

Desde Visual Studio

  1. En el Team Explorer (si no lo tenemos abierto podemos abrirlo usando Ver > Team Explorer) abrimos la página Conectar haciendo click en el ícono de un cablecito, y luego expandiendo Administrar conexiones elegimos Conectar a proyecto
    Conectar a proyecto \
  2. En el cuadro de dialogo de Conectar a proyecto, elegimos el repositorio que queremos clonar de la lista y elegimos Clonar. Si no vemos un repositorio listado, podemos filtrar la lista para encontrarlo o agregar algun Servidor de Team Foundation donde esté alojado el repositorio haciendo click en el enlace Agregar servidor TFS.
    Cuadro de dialogo Conectar a proyecto \
  3. Verificamos la ubicación del repositorio clonado en tu PC y hacemos click en Clonar

Desde la consola

  1. Descarga e instala Git y el Administrador de Credenciales de Git para tu plataforma.
  2. Abre el portal web de VSTS navegando a https://<your account name>.visualstudio.com y encuentra tu repositorio GIT. Copia la dirección de clonado desde el Popup.
    Botón clonar en VSTS \
  3. Utilizando la consola, navega hasta la carpeta que quieres que se guarde el código en tu computadora local.
  4. Desde la línea de comandos ejecuta el git clone seguido de la URL de clonado, como se muestra en el siguiente ejemplo:
git clone https://fabrikam-fiber.visualstudio.com/DefaultCollection/_git/FabrikamFiber

Git descarga y crea tu propia copia del código en una nueva carpeta para que trabajes con el.

Comitear nuestro trabajo

Las ramas aislan los cambios de otro trabajo hecho en el proyecto. El flujo de trabajo recomendado para Git utiliza una nueva rama para cada característica o arreglo en el que estés trabajando. Podemos hacer commits en nuestro repositorio de Git local para guardar nuestros cambios para esa rama.

Desde Visual Studio

  1. En el Team Explorer, seleccionemos el ícono de la Inicio (la casita) y luego elijamos Ramas (Branches)
    Inicio del team explorer con ramas marcado \
  2. Hagamos click derecho en la rama master y elijamos Nueva rama local desde…
    Opción New local branch from.. \
  3. Elijamos un nombre descriptivo sobre nuestro trabajo para recordar a ti y a otros que es lo que se va a hacer en esta rema y luego toquemos en Crear rama.
    Rama Local nombre descriptivo ReadmeFix \
  4. Hagamos cambios a nuestros archivos en este repositorio clonado. Desde la vista Inicio del TeamExplorer, podemos abrir soluciones de Visual Studio en el repositorio o navegar por los contenidos del repositorio utilizando la vista Mostrar vista de directorios. Git va llevando los cambios que hagamos a nuestro código adentro y afuera de Visual Studio.
  5. Cuando estamos satisfechos con los cambios, los guardamos en Git usando un commit. Abramos la vista de Cambios desde el Team Explorer seleccionando el ícono de Inicio (la casita) y eligiendo Cambios.
    Inicio de TeamExplorer y cambios resaltado \
  6. Ingresemos un mensaje para describir el commit y luego seleccionemos Confirmar todo Confirmar todo

Nota:

Si tenemos multiples archivos y no queremos comitear todos ellos, podemos hacer click derecho en cada archivo que si queremos comitear y elegir Preparar. Cuando hemos preparado todos los cambios que queremos comitear, hacemos click en Confirmar por etapas. (El botón Confirmar todo es remplazado por el botón Confirmar por etapas cuando estamos preparando los cambios de manera manual antes del commit). Preparar

Desde la consola

  1. Creemos una rama donde vas a trabajar con el código y hagamos los cambios. Si estamos colaboriando con alguien más usando la rama que ellos crearon, podemos evitarnos este paso siguiendo con el paso del git checkout.
    git branch ReadmeFix 
  2. Hagamos checkout de la rama para que podamos empezar a trabajar en ella.
    git checkout ReadmeFix
    También podemos usar el comando checkout para empezar a trabajar en una rama que otros miembros del equipo ya hayan creado previamente.
  3. Hagamos los cambios en el código que deseemos hacer.
  4. Cuando estamos satisfechos con los cambios, incluso si no estamos listos para compartir el trabajo realizado, los guardemos utilizando un commit. Los cambios no se van a compartir hasta que no hagamos push (Insertar se llama en Visual Studio). Para guardar los cambios hacemos lo siguiente:
    git commit -a -m "Mensaje descriptivo del commit"

Esto va a guardar los cambios localmente en un nuevo commit en Git. Nos aseguremos de darle al commit un mensaje corto describiendo los cambios después del flag -m.

Compartir nuestros cambios

Cuando estamos listos para compartir los cambios con el equipo, los podemos pushear para que otros los puedan ver. Solo podemos pushear cambios que han sido agregados a un commit.

Una vez que pusheemos los cambios, podemos crear un pull request para hacerle saber a otros que queremos que nuestros cambios sean revisados y después agregados a la rama principal de nuestro código.

Desde Visual Studio

  1. Abramos la vista Sincronización en el Team Explorer seleccionando el ícono de Inicio(la casita) y eligiendo Sincronización.
    Inicio del Team Explorer con Vista Sincronizacion
    También podemos navegar a la vista de Sincronización desde la vista de Cambios eligiendo Sincronizar inmediatamente después de hacer un commit.
    Mensaje en vista cambios con el link a sincronización \
  2. Seleccionemos Insertar (push)para compartir nuestros commits con el repositorio remoto.
    Push resaltado
    Si este es nuestro primer push al repositorio vamos a ver el siguiente mensaje en lugar de la lista de commits para insertar. La rama actual no sigue ninguna rama remota. Inserta tus cambios en una rama nueva en el remoto origin y configura la rama de subida Seleccionemos Insertar para pushear nuestros cambios en una rama nueva en el repositorio remoto y configurar la rama de subida. La proxima vez que pusheemos cambios vamos a ver la lista de commits.
  3. Creemos un pull request para que otros puedan revisar nuestros cambios. Abramos Pull Requests en el Team Explorer tocando el ícono de Inicio y elijamos Pull Requests.
    Inicio del Team Explorer con Pull Requests resaltado \
  4. Desde la vista Pull Requests podemos ver los pull requests iniciados por nosotros, asignados a nosotros y también podemos crear nuevos pull requests. Seleccionemos Nuevo Pull Requests para abrir un navegador web donde puedas crear el nuevo pull request en el portal web de VSTS.
    Nuevo Pull Request resaltado
    1.Verifica tu rama (en este ejemplo quedemos mergear los commits de una rama ReadmeFix en la rama master), entremos un título y opcionalmente una descripción, especifiquemos algún revisor y opcionalmente asociemos cualquier item de trabajo, y seleccionemos Create. Pantalla nuevo pull request VSTS

Desde la consola

  1. Pusheemos nuestra rama para que otros puedan ver los cambios que hicimos.
  2. Abramos el proyecto de VSTS en el portal web y naveguemos hasta el repositorio desde la pestaña Code. Seleccionemos el enlace Create a pull request (VSTS está en inglés) para crear un pull request para la rama que acabamos de pushear.
    Pestaña código resaltada con Pull requests en VSTS \
  3. Verifiquemos nuestras ramas (en este ejemplo queremos mergear los commits de la rama ReadMeFix en la rama master), ingresemos un título y opcionalmente una descripción, especifiquemos algun revisor, y opcionalmente asignemos items de trabajo, luego seleccionamos Create
    Pantalla nuevo pull request VSTS \
  4. Una vez que los cambios han sido aprobados, completemos el pull request en VSTS. Esto hará que los cambios de esa rama se mezclen con la rama master.

Sincronizar nuestro trabajo con otros

Para obtener cambios de otros y mantener nuestro código fuente actualizado, podemos hacer pull de los commits hechos por otros y mergearlos en nuestro branch. Git es muy bueno mezclando multiples cambios incluso en el mismo archivo, pero a veces es necesario resolver conflictos. Una buena idea es hacer pull de las ramas regularmente para mantenerlas actualizadas con los cambios de otros asi nos reducimos las posibilidades de conflictos. Esto tambien nos asegura que nuestras ramas principales están usando la ultima versión del código.

Desde Visual Studio

  1. Abramos la vista Sincronización en el Team Explorer seleccionando el ícono de Inicio y eligiendo Sincronización
    Inicio del Team Explorer con Vista Sincronizacion \
  2. Podemos descargar los ultimos cambios para la rama en la que estamos trabajando usando el enlace Recuperar. (Hay dos enlaces Recuperar, uno arriba y otro más abajo en la sección confirmaciones de entrada. Podemos utilizar cualquiera de ellos ya que hacen la misma cosa.)
    La palabra pull resaltada en la pestaña sincronización

Desde la consola

  1. Cambiemos al branch en el que queremos que se descarguen los cambios que otros han hecho. Este ejemplo utiliza cambios hechos por otros de tu equipo en la rama ReadMeFix que serán mezclados con la copia local de la rama.
    git checkout ReadMeFix
  2. Hagamos pull de los cambios hechos por otros en nuestra rama local.
    git checkout ReadMeFix

Git descarga los cambios y los mezcla con tus propios cambios en tu rama local.