* Práctica 1.4: GitHub Básico
P1.4 - Gestión de ramas con Git y enlazar a GitHub¶
1. Trabajar con ramas¶
Antes de nada, veamos qué es una rama y los procedimientos básicos para ramificar y fusionar
Vamos a comenzar la práctica donde lo dejamos en la práctica anterior, P3.
-
Abrimos Git Bash o una terminal y nos movemos a la carpeta de nuestro proyecto. Ahora vamos a ejecutar un comando para crear una rama nueva y también nos va a situar en ella:
Ya estamos en otra rama de desarrollo, no en main (la rama principal). En esta nueva rama vamos a tener todos los ficheros de la rama main tal y cómo están en este mismo momento (cómo si hubiéramos sacado una foto exacta).
-
A continuación, creamos un directorio con el nombre
ejercicios1
, y dentro de esta nueva carpeta, creamos un programa que se llameprueba2.py
que solicite dos números, los sume y muestre el resultado: -
Añadimos el fichero al área de preparación:
-
Observad que los IDEs, tienen integrado Git y podéis hacerlo también desde el mismo IDE, ya que ha detectado que el proyecto está gestionado por Git (En PyCharm, haciendo clic con el botón derecho del ratón encima del fichero aparecen las opciones de Git)
-
Después hacemos Commit para pasarlo al repositorio:
-
Si nos cambiamos de nuevo a la rama
main
, podemos observar cómo desaparece el ficheroprueba2.py
: -
Si cambiamos a la rama
desEjercicios1
volverá a aparecerprueba2.py
: -
Si ya hemos acabado el trabajo en nuestra rama y queremos actualizar todas las modificaciones a la rama principal, debemos FUSIONAR los cambios de la rama
desEjercicios1
con la ramamain
: -
Si hay conflictos y falla, hacemos lo siguiente para arreglarlo:
La forma más directa de resolver un conflicto de fusión es editar el archivo conflictivo. Abre el archivo que tiene el conflicto en el editor o el IDE. Vamos a eliminar todas las líneas divisorias de conflictos, como estas:
y arreglar el archivo hasta que quede como se desea. Cuando hayas editado el archivo, utilizagit add archivoEditado.txt
para preparar el nuevo contenido fusionado. Para finalizar la fusión, crea una nueva confirmación ejecutando lo siguiente:Git verá que se ha resuelto el conflicto y crea una nueva confirmación de fusión para finalizar la fusión.
-
Para ver las ramas que tengo:
-
Si estando en la rama
main
creo un fichero nuevo o una modificación, pero me olvido de añadirlo conadd
y hacercommit
, y cambio de rama... pues me estoy llevando todo los cambios a la rama a la que nos hemos cambiado por no haber hechocommit
. -
Para eliminar una rama:
2. Trabajar con stash
¶
Se trata de un comando que “congela” el estado en el que se encuentra el proyecto en un momento determinado, con todos los cambios que tenemos a "sin comitear", y lo guarda en una pila provisional brindando la posibilidad de poder recuperarlo más adelante.
-
Por ejemplo, si tengo cambios y no quiero hacer Commit en ese momento porque mis cambios aún no son definitivos, podemos dejarlo en un área temporal:
-
A partir de ese momento podré cambiar de rama ya sin problemas y al volver de nuevo a mi rama para seguir trabajando en los cambios revierto el stash:
-
También puedo hacer los
stash
que queramos con: -
Para ver los stash que tengo:
-
Para recuperar uno en concreto de la lista:
3. Gestión del proyecto enlazado con Github¶
GitHub es una plataforma de desarrollo colaborativo que utiliza el sistema de control de versiones Git. Git gestiona repositorios locales en tu ordenador, permitiendo el seguimiento de cambios en tu código. GitHub extiende esta funcionalidad al proporcionar repositorios remotos alojados en la nube, lo que facilita la colaboración entre equipos dispersos geográficamente. Permite a los desarrolladores subir sus cambios a un repositorio en línea y fusionarlos con el trabajo de otros. Además, GitHub ofrece herramientas como seguimiento de problemas, ramificaciones y solicitudes de extracción para facilitar la colaboración y la gestión de proyectos.
Ojo, parar conectar git y github, tendreis que tener una clave publica. Aqui se explica como.
-
Lo primero que debemos hacer es ir a la página web de GitHub y registrarnos con nuestro correo corporativo de
xxxxxxx@g.educaand.es
-
Después crearemos un repositorio en GitHub (para más información podéis acceder a la documentación de GitHub, Creación de un repositorio). El nombre del repositorio puede ser el siguiente, dependiendo del curso dónde estés:
- DAM1_ProgPhyton
- DAW1A_ProgPython
- DAW1B_ProgPython
-
Ahora ya tenemos nuestro proyecto gestionado por Git en local y un repositorio en la nube. Para enlazarlos y así estar tranquilos que nuestros ficheros nunca se van a perder seguiremos las instrucciones que nos proporciona GitHub al crearnos el nuevo repositorio para conectarlo con mi repo local... por ejemplo, si lo hubiéramos llamado
PruebasProgPython
y mi usuario de GitHub fueradcansib438
, nos generaría un comando similar al siguiente (lo copiamos y pegamos en Git Bash o la terminal): -
Para subir cambios a Github:
-
Para descargar los cambios que se hayan realizado en Github, realizados desde otro ordenador u otro desarrollador distinto: