CodeGym /Curso de Java /Python SELF ES /Trabajando con ramas git en PyCharm

Trabajando con ramas git en PyCharm

Python SELF ES
Nivel 12 , Lección 3
Disponible

11.1 Ramas en git

Trabajar con ramas (branches) en Git es uno de los aspectos clave de la gestión de versiones, que permite llevar varias líneas de desarrollo en paralelo en un solo repositorio. Ramificar hace que Git sea una herramienta poderosa para colaboración, experimentación y gestión de diferentes versiones de un proyecto.

Puedes ver las ramas en Git como carpetas, donde Git copia tu proyecto. Tienes la carpeta principal de tu proyecto en tu repositorio localmaster. Git puede crear copias de esta carpeta para que puedas experimentar sin arriesgar dañar el código principal que funciona bien. Estas carpetas-copia se llaman ramasbranches.

Las ramas son variantes alternativas del código. Imagina que quieres rehacer algo en un gran proyecto o hacer un experimento en el cual no estás del todo seguro. ¿Qué harías sin Git?

Podrías copiar el proyecto en una nueva carpeta y tratar de cambiar todo allí. Si te gusta el resultado, puedes copiarlo en la carpeta principal. Si no te gusta — olvídate de él, o simplemente elimínalo.

Veamos un ejemplo de la vida real, como escribir un libro:

  1. Tienes un manuscrito del libro (rama principal).
  2. Decides intentar cambiar el final (creación de una nueva rama).
  3. Escribes el nuevo final en un documento separado (trabajo en la nueva rama).
  4. Si el nuevo final resulta mejor, reemplazarás el antiguo en el manuscrito (fusión de ramas).
  5. Eliminas el documento con el nuevo final (eliminación de la rama).

11.2 Creación de ramas

Crear una rama en PyCharm es muy fácil.

Introduce el nombre de la rama.

PyCharm inmediatamente mostrará el nombre de tu rama actual en la parte superior del menú:

¿Qué había antes?

Antes se mostraba el nombre de tu primera y principal rama — master.

Ahora se muestra test, lo que significa que Git (bajo la dirección de PyCharm) no solo creó una nueva rama, sino que también cambió inmediatamente a ella.

Agreguemos algún código al archivo main.py de la rama actual (test) y hagamos commit.

11.3 Cambiando entre ramas

Paso 1. Selecciona la rama.

Ahora vamos a cambiar a nuestra vieja rama. Haz clic en el menú superior, y ¿qué vemos allí?

No te confundas — todo es muy sencillo:

Local — es la lista de ramas de tu repositorio git local; hay dos:

  • test
  • master

Remote — es tu repositorio remoto, que está en el servidor GitHub. Hemos enviado tus cambios allí, pero no hay una nueva rama, lo cual es lógico. El repositorio remoto se llama origin, y solo tiene la rama master.

Recent — es la lista de nombres de las últimas ramas con las que trabajaste. Este punto se ha añadido en PyCharm para mayor comodidad y rapidez.

El nombre origin/master a la derecha del nombre del repositorio local — es el nombre del repositorio remoto, con el cual está sincronizado actualmente, y donde se enviarán los cambios.

Paso 2. — Cargamos el código de la rama en la carpeta actual.

Paso 3. Revisamos:.

Me aparece la rama (master) y el código antiguo.

11.4 Fusionando ramas

Ahora intentemos combinar el código de nuestras dos ramas.

Paso 1. Primero, añadamos a nuestro proyecto un archivo más — init.py y escribamos en él algún código.

  • Creando archivo init.py
  • Escribimos dentro print("Hola")
  • Cometemos el archivo.

Así es como se ven mis dos archivos en la rama master:

Paso 2. Fusiones de ramas.

Fusionaremos en nuestra rama actual (master) los cambios que se hicieron en la rama test.

Para ello, también utilizaremos el menú superior y el comando «Merge ‘test’ into ‘master’».

Paso 3. Revisamos el resultado:.

Revisamos:

  • Sigue mostrando la rama master arriba
  • Tenemos dos archivos: init.py y main.py
  • El archivo main.py contiene el código que se agregó en la rama test.

11.5 Conflictos al fusionar

A veces hay conflictos al fusionar ramas.

Si haces cambios en un archivo en diferentes ramas e intentas fusionarlos, puede surgir un conflicto.

Conflicto de archivos de texto

Git es un sistema muy inteligente, reconoce tipos de archivos. Si haces cambios en diferentes lugares de archivos que considera textuales, simplemente trasladará los cambios de un archivo a otro en el lugar correcto, como lo haría una persona.

Conflicto de archivos binarios

Pero si haces cambios en una imagen o documento, Git no intentará fusionar sus partes en un archivo, simplemente te pedirá elegir qué versión del archivo quieres dejar en la rama actual.

Resolución manual de conflictos:

Si haces cambios en el mismo lugar de un archivo de texto, Git no podrá fusionar correctamente las diferentes versiones y te propondrá hacerlo a ti.

Así es como podría verse:

¿Qué ves aquí?:

  • A la izquierda el contenido del archivo main.py de la rama master
  • A la derecha el contenido del archivo main.py de la rama test
  • En medio, PyCharm te propone escribir la versión final del código (puedes hacer clic en los botones «>>» y «<<», para insertar automáticamente los cambios de uno de los archivos).

Acepté la variante master y escribí el código a mano. Esto fue lo que obtuve.

11.6 Historia de los cambios

También es útil e interesante: puedes ver la historia de cambios de cualquier archivo, haciendo clic en el botón Show History. Hay dos lugares donde puede encontrarse — encuéntrala.

Así es como se ve la historia de cambios para mí en el archivo main.py:

Explicaciones:

  • A la izquierda ves la historia de cambios del archivo específico:
    • Cuanto más reciente es el cambio, más arriba está; cuanto más antiguo — más abajo.
    • Aquí también se muestra la historia de la fusión de ramas.
  • A la derecha — los cambios realizados en un commit específico.
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION