Inicio·Comandos de terminal

git merge

git

Uso

git merge [--no-ff|--squash] <branch>

Trae el trabajo de otra rama a la actual; --squash no registra una fusión, así que git sigue considerando esa rama sin fusionar.

Opciones habituales

OpciónSignificado
--no-ffalways record a merge commit, even when a fast-forward was possible
--ff-onlyrefuse unless it can fast-forward
--squashstage the combined change without committing or recording a merge
--abortundo a merge that stopped on conflicts
--continuefinish after you resolved the conflicts
-X ours|theirsauto-resolve conflicting hunks one way
--no-commitmerge but leave the commit to you

Ejemplos

git merge --no-ff feature/login

keeps the branch visible in history

git merge --abort

gets you back to before the conflicted merge

git merge --squash feature/login

one flat change, staged; you still have to commit

Lo confuso es que deshacer tiene varias formas: mover a dónde apunta una rama no es lo mismo que añadir un commit que la revierte.

Cómo leerlo

  • Los corchetes [ ] marcan una parte que puedes omitir.
  • Los puntos suspensivos … indican que puedes poner varios.
  • Las opciones distinguen mayúsculas: en algunos comandos -r y -R no hacen lo mismo.

Preguntas

Q. ¿Qué hace git merge?

Trae el trabajo de otra rama a la actual; --squash no registra una fusión, así que git sigue considerando esa rama sin fusionar.

Q. ¿Cómo se escribe?

git merge [--no-ff|--squash] <branch> — los corchetes marcan lo que puedes omitir.

Q. ¿Cuántas opciones vale la pena saber?

Aquí van 7; la lista completa está en man git. Este comando está en git.

Comandos relacionados

página man: man git-merge