Cómo cambiar entre problemas en su repositorio local de Git

En mi viaje hacia el código abierto me encontré con una situación simple (pero complicada) que puede hacerte tropezar si lo haces mal. Y eso es lo que discutiremos en este artículo.

Participar en la comunidad de código abierto significa que está contribuyendo al desarrollo de software gratuito o de código abierto. Hay muchas organizaciones que siempre dan la bienvenida a los contribuyentes a sus bases de código.

Para comenzar con el código abierto, debe tener un conocimiento básico de las herramientas de control de versiones como Git. Los colaboradores utilizan Git para realizar un seguimiento de los cambios en los archivos del proyecto y también ayuda a las personas a coordinar su trabajo en esos archivos.

Prerrequisitos

  1. Tener Git instalado
  2. Tener un conocimiento básico de Git

¿Por qué problemas?

Los problemas de un repositorio se pueden utilizar para realizar un seguimiento de las tareas, ideas, errores o mejoras del proyecto en el que está trabajando. Básicamente, le proporcionan una descripción de lo que implica la tarea.

Para abordar un problema, los administradores del proyecto deben asignarle ese problema en particular. De esta manera, otros miembros del equipo sabrán que alguien está trabajando en el problema.

Trabajando en un problema

Para comenzar a trabajar en un problema, debe hacer un clon o una copia del repositorio de destino usando el comando Git clone en su máquina local.

git clone 

Cree un flujo ascendente que le permita realizar un seguimiento de los últimos cambios ascendentes (es decir, el repositorio original). De esta forma, Git te mantiene informado cuando hay cambios para que puedas actualizar el repositorio clonado.

git remote add upstream  

Para obtener una vista previa de la lista de tareas y controles remotos disponibles que se pueden realizar (buscar y enviar), escriba:

git remote -v

Para mantenerse actualizado con los últimos cambios, siempre debe intentar buscar desde el origen. De esta manera, obtienes todas las confirmaciones de cada miembro del equipo que también trabajó en varias funciones.

git fetch /

En el futuro, deberá fusionar las confirmaciones de otros contribuyentes en el repositorio local.

git merge / 

El objetivo de la fusión de Git es hacer que la copia local de la rama maestra coincida exactamente con la copia ascendente de la rama maestra.

A continuación, cree una rama para el problema que se le asignó. ¿Por qué tienes que crear una sucursal? ¿Y para qué se usa una rama? Investiguemos más.

Rama de Git

Una rama le brinda una instantánea de los cambios que se han realizado. Cuando se realiza una confirmación, Git almacena la información de la confirmación. Esto proporciona un puntero que luego se puede utilizar para hacer referencia o realizar un seguimiento de los cambios realizados. Por eso es útil crear una rama cuando se trabaja en una nueva tarea, corrección de errores o cualquier otra característica.

Cuando empezamos, Git nos proporciona una rama maestra. La rama maestra contiene código de trabajo. Para evitar mezclar sus cambios con el código de producción, debe crear una nueva rama.

Para crear una rama, debe ingresar el siguiente comando de Git:

git checkout -b 

Este comando crea una nueva rama basada en la rama actual, aunque también puede especificar la rama donde desea que se cree su nueva rama.

git checkout -b   

Para enumerar todas las ramas disponibles en su repositorio, escriba:

git branch

Cuando se haya completado la tarea en la que está trabajando, envíe los cambios al repositorio local para su revisión. Después de eso, cree una solicitud de extracción para notificar a los administradores del proyecto sobre el estado actual de la tarea asignada.

git push -u origin  

Ahora, ¿cómo cambio para trabajar en el próximo problema?  

Cree una rama diferente con un nombre descriptivo, como este:

git checkout -b   

Una vez que tengamos nuestra rama, usaremos un comando de utilidad desde el concentrador. El comando nos ayudará a obtener el código desde el origen y también ejecutará la combinación (si instala la utilidad del concentrador).

hub sync

El comando recupera los cambios ascendentes y los fusiona con la rama recién creada. Siempre puede verificar los cambios con su rama y aguas arriba usando el comando de estado de Git:

git status

Ahora puede continuar y trabajar en la nueva rama. Solo recuerde confirmar sus cambios y enviar a la rama remota como lo hicimos anteriormente.

Errores que podrías cometer.

Puede cometer un error mientras trabaja en varios problemas, lo que puede llevar a eliminar confirmaciones de una rama.

Aquí hay un ejemplo de lo que se puede hacer para borrar confirmaciones no deseadas de una rama:

Paso 1: cambie a la rama donde le gustaría eliminar las confirmaciones no deseadas:

git checkout  

Paso 2: Ejecute los registros de las confirmaciones realizadas en la rama. Esto le ayudará a decidir qué confirmaciones le gustaría retener basándose en el Hash de confirmación único (suma de comprobación de 40 caracteres SHA1 del contenido de las confirmaciones) generalmente en esta forma: da034f6ff3e856b5ba155bc01def0847a1c4ed7e .

git log

También vale la pena señalar que si está buscando retener la confirmación más reciente (digamos la última en), simplemente puede hacer esto:

git log -n 1

Paso 3: dado que desea descartar todas las demás confirmaciones en esa rama, simplemente aplique esa única confirmación a la rama. Descartar y aplicar son dos pasos:

Primero, descarte todas las confirmaciones en la rama con:

git reset --hard / 

En términos simples, el comando anterior le dice a Git que deseche todos los cambios preparados y no preparados. Olvidará todo en la rama local actual y lo hará exactamente igual que el upstream/master.

En segundo lugar, aplique esa única confirmación a la rama con el comando:

git cherry-pick Hash //where Hash is a commit hash from other branch

Este comando elige una única referencia (es decir, confirmación) por defecto de una rama y la aplica a otra.

Paso 4: Cuando lo ejecutes git status, informará que tu rama /divergió. Dado que eso es lo esperado, debemos forzar al control remoto para que solo contenga los cambios que hemos seleccionado.

Para hacer esto, necesitamos usar un comando para ayudar a borrar el historial remoto y reemplazarlo con un historial diferente:

git push --force origin

Este comando descartará las confirmaciones adicionales en el control remoto, al igual que descartamos las confirmaciones adicionales en la copia local. Esto es peligroso porque es uno de los pocos comandos de git que descartará algo, así que tenga cuidado al usarlo.

Ahora, cuando lo ejecuta git status, informa que la sucursal está actualizada /. Esto le muestra que la operación se llevó a cabo con éxito.

Gracias por leer ?! ¿Un gran saludo para Mark Waite?  

Sigueme en Twitter.