¿Cómo puedo combinar dos commits en un commit?

Tengo una twig 'primer proyecto' con 2 commits. Quiero deshacerme de estas confirmaciones y hacer que aparezcan como una única confirmación.

El command git merge --squash suena prometedor, pero cuando ejecuto git merge --squash mi terminal solo trae opciones para el command. ¿Cuál es el command correcto?

 Commit 1: Added 'homepage.html' Added 'contacts.html' Commit 2: Added 'homepage.php' Added 'homepage.php' Deleted 'homepage.html' Deleted 'contacts.html' 

Desea hacer git rebase -i para realizar una rebase interactiva .

Si actualmente está en su "commit 1", y la confirmación que desea combinar, "commit 2", es la confirmación previa, puede ejecutar git rebase -i HEAD~2 y cambiar la primera palabra de la segunda línea de "escoger" para "aplastar". Luego escribe tu file y sal. Git aplastará tu primer compromiso en tu segundo último compromiso.

Tenga en count que este process reescribe el historial de su sucursal. Si está presionando su código en alguna parte, tendrá que dar una git push -f y cualquiera que comparta su código tendrá que pasar por algunos aros para get los cambios.

Tenga en count que si las dos confirmaciones en cuestión no son las dos últimas confirmaciones en la sucursal, el process será ligeramente diferente.

Lazy version simple para olvidadizos como yo:

git rebase -i HEAD~3 o tantos commits en lugar de 3.

Convertir esto

 pick YourCommitMessageWhatever pick YouGetThePoint pick IdkManItsACommitMessage 

dentro de esto

 pick YourCommitMessageWhatever s YouGetThePoint s IdkManItsACommitMessage 

y realice alguna acción donde esc luego enter para save los cambios. [1]

Cuando aparezca la siguiente pantalla, deshágase de las # líneas basura [2] y cree un nuevo post de compromiso o algo así, y realice la misma acción de enter escape . [1]

Wowee, tienes less compromisos. O simplemente rompiste todo.


[1] – o lo que sea que funcione con tu configuration de git. Esta es solo una secuencia que es eficiente dada mi configuration.

[2] – verás algunas cosas como # this is your n'th commit algunas veces, con tus commits originales justo debajo de estos posts. Desea eliminar estas líneas y crear un post de compromiso para reflejar las intenciones de los n compromisos que está combinando en 1.

  1. Verifica tu sucursal y count la cantidad de todas tus confirmaciones.
  2. Abre git bash y escribe: git rebase -i HEAD~<quantity of your commits> (es decir, git rebase -i HEAD~5 )
  3. En el file txt abierto, cambie la palabra key pick to squash para todas las confirmaciones, excepto la primera confirmación (que está en la parte superior). Para el superior, reword por reword (lo que significa que proporcionarás un nuevo comentario para este compromiso en el siguiente paso) y haz clic en GUARDAR.
  4. Proporcione un comentario.
  5. Abre Git y haz "Obtener todo" para ver los nuevos cambios.
  6. Hecho.