advanced git commands
Este tutorial explora comandos de Git útiles como Git Stash, Git Reset, Git Cherry Pick, Git Bisect y explica cómo integrar GitHub con Jira:
En nuestros tutoriales anteriores de esta serie, hemos visto la mayoría de las funciones de GitHub.
En este tutorial, veremos lo siguiente:
- Crear lanzamientos
- Integración con Atlassian Jira
- Comandos de Git más utilizados para desarrolladores
- Git Stash
- Git Cherry Pick
- Restablecer Git
- Git Bisect
=> Eche un vistazo a la guía de GitHub aquí.
qué dbms se ejecuta en una pc
Lo que vas a aprender:
- Crear lanzamientos
- Integración de GitHub con Jira
- Comandos avanzados de Git para desarrolladores
- Conclusión
- Lectura recomendada
Crear lanzamientos
Las versiones en GitHub se utilizan para agrupar su software, agregar notas de la versión y binarios (archivos WAR, EAR, JAR) para que los clientes y las personas usen el mismo.
Para crear una versión, vaya a la página principal del repositorio y haga clic en el Lanzamientos pestaña debajo Gestionar temas.
Haga clic en Cree una nueva versión.
Proporcione una etiqueta y un título de lanzamiento. Los binarios también se agregan a la versión. Una vez hecho, haga clic en Publicar lanzamiento.
El lanzamiento ya está listo con el código fuente y los binarios.
Integración de GitHub con Jira
Uno de los aspectos importantes de la trazabilidad es hacer referencia al problema de Jira con las confirmaciones en GitHub. GitHub se puede integrar con Jira no solo para hacer referencia al problema, sino también para ayudar a crear ramas y Pull Request desde dentro de Jira.
Por lo general, una vez que el desarrollador comienza a trabajar en la tarea o los errores, crea una rama. Publique el desarrollo o resuelva los errores, se puede crear una solicitud de extracción desde Jira para fusionarla con la Maestro rama. La rama creada por el desarrollador se puede eliminar.
Para configurar la integración, hemos utilizado un complemento Integración de Git para Jira. Este es un complemento comercial. El complemento se puede descargar desde Aquí
Instale el complemento en Jira desde Administrador -> Complementos.
Una vez que el complemento esté instalado, vaya a Aplicación -> Repositorios de Git y conéctese a GitHub.
Ingrese el nombre de usuario y la contraseña de GitHub. Hacer clic Conectar .
Se mostrarán los repositorios mencionados para la cuenta de usuario. Haga clic en Importar repositorios para finalizar la configuración de la integración.
Problema de compromiso de GitHub con Jira
Como parte del mensaje de confirmación, ingrese como se muestra a continuación. Haga clic en Cometer cambios .
Ejemplo 1: A continuación se muestra un ejemplo de Compromiso inteligente que permite a los desarrolladores realizar acciones sobre los problemas de Jira desde el mensaje de confirmación. Uno de esos comandos es el #comentario junto con la clave Problema que agrega el comentario al problema de Jira como se muestra a continuación.
Se actualizó la sección de comentarios.
Ejemplo 2: Asignar a un usuario y actualizar el tiempo transcurrido como 4 h.
Utilizar el #asignar y #hora comando de confirmación inteligente en el mensaje de confirmación.
Ambas acciones se han completado.
Ejemplo 3: Cambie el estado del problema a En progreso .
Crear una sucursal
A medida que se asignan tareas y errores a los desarrolladores, necesitan comenzar a trabajar en el desarrollo. Para ello, crean una rama para el problema en el que están trabajando, realizan las actividades de desarrollo y generan una solicitud de extracción para fusionarse en la rama maestra.
En la edición de Jira en la parte inferior, haga clic en Crear rama.
Haga clic en Crear rama.
En GitHub, realice un cambio en el archivo en la rama creada anteriormente y confirme el mismo.
A medida que se completa el desarrollo, el usuario puede generar una solicitud de extracción de Jira.
En la parte inferior del número, haga clic en Crear solicitud de extracción.
Haga clic en Crear. La solicitud de extracción se mostrará como abierta.
El siguiente paso es fusionar la solicitud de extracción en GitHub.
El estado se actualiza en consecuencia en Jira.
Comandos avanzados de Git para desarrolladores
En esta última sección, veremos algunos de los comandos de Git más utilizados por los desarrolladores. No tiene nada que ver con GitHub, pero ayudará a los desarrolladores antes de que apliquen los cambios a GitHub.
Git Stash
En la mayoría de los escenarios del proyecto, cuando está trabajando en una nueva característica o mejora, de repente sería necesario que trabajara en un defecto urgente que se ha informado y es un obstáculo. Como está a la mitad de su nuevo trabajo y no lo ha completado, no tiene sentido comprometer los cambios que están a medio hacer.
Por lo tanto, es mejor suspender o guardar temporalmente el trabajo a medio hacer, trabajar en el error y volver a trabajar en la nueva función o mejora. Git stash proporciona una solución a esto. Puede cambiar fácilmente el contexto para realizar cambios rápidamente.
Ejemplo 1 :Suponga que está trabajando en una tarea que se le asignó y, cuando mira el estado, muestra que no está rastreado a partir de ahora.
De repente, se le ha asignado un error de alta prioridad. Por lo tanto, debemos guardar o guardar temporalmente el trabajo en el que se está trabajando.
Ejecute el siguiente comando.
git stash guardar 'Mensaje'
En este momento, el directorio de trabajo está limpio. Se pueden realizar nuevas confirmaciones y si hay errores, puede cambiar de rama para trabajar en ella, etc.
Cuando desee volver a aplicar los cambios donde lo había dejado, use el comando.
git stash pop
El comando anterior eliminará el alijo de la lista y aplicará el último estado guardado.
También puedes usar:
aplicar git stash
El comando anterior mantendrá los cambios en el alijo y no los eliminará.
Ahora los cambios se vuelven a aplicar y puede confirmar los cambios.
Ejemplo 2: Guarde sus cambios, cambie de rama y combine cambios.
Realice el cambio en el archivo Html en el Maestro cambios de rama y alijo.
Lo siguiente es cambiar al bicho rama, hacer cambios y confirmar cambios.
git checkout -b error
Realice cambios en el archivo Html.
git commit -a -m 'Problema de correo electrónico solucionado'
Regrese al Maestro bifurque y vuelva a aplicar los cambios de alijo.
Ahora fusiona desde el bicho rama a la Maestro rama. Confirme los cambios después de la fusión.
Ejemplo 3: Trabajando con Multiple Stash.
En el repositorio local, hay 2 archivos Html. Por lo tanto, es posible que varios desarrolladores trabajen en varios archivos y oculten los cambios según sea necesario para trabajar en las solicitudes urgentes que se les presenten para corregir los cambios.
El desarrollador 1 trabaja en hello.html y el desarrollador 2 trabaja en index.html.
Desarrollador 1
La lista de alijo tiene 1 entrada ahora.
Desarrollador 2
La lista de alijo ahora tiene 2 entradas. El último alijo es el primero en la pila, que es alijo @ {0}. Ahora ambos desarrolladores pueden hacer cualquier otra confirmación con urgencia o trabajar en alguna otra rama y luego volver al Maestro rama y aplicar los cambios de alijo.
Para aplicar el último alijo, puede ejecutar
git stash pop
Para aplicar un alijo específico en la pila, ejecute el siguiente comando.
git stash pop stash @ {1}
Apliquemos el segundo alijo que es alijo @ {1}
Del mismo modo, se puede aplicar el otro alijo.
Git Cherry Pick
Hoy en día, los desarrolladores trabajan en múltiples ramas como características, mejoras, errores, etc.
Hay situaciones en las que solo es necesario seleccionar un par de confirmaciones específicas y no fusionar toda la rama en otra rama. Esto se llama Cherry Pick. Este proceso le permite elegir arbitrariamente cualquier compromiso de Git de las otras ramas y agregarlo al HEAD actual del árbol de trabajo.
Ejemplo 1:
En el repositorio local de git, tenemos los siguientes 6 archivos.
Se elimina un archivo, digamos file5.txt.
Confirma los cambios.
Mire el registro ahora. Se elimina el archivo5.txt.
Entonces, queremos Cherry-Pick la confirmación donde agregamos file5.txt. Necesitamos encontrar el ID de confirmación de file5.tx y ejecutar el comando.
git cherry-pick
En este caso, el ID de confirmación de cuando se agregó file5.txt es a2f0124
File5.txt ahora está restaurado. Elegimos el compromiso.
Ejemplo 2:
Solo modifiquemos file6.txt y confirmar los cambios en el Maestro rama.
Mira la segunda línea en file6.txt donde el correo electrónico no se especifica correctamente.
Cree una rama de error y solucione el problema. Al mismo tiempo, modifique también file5.txt para que tengamos múltiples confirmaciones realizadas en la rama de error, pero Cherry-Pick solo seleccionará la confirmación realizada en file6.txt.
Archivo6 modificado en bicho rama.
Entonces, en general, hemos realizado cambios en file5 y file6 en la rama Bug.
Ahora volvamos al Maestro branch y Cherry-Elija la confirmación realizada solo para file6.txt.
Como puede ver, en lugar de fusionar el bicho ramificarse en el Maestro branch, solo hemos seleccionado Cherry-Picked solo una confirmación específica y aplicado en la rama master.
Restablecer Git
Git reset es un comando poderoso para deshacer cambios locales. Entonces, para quitar la etapa, todos los archivos preparados se usa este comando.
Ejemplo
Modifique un archivo y agréguelo a la preparación. Restablezca usando el comando como se muestra cuando los cambios por etapas no están por etapas.
Parámetros de git reset mando.
-suave: Este parámetro apuntará el HEAD a otra confirmación. Todos los archivos se cambian entre el HEAD original y la confirmación se realizará. El directorio de trabajo está intacto.
Mira la ubicación actual de HEAD.
Retrocedamos 5 confirmaciones en el historial.
Vuelva a confirmar los cambios.
-mezclado: La opción es similar al parámetro suave. Por lo general, cuando hay algunas confirmaciones incorrectas, las eliminas, las arreglas más tarde y las devuelves. Entonces, esencialmente, necesitamos agregar al índice usando git agregar y luego git commit. Los cambios se dejan en el árbol de trabajo.
Retrocedamos 2 confirmaciones en el historial y veamos que no se realiza el seguimiento de los archivos.
Ahora agregue los archivos a la preparación y confirme los cambios.
-difícil: Este parámetro descansará hasta un punto donde existía un archivo en particular. Los cambios no estarán disponibles en el árbol de trabajo.
Mirando el registro anterior, volvamos al punto donde solo se comprometió el archivo 1, es decir, la última entrada.
Usando git reset –hard
Git Bisect
Encuentre la confirmación exacta que rompió el código (después de todo, todos somos humanos). A menudo, durante la prueba de la aplicación, escuchamos de nuestros evaluadores que hay un error o que la función no funciona y usted, como desarrollador, dirá que funcionó la semana pasada. Entonces, ¿qué pasó y por qué apareció este error?
A veces, un cambio en el otro código podría haber afectado su función. Tienes que pasar tiempo revisando el historial donde hay muchas confirmaciones que requieren mucho tiempo y son difíciles de rastrear, qué cambio causó la rotura del código.
Git Bisect es el comando para encontrar la confirmación exacta cuando se introdujo el error. Con Git bisect, debes elegir dos confirmaciones, una buena y otra mala. Aproximadamente a mitad de camino entre ambas confirmaciones se verificará. Verifica cada confirmación, ya sea mala o buena, hasta que se encuentre la confirmación que causó la falla o el código.
Ejemplo:
- Cree un nuevo repositorio de git local y cree un archivo llamado index.html
- Contenido inicial del archivo como se muestra.
- Agregue a la etapa de pruebas y confíe en el repositorio.
- Cree un historial de confirmaciones como se muestra, para que podamos elegir entre buenas y malas confirmaciones. Ahora, cuando se realiza la confirmación inicial, haga los otros cambios como se muestra y confirme lo mismo. En general, haremos 7 confirmaciones.
Segundo cambio
Tercer cambio
Cuarto cambio
Quinto cambio
Sexto cambio
Séptimo cambio
Detengámonos aquí. Entonces, tenemos siete confirmaciones.
Si mira la página Html, las líneas después de 'Los 4 eventos ...' son incorrectas y, por lo tanto, la documentación no es correcta. Entonces, necesitamos encontrar la confirmación donde se introdujo el error para que podamos descansar nuestro HEAD en esa confirmación.
Veamos el registro y averigüemos el malo y buen compromiso.
La última confirmación no es correcta, por lo que puede ser una mala confirmación. La confirmación se introdujo después de la tercera confirmación, por lo que podemos tener la Tercer cambio como el buen compromiso.
El proceso de bisección comienza con inicio de git bisect y termina con git bisect reset.
git bisect mal // Como última confirmación es mala. No es necesario proporcionar el ID de confirmación.
git bisect bueno
Ahora puede ver que HEAD se encuentra ahora entre la mitad del compromiso malo y bueno.
Mire el contenido de index.html y vea si hay una buena confirmación. De lo contrario, el error aún no se encuentra.
No es que el error todavía exista. La última línea está mal. Entonces, ejecutamos ' git bisect bad '. Todavía hay un compromiso incorrecto y el contenido actual no es aceptable.
El contenido anterior es correcto y aceptable.
Ejecute 'git log –oneline' y 'git bisect good'.
Entonces el Quinto cambio fue la primera mala confirmación y realmente así. Se identifica el error.
El contenido actual debe estar en la documentación final.
A medida que se identifica la confirmación incorrecta, puede informar al desarrollador que corrija los cambios que pueden ser para restablecer la cabeza al cuarto cambio, que fue la última confirmación correcta.
Correr ' git bisect restablecer ’Para finalizar el proceso.
Conclusión
En este manual práctico de GitHub, hemos tratado de cubrir todo lo que un desarrollador necesitaría trabajar, es decir, desde el punto de vista del control de versiones y el seguimiento.
En los primeros tres tutoriales de la serie GitHub, hemos aprendido sobre actividades de control de versiones, creación de repositorios, solicitud de extracción, sucursales, revisiones de código, organizaciones y equipos, bifurcación de un repositorio, etiquetas, hitos, problemas, tableros de proyectos, wikis, lanzamientos, integración. con Jira y algunos comandos de Git de uso común para desarrolladores.
Realmente esperamos que todos los desarrolladores encuentren útil este enfoque práctico para GitHub y los comandos de Git en sus proyectos.
=> Lea la serie de formación Easy GitHub.
Lectura recomendada
- GitLab Jira Integration Tutorial
- Comandos Unix: Comandos Unix básicos y avanzados con ejemplos
- Integración de selenio con GitHub usando Eclipse
- Tutorial de integración de JIRA y SVN
- Git vs GitHub: Explore las diferencias con ejemplos
- Tutorial de Cucumber Selenium: Integración de Cucumber Java Selenium WebDriver
- Tutorial de GitHub para desarrolladores | Cómo usar GitHub
- Tutorial de Unix Pipes: Pipes en la programación Unix