Introducción a Git en Terminal y SourceTree (Parte 3)

Standard

Git logo

Qué tal, gente. En la presente y última entrega de la “serie”: Introducción a Git en Terminal y Source Tree (enlaces aquí: Parte 1 y Parte 2). Hablaremos sobre lo indispensable que es necesario conocer para trabajar en repositorios que incluyen a varios colaboradores de un equipo de desarrollo.

Entre las principales tareas que nos topamos al llevar a cabo esta labor, tenemos: realizar conexiones remotas con repositorios centrales, importar commits de ramas en repositorios remotos, exportar los cambios realizados al proyecto en nuestra copia local del repositorio, entre otros.

Bien, veamos un poco de los comandos y opciones que nos facilitarán dichas tareas.

Colaboración en equipo: Sincronización

El modelo de colaboración de Git le da a cada desarrollador su propia copia del repositorio completo, con su propio historial local y estructura de ramas. Los usuarios típicamente necesitan compartir series de commits en lugar de un simple conjunto de cambios. En lugar de hacer commit a un conjunto de cambios desde una copia local al repositorio central, Git permite compartir ramas enteras entre repositorios.

Los comandos que se presentan a continuación permiten administrar conexiones con otros repositorios, publicar el historial local al hacer “push” de ramas a otros repositorios, y ver lo que otros han contribuido al hacer “pull” de ramas a tu repositorio local.

Git Remote

El comando git remote permite crear, ver y eliminar conexiones con otros repositorios. Las conexiones remotas son más parecidas a marcadores que a enlaces directos a otros repositorios. En lugar de proveer acceso en tiempo real a otro repositorio, estos sirven como nombres convenientes que pueden ser usados para hacer referencia a una URL no tan conveniente.

Cómo hacer una conexión remota usando Terminal

Abre una terminal y escribe:

git remote

Lista las conexiones remotas que se tienen en otros repositorios.

git remote -v

Lo mismo que el comando de arriba, pero incluye la URL de cada conexión.

git remote add <nombre> <url>

Crea una nueva conexión a un repositorio remoto. Después de agregar una conexión remota, es posible utilizar <nombre> como un atajo conveniente para <url> en otros comandos Git.

git remote rm <nombre>

Elimina la conexión con el repositorio remoto llamado <nombre>.

git remote rename <viejo-nombre> <nuevo-nombre>

Re-nombra una conexión remota de <viejo-nombre> a <nuevo-nombre>.

Cómo hacer una conexión remota usando SourceTree

Remote example

Figura 1:

  1. Abre tu repositorio en SourceTree.
  2. Ve a: Menu → Repository → Add Remote…
  3. Asigna un nuevo nombre e indica la URL del repositorio remoto.
  4. Selecciona, de las opciones avanzadas disponibles, las más convenientes para
  5. Click OK.

Git Fetch

El comando git fetch importa comits desde un repositorio remoto a tu repositorio local. Los commits resultantes son guardados como ramas remotas en lugar de las ramas locales normales con las que hemos estado trabajando hasta el momento. Esto te da la oportunidad de revisar cambios antes de integrarlos en tu copia local del proyecto.

Fetching es lo que haces cuando quieres ver en lo que todos los demás han estado trabajando. Desde que el contenido “atraído” es representado como una rama remota, éste no tiene efecto en tu desarrollo local.

Cómo hacer una fetch usando Terminal

Abre una terminal y escribe:

git fetch <remote>

Atrae todas las ramas del repositorio. Esto también descarga todos los commits requeridos y archivos del otro repositorio.

git fetch <remote> <rama>

Lo mismo que el comando de arriba, pero sólo atrae la rama especificada.

Cómo hacer fetch usando SourceTree

Fetch example

 Figura 2:

  1. Abre tu repositorio en SourceTree.
  2. Ve a: Menu → Repositorio → Fetch…
  3. Selecciona, de las opciones disponibles, las más convenientes para ti.
  4. Click OK.

Git Pull

Integrar cambios en tu repositorio local es una actividad común en los flujos de trabajo que están basados en Git. Ya sabemos cómo hacer esto con git fetch seguido por git merge, pero git pull combina esto en un simple comando.

Cómo hacer pull usando Terminal

Abre una terminal y escribe:

git pull <remote>

Atrae todas las copias remotas especificadas de la rama actual e inmediatamente las integra en la copia local. Esto es lo mismo que hacer git fetch <remote> seguido de git merge origin/<rama actual>.

git pull --rebase <remote>

Lo mismo que el comando de arriba, pero en lugar de usar git merge para integrar la rama remota con la rama local, usa git rebase.

Cómo hacer pull usando SourceTree

Captura-de-pantalla-2015-11-18-a-las-1.28.40-p.m.

Figura 3:

  1. Abre tu repositorio en SourceTree.
  2. Ve a: Menu → Repositorio → Pull…
  3. Selecciona el repositorio y rama local a los cuales hacer pull.
  4. Selecciona, de las opciones disponibles, las más convenientes para ti.
  5. Click OK.

Git Push

Pushing es la manera de transferir commits desde tu repositorio local a un repositorio remoto. Es la contraparte de git fetch, pero mientras fetch importa commits a ramas locales, git push exporta commits a ramas remotas. Esto tiene el potencial de sobreescribir cambios, así que es necesario ser cuidadosos sobre la manera en que lo usamos.

El caso de uso más común para git push es publicar tus cambios locales a un repositorio central. Después de que has acumulado varios commits locales y estás listo para compartirlos con el resto de tu equipo, (opcionalmente) se limpian con un rebase interactivo, y luego se envían al repositorio central (push).

Cómo hacer push usando Terminal

Abre una terminal y escribe:

git push <remote> <rama>

Exporta los cambios de la rama especificada a <remote>, junto con todos los commits necesarios y objetos internos. Esto crea una rama local en el repositorio destino. Para prevenir que se sobreescriban los commits, Git no te dejará hacer push cuando esto resulta en una integración que no sea de avance rápido en el repositorio destino.

git push <remote> --force

Lo mismo que el comando de arriba, pero fuerza el push incluso si éste resulta en una integración que no sea de avance rápido. No se recomienda usar la bandera --force a menos que se esté absolutamente seguro de que se sabe lo que se está haciendo.

git push <remote> --all

Exporta todas tus ramas locales al repositorio remoto especificado.

git push <remote> --tags

Las etiquetas no son automáticamente exportadas cuando haces push a una rama o usas la opción --all. La bandera --tags envía todas tus etiquetas locales al repositorio remoto.

Cómo hacer push usando SourceTree

Captura-de-pantalla-2015-11-17-a-las-2.01.47-p.m.

Figura 4:

  1. Abre tu repositorio en SourceTree.
  2. Ve a: Menu → Repositorio → Push…
  3. Selecciona el repositorio y rama remota a los cuales hacer push.
  4. Puedes elegir la opción “push all tags”.
  5. Click OK.

Y bien, con esto damos fin a nuestro tutorial introductorio a Git. Espero estas ideas hayan sido de utilidad para los iniciados en la materia, y quienes no usan aún herramientas de este tipo para facilitarse la vida con respecto al versionamiento de proyectos de desarrollo, se animen a explorar las diferentes opciones disponibles en la Web para contrastarlas con esta útil herramienta, o quizá darle a Git una oportunidad a ser incluido en su flujo de trabajo.

¡Hasta luego!

Referencias:

Leave a Reply

Your email address will not be published. Required fields are marked *