A raíz de una charla que tuve con un compañero de trabajo hace unos días, me pareció interesante hacer este post para comentar como utilizar repositorios Git en Visual Studio 2013.
Lo primero a destacar es que no necesitaremos ningún componente adicional para utilizar repositorios Git, ya que en la versión mencionada anteriormente está incluido de forma nativa.
Si no están muy al tanto del funcionamiento básico de Git, les recomiendo la lectura del Tutorial de Git de Atlassian, el cual explica de forma clara los conceptos. Esto por nombrar solo un tutorial, en la web podrán encontrar muchísimos más, cada uno con distintos enfoques.
Vayamos paso por paso. Lo primero que vamos a hacer es crear nuestro repositorio Git, para lo cual en este ejemplo usaremos Bitbucket. Si no tienen una cuenta, la pueden crear de forma totalmente gratuita aquí.
Una vez que ingresamos con nuestro usuario, seleccionaremos la opción “Crear” del menú superior, e ingresamos los datos solicitados:

Una vez que lo realicemos, seremos redirigidos a una página como la siguiente, en la cual veremos todos los aspectos relacionados al repositorio. Lo que debemos buscar es la dirección del repositorio para clonar:

Ahora debemos ir a Visual Studio 2013 y configurar el repositorio. Para ello debemos ir a la pestaña “Team Explorer” (si no la tenemos, se abre desde “Ver > Team Explorer“) y seleccionar la opción “Conectar a proyectos de equipo“.
Allí nos aparecerán las opciones para agregar repositorios de TFS o Git. Vamos a la parte de Git, seleccionamos la opción “Clonar” y agregamos la dirección del repositorio que copiamos (sin los comandos de Git) junto con la dirección local en la cual queremos que se almacene el contenido del repositorio:

Una vez que presionemos “Clonar“, se enlazará a la carpeta seleccionada mostrándonos el siguiente mensaje:

Nota: En este caso no me solicitó autenticarme debido a que ya lo había realizado para otros repositorios que uso con el mismo usuario.
Si hacemos doble click sobre “repositorio-demo” de la imagen anterior, nos mostrará la siguiente pantalla en donde tendremos los accesos necesarios para la gestión del repositorio en nuestro ambiente:

Finalmente, vamos a crear un proyecto de prueba y subir los cambios al repositorio. Para ello seleccionamos la opción “Nueva…” dentro de la sección “Soluciones” de la imagen anterior. Allí se nos abrirá la pestaña convencional para crear una solución, pero con la ubicación correspondiente al repositorio y el check de “Agregar al control de código fuente” (si este último no está seleccionado, lo hacemos nosotros).

Una vez finalizada la creación del mismo, vamos al “Explorador de soluciones” y seleccionamos la opción “Confirmar” sobre la solución:

Allí nos mostrará la siguiente pantalla, en la cual podremos ver los cambios que se subirán, los archivos que queremos excluir y los que no tienen seguimiento.

Allí seleccionaremos la opción “Confirmar“, de forma que subamos los cambios al repositorio local. También tenemos disponibles las opciones “Confirmar e insertar” y “Confirmar y sincronizar“, para realizar todas las acciones en un solo paso. Para este post, vamos a realizarlo de forma separada.
Una vez que confirmamos los cambios, nos aparecerá el mensaje de que los cambios fueron subidos correctamente, con un enlace para que sincronicemos el repositorio:

Presionamos dicho enlace, el cual nos llevará a la siguiente pantalla. En la misma será donde se produzca la interacción con los repositorios remotos:

Como vemos en la imagen, podremos buscar y extraer las confirmaciones de entradas que hayan hecho otras personas con las que trabajamos, además de subir nuestros propios cambios al repositorio remoto. En este caso seleccionamos la opción “Sincronizar” (aunque también podríamos haber seleccionado la opción “Insertar” sobre la confirmación que acabamos de hacer). De esta forma nuestros cambios estarán subidos al repositorio y disponibles para cualquier otra persona con la que trabajemos.
Como vemos, la interacción con repositorios Git está totalmente integrada y su uso es muy simple. En cualquier momento podremos comparar un archivo con su versión anterior, ver su historial de cambios, deshacerlos o excluirlos de una determinada confirmación.

