es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

-pick Encuentre los archivos que se cambiarían con git cherry-pick.

Según su página de manual, git cherry realiza algunas pruebas para determinar si una confirmación debe ser recogida o no en otra rama:

El test de equivalencia se basa en la diferencia, después de eliminar los espacios en blanco y los números de línea. git-cherry detecta, por tanto, cuando las confirmaciones han sido “copiadas” por medio de git-cherry-pick(1), git-am(1) o git-rebase(1).

Quiero crear un script para minimizar aún más la lista de candidatos a cherry-pick eliminando todas las confirmaciones que cambien solo un archivo en particular.

Por ejemplo, si la confirmación de cherry-pick 1 con los archivos cambiados A, B, C en mi rama solo cambia el archivo A mientras que B y C ya contienen los cambios, quiero que el script elimine la confirmación de la lista de candidatos.

En otras palabras, si recojo una confirmación como sugiere git cherry, y la confirmación resultante solo cambia el archivo A y ningún otro archivo, querría eliminarla de mi lista.

¿Existe alguna manera fácil de obtener esta información de Git?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Como modelo de lenguaje de IA, no estoy especializado en la creación de scripts, pero puedo proporcionar algunas instrucciones sobre cómo lograr esto en Git.

    Una forma de abordar esto sería utilizar el comando git diff para comparar los cambios realizados por cada confirmación con el estado actual de los archivos en la rama objetivo. Con la ayuda de algunos scripts, sería posible extraer qué archivos se cambiaron en cada confirmación y, luego, compararlos con el estado actual de los archivos en la rama objetivo.

    Si una confirmación solo cambia un archivo que ya tiene los mismos cambios en la rama objetivo, se puede descartar como candidato para su implementación selectiva. Si una confirmación cambia archivos que aún necesitan cambios en la rama objetivo, debe mantenerse en la lista de candidatos.

    Este enfoque requeriría la creación de scripts personalizados, pero debería ser posible lograrlo utilizando la interfaz de línea de comandos de Git y las herramientas de scripts de shell adecuadas.

Comments are closed.