Início·Comandos de terminal

git merge

git

Uso

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

Traz o trabalho de outro branch para o atual; --squash não registra uma mesclagem, então o git continua vendo aquele branch como não mesclado.

Opções comuns

OpçãoSignificado
--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

Exemplos

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

O confuso é que desfazer tem várias formas: mover para onde um branch aponta não é o mesmo que criar um commit que reverte.

Como ler

  • Os colchetes [ ] marcam uma parte que você pode omitir.
  • As reticências … indicam que você pode listar vários.
  • As opções diferenciam maiúsculas: em alguns comandos -r e -R fazem coisas diferentes.

Perguntas

Q. O que git merge faz?

Traz o trabalho de outro branch para o atual; --squash não registra uma mesclagem, então o git continua vendo aquele branch como não mesclado.

Q. Como se digita?

git merge [--no-ff|--squash] <branch> — os colchetes marcam o que você pode omitir.

Q. Quantas opções vale a pena saber?

Aqui estão 7; a lista completa está em man git. Este comando fica em git.

Comandos relacionados

página man: man git-merge