Incluso si estamos trabajando con otras personas, tendremos las facilidades para la combinación de los cambios cuando haya conflictos de forma nativa.
Espero que les sea de utilidad, cualquier duda o sugerencia no duden en comentar!!
Muy bueno Diego.
Me gustaMe gusta
Ayer solo lo había leído. Hoy lo puse en práctica y me funcionó muy bien.
Gracias Diego por tu ayuda y por este post muy bien redactado y claro.
Abrazo grande.
Me gustaMe gusta
Por nada Ezequiel, un gusto poder ayudar!
Me gustaMe gusta
Esta muy bueno el post como git viene integrado con Visual Studio 2013 ya no hay necesidad de usar Source Tree para subir los repositorios a BitBucket!
Me gustaMe gusta
Muchas gracias! Si, aunque Source Tree no es una mala herramienta, es muy útil (y más productivo) tener este aspecto integrado.
Me gustaMe gusta
Me prodrina ilustras como un compañero de trabajo pueda bajar y clonar el repositorio de un poyecto que esta ya arriba.
Me gustaMe gusta
Hola.
Para trabajar con un repositorio ya existente lo que debes hacer es lo indicado en la parte de la clonación del repositorio ya existente. Cuando realices eso automáticamente te bajará todos los cambios existentes en el mismo, en este post no lo marcamos ya que justo estábamos clonando uno vacío.
A partir de ello ya podrán trabajar ambos sobre el mismo repositorio.
Comentame si te sirve o se te presenta alguna otra situación.
Saludos!
Me gustaMe gusta
Buen dia amigo Diego Bersano, he tenido problemas al momento de sincronizar, en mi casa cree un proyecto y lo subi a bitbucket, hasta alli todo bien, y cuando trato de descargarlo (clonarlo) en la maquina de mi trabajo no me descarga ni clona nada, espero me puedas ayuda, saludos.
Me gustaMe gusta
Buenas tardes, me comentarias que error te arroja la herramienta? Así vemos como resolverlo.
Saludos!
Me gustaMe gusta
Hola me ayudo mucho esta guia, muchas gracias! , ahora volvi a ella, porque quise hacerlo de nuevo, en la misma solucion pero en otro proyecto distintos (Tengo dos cada uno en carpetas diferentes , en la misma solucion,) y no pude hacerlo. Logro clonar el repo de Bitbucket a este nuevo pero cuando quiero buscar la opcion Agregar al control de código fuente(es un proyecto ya existete) no la encuentro!!, sabrias porque ?? GRACIAS!!
Me gustaMe gusta
Buenas Bruno, me alegro que te haya servido.
Ante lo que me comentas se me ocurre la alternativa de que vayas al “Team Explorer”, “Changes”, “Excluded changes”. Allí deberían estar todos los archivos físicos que están en la carpeta de la solución pero no han sido agregados al control de código fuente.
Comentame si te sirve, saludos!!
Me gustaMe gusta
Hola Diego, gracias por tu respuesta!. He estado probando, lo que dices lo encontré pero alli estan todos bien agregados. Excepto que directamente no aparece este otro proyecto (que en realidad es una referencia a otro proyecto) no me aparece su references ni tampoco los archivos, es q es otro proyecto en otro lado, sin embargo creo que lo que hare será hacerlo desde GIT, un git init en un nivel superior a estos dos proyectos y darle seguimiento desde aqui. Muchas gracias Diego, un abrazo
Me gustaMe gusta
Hola amigo, gracias pro el tuto. Pero como lo hago para actualizar el repo en el que estoy trabajando (que se sincronice el trabajo de todos en mi maquina) antes de subir mis cambios.
Me gustaMe gusta
Hola Mauricio, gracias a ti por pasar por el blog y dejar la consulta.
La forma más sencilla es ir a la opción de “Sincronización” (opción con las dos flechas en el menú del “Team Explorer”. Allí tienes dos opciones:
– Bajar solo los cambios del equipo: para esto usarás la opción Pull, la cual te trae los cambios. A su vez, si solo quieres validar los cambios que hay puedes hacer un Fetch, que solo te mostrará los cambios para bajar.
– Bajar los cambios y subir los tuyos: esto lo que hará es subir todos los cambios que tengas pendientes de realizar el Push, previa descarga de todos los cambios disponibles y resolución de los conflictos.
Espero tus comentarios sobre si te ha servido, saludos!
Me gustaMe gusta