Cómo Git PR desde la línea de comandos by@alonn24
165,097 lecturas

Cómo Git PR desde la línea de comandos

2018/06/18
por @alonn24 165,097 lecturas
ES
Read on Terminal Reader

Demasiado Largo; Para Leer


Company Mentioned

Mention Thumbnail
featured image - Cómo Git PR desde la línea de comandos
Alon Yehezkel HackerNoon profile picture

@alonn24

Alon Yehezkel
react to story with heart

Git es un sistema de control de versiones distribuido gratuito y de código abierto diseñado para manejar todo, desde proyectos pequeños hasta proyectos muy grandes con velocidad y eficiencia: https://git-scm.com/ . Git es el software de control de versiones más común que se usa hoy en día porque es diferente de otros software de control de código fuente que existen. Lo que lo hace mejor es que está distribuido, lo que significa que cada colaborador tiene un clon completo del repositorio y puede trabajar con un repositorio remoto para fusionar cambios usando algoritmos uniq como rebase, etc. Si desea saber más sobre git, este es un buen lugar para comenzar.

Usamos git como línea de comando para crear repositorios y hacer cambios, fusionarlos con repositorios ascendentes y más. Hay muchas herramientas construidas sobre git, una de ellas es Github. Github es un software que permite maximizar la colaboración entre diferentes usuarios, brindando muchas funciones además de problemas como git, wiki y muchas otras. Git permite que las comunidades se esfuercen y que se sirvan proyectos de código abierto. incluida la gestión de sucursales de funciones y las solicitudes de extracción, que es de lo que se trata esta publicación.

Pull Request (PR) es una característica de Github que permite a los usuarios colaborar mejor juntos. Por lo general, en el software de control de código fuente hay una rama principal que describe la producción; en git, es la rama maestra. Se puede crear una rama de características y hacer cambios allí, luego emitir un PR a la rama maestra para que otra persona revise, apruebe o rechace los cambios y se fusione con la rama maestra eventualmente. Discutir posibles mejoras es crucial para escribir y mantener un repositorio de alta calidad.

Ahora PR es una función de Github, pero se basa en la función de git llamada request-pull . Git admite relaciones públicas al proporcionar una función que le permite solicitar una extracción de un conjunto de trabajo a otro desde diferentes sucursales o diferentes repositorios. El comando le permite revisar un resumen de la rama de características con todas las confirmaciones y cambios que se fusionarán. Cuando se trabaja con PR, se recomienda trabajar en una rama de función y no en el maestro y hacer PR en el maestro. Mostraré solo ejemplos que describen las mejores prácticas. La herramienta de línea de comando de solicitud de extracción le permite revisar todos los cambios que hizo en la rama de función,

Los argumentos de la línea de comando request-pull no son tan sencillos. git request-pull --help le mostrará el uso completo y las especificaciones del comando.

La firma básica es git request-pull [-p] <start> <url> [<end>]

  • [-p]: ejecutar request-pull sin esa opción generará un resumen de los archivos modificados. -p es más detallado y generará todos los cambios que se han realizado desde la confirmación dividida hasta la final.
  • <inicio>: es el punto de partida al que desea fusionarse. La mayoría de las veces le daremos la rama maestra y git calculará el compromiso de inicio por su cuenta. La confirmación de inicio es el ancestro común del que se separó la rama de características.
  • <url>: es el repositorio con el que comparar. Puede ser un repositorio local y puede ser uno remoto.
  • <end> — El punto final con el que queremos dejar de comparar. Por lo general, no indicaremos la confirmación final porque nos gustaría fusionar todos los cambios recientes. Para simplificar las cosas, no mostraremos este uso.

image

Para fusionar los últimos cambios de la rama de funciones con la rama principal, primero queremos asegurarnos de que estamos en la rama de funciones, ya que esta es una solicitud de la rama de funciones para fusionarse con la principal. Vaya a la rama de características con git checkout -b [branch-name] . Luego, podemos ejecutar git request-pull master ./ para ejecutar una comparación desde la rama de funciones hasta el maestro. Tenga en cuenta que establecemos el maestro como el inicio y el repositorio local para comparar, por lo que para obtener resultados precisos, debemos obtener el último maestro.

Examinemos tal salida:

image

Podemos separar la salida del comando en 2 partes:

  1. Los detalles de las confirmaciones: podemos ver la confirmación inicial calculada (SHA1 + descripción) y la confirmación final (SHA1 + descripción) seguidas de todas las confirmaciones intermedias. En nuestro caso, solo hay un compromiso "compromiso inicial de visualizaciones".
  2. Los archivos que se han cambiado: podemos ver que tenemos 8 archivos cambiados con 180 inserciones. Si ejecutáramos el comando con el indicador -p, también veríamos los cambios y no solo un resumen.

En la página de solicitud de Github PR, podemos ver que los detalles de los cambios que se muestran allí son exactamente lo que vemos aquí, con pequeñas modificaciones. Para ver todos los cambios para el PR, podemos ejecutar el ejemplo anterior con -p , pero para ver los cambios para cada confirmación tendremos que ejecutar otro comando dado el gif diff [SHA1] [SHA1]^ .

Hasta ahora, trabajamos solo con funciones de git, lo que significa que las solicitudes de extracción son un término de git y la CLI es compatible con todo lo que se muestra en las implementaciones de la interfaz de usuario, como Github. Ahora, para emitir una solicitud de relaciones públicas real en Github, necesitamos usar la API pública de Github. HUB es una gran herramienta que le permite interactuar con la API de Github y realizar cambios en el repositorio desde la línea de comandos, por ejemplo, puede crear un PR en Github ejecutando hub pull-request .

Eso es todo, de ahora en adelante haré mis relaciones públicas solo desde la línea de comandos.

image

HISTORIAS RELACIONADAS

L O A D I N G
. . . comments & more!
Hackernoon hq - po box 2206, edwards, colorado 81632, usa