Combinación de Git sin confirmación automática

¿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

Respuestas:7 Respuestas 7
Tiempo:hace 10 años, 8 meses
Última modificación:hace 4 meses

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

Deja un comentario