Solución:
Solo pasa el -m
parámetro al merge
mando:
$ git merge other-branch -m "Commit Message"
Básicamente tienes dos opciones.
Solución fácil: no fusionar, Rebase
Vuelva a basar su rama en la parte superior de la rama principal, resuelva el conflicto y luego fusione. Como tendrá un historial directo, podrá avanzar rápidamente para fusionar y esto no creará ninguna fusionar compromiso.
git checkout feature
git rebase main
# Resolve conflict if there is
git checkout main
git merge feature
Segunda opción: Rebase -i
Puede editar su historial después de su fusión (antes de empuja a un control remoto). Puede gestionar esto con el modo interactivo rebase.
git checkout main
git merge feature
#You merge and resolve conflict
git rebase -i <sha of the commit before the merge>
Luego, lo llevarán a un shell interactivo con la lista de confirmaciones, por ejemplo:
pick 73c991e Create progress bar module
pick b8a0b83 merge branch feature
pick 2120f47 Add user form
pick 70c55e4 Quiz prototype system
Solo necesitas agregar squash
o s
en lugar de pick
:
pick 73c991e Create progress bar module
pick b8a0b83 merge branch feature
s 2120f47 Add user form
pick 70c55e4 Quiz prototype system
Este comando aplastaría juntos b8a0b83
y 2120f47
. El siguiente paso será un editor de texto de confirmación en el que haya combinado ambos mensajes de confirmación, y ahora depende de usted editarlos correctamente para conservar solo su mensaje original.
Si la confirmación ya se ha realizado, simplemente la modificaría.
Si antes de la confirmación, use un git merge
como en el siguiente ejemplo:
$ git checkout mainBranch
$ git merge featureBranch --squash --no-commit
Puede que tenga que resolver conflictos.
Este método evita la confirmación automática y todos los archivos se dejan en el índice; por lo tanto, puede enviar el código con cualquier mensaje de confirmación que desee.