tipos - Aplaste todas mis confirmaciones en una para la solicitud de extracción de GitHub
git ver archivos modificados (4)
Prueba git rebase -i
, y usa ''squash'' para todas las confirmaciones que quieras aplastar.
Editar:
git rebase -i
le mostrará un editor interactivo con la lista de confirmaciones que está modificando. El comando predeterminado antes de cada commit es "pick", por lo que solo necesita s / pick / squash / para todos los commits que quiera aplastar, y luego todos se concentrarán en su último commit anterior.
Asegúrate de volver a basar en una rama correcta.
Esta pregunta ya tiene una respuesta aquí:
- Aplaste mis últimas X confirmaciones usando las respuestas de Git 27
Hice una solicitud de extracción en GitHub. Ahora, el propietario del repositorio está diciendo aplastar todos los commits en uno.
Cuando git rebase -i
Notepad se abre con el siguiente contenido:
noop
# Rebase 0b13622..0b13622 onto 0b13622
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit''s log message
# x, exec = run command (the rest of the line) using shell
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
# Note that empty commits are commented out
Busqué en Google, pero no entiendo cómo hacerlo.
Simplemente una adición simple para ayudar a alguien más a buscar esta solución. Puede pasar la cantidad de confirmaciones previas que desea aplastar. por ejemplo,
git rebase -i HEAD~3
Esto mostrará los últimos 3 commits en el editor.
ok lo descubrí ... Primero tuve que escribir git rebase -i xxxxxxxxxxxxxxxx
donde xxxxxxxxxx es el SHA del compromiso hasta el cual tengo que aplastar. Luego, en el Bloc de notas, edité el primero como selección y resto de todos como squash. Luego vendrá una nueva ventana de bloc de notas y allí en la primera línea escribí el nombre de mi nueva confirmación. Y luego tuve que hacer un esfuerzo de fuerza:
git push --force origin master
A partir del 1 de abril de 2016 , ahora es posible para el administrador del repositorio aplastar todas las confirmaciones de una solicitud de extracción en una única confirmación seleccionando la opción "Squash and merge" en una solicitud de extracción.
Por supuesto, si aún desea aplastar manualmente las confirmaciones antes de la fusión, la respuesta de fontno es la mejor solución.