Envié un cambio a un proyecto de código abierto en Github y recibí comentarios de revisión de código de uno de los miembros del equipo central.
Me gustaría actualizar el código teniendo en cuenta los comentarios de revisión y volver a enviarlo. ¿Cuál es el mejor flujo de trabajo para hacer esto? Desde mi conocimiento limitado de git / github, podría hacer lo siguiente:
Actualice el código como una nueva confirmación y agregue tanto la confirmación inicial como la actualizada a mi solicitud de extracción.
¿De alguna manera (??) revierte la confirmación anterior de mi repositorio, y crea una confirmación nueva que contiene todo, y luego presenta una solicitud de extracción para eso?
git commit
tiene una función de modificación, pero he oído que no debe usarla después de haber enviado la confirmación fuera de su repositorio local. En este caso, realicé el cambio en mi PC local y me trasladé a mi rama github del proyecto. ¿Estaría bien usar 'enmendar'?¿Algo más?
Parece que la opción 2/3 sería buena, ya que el proyecto de código abierto solo tendría una confirmación en su historia que implementaría todo, pero no estoy seguro de cómo hacerlo.
Nota: No sé si esto afecta la respuesta o no, pero no hice los cambios en una rama separada, solo hice una confirmación en la parte superior del maestro
fuente
master
es una rama demasiado, por lo que técnicamente no importa :)Para actualizar una solicitud de extracción
Para actualizar una solicitud de extracción (punto n. ° 1), lo único que debe hacer es retirar la misma rama de la que proviene la solicitud de extracción y presionarla nuevamente:
Opcional: historial de confirmación de limpieza
Es posible que se le solicite que aplaste sus confirmaciones para que el historial del repositorio esté limpio, o que desee eliminar las confirmaciones intermedias que distraen del "mensaje" en su solicitud de extracción (punto # 2). Por ejemplo, si su historial de confirmación se ve así:
Es una buena idea juntar las cosas para que aparezcan como una sola confirmación:
Esto le pedirá que elija cómo reescribir el historial de su solicitud de extracción, lo siguiente estará en su editor:
Para cualquier compromiso que desee formar parte del compromiso anterior: cambie la selección para aplastar:
Y cierra tu editor. Git reescribirá el historial y le pedirá que proporcione un mensaje de confirmación para la confirmación combinada. Modifique en consecuencia y su historial de confirmación ahora será conciso:
Empuja eso a tu tenedor:
y su solicitud de extracción contendrá una sola confirmación, incorporando todos los cambios previamente divididos en varias confirmaciones.
Cambiar la historia en repositorios públicos es algo malo
Reescribir el historial y usarlo
git push -f
en una rama que, potencialmente, alguien más ya ha clonado es algo malo, ya que hace que el historial del repositorio y el del proceso de pago difieran.Sin embargo, es bueno enmendar el historial de su bifurcación para corregir el cambio que propone integrar en un repositorio. Como tal, no tenga reservas que eliminen el "ruido" de sus solicitudes de extracción.
Una nota sobre ramas
En lo anterior, muestro que la solicitud de extracción proviene de la
master
rama de su bifurcación, no hay nada de malo en eso necesariamente, pero crea ciertas limitaciones, como, si esta es su técnica estándar, solo poder tener un PR abierto por repositorio . Sin embargo, es una mejor idea crear una rama para cada cambio individual que desee proponer:fuente
git push -f
. No hubo muchos comentarios, pero eso es algo que no esperaba.prune
no elimina esa confirmación separada, su historial seguirá coincidiendo con los comentarios de PR.