¿Es posible hacer un , pero sin un compromiso?git merge
«man git merge» dice esto:
With --no-commit perform the merge but pretend the merge failed and do not autocommit,
to give the user a chance to inspect and further tweak the merge result before
committing.
Pero cuando intento usarlo con el todavía se confirma automáticamente. Esto es lo que hice:git merge
--no-commit
$> ~/git/testrepo$ git checkout master
Switched to branch 'master'
$> ~/git/testrepo$ git branch
* master
v1.0
$> ~/git/testrepo$ git merge --no-commit v1.0
Updating c0c9fd2..18fa02c
Fast-forward
file1 | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
$> ~/git/testrepo$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)
Un posterior revela todas las confirmaciones de la rama v1.0 fusionadas en master.git log
Solución
Tenga en cuenta la salida mientras realiza la combinación: está diciendo Fast Forward
En tales situaciones, desea hacer:
git merge <name-of-branch> --no-commit --no-ff
Importante: Si lo hace de esta manera, no podrá realizar ningún cambio en los archivos en el área de ensayo, por ejemplo, no puede eliminar / agregar archivos ni realizar ningún cambio en los archivos.
Si desea fusionar los cambios y luego confirmar como si hubiera escrito manualmente todos los cambios que fusionó (a diferencia de una combinación tradicional), debe ejecutarse después, lo que obligará a git a olvidar que la combinación ocurrió.rm .git/MERGE_HEAD
Otras respuestas
Si solo desea confirmar todos los cambios en una confirmación como si hubiera escrito usted mismo, –squash también lo hará
$ git merge --squash v1.0
$ git commit