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ção | Significado |
|---|---|
| --no-ff | always record a merge commit, even when a fast-forward was possible |
| --ff-only | refuse unless it can fast-forward |
| --squash | stage the combined change without committing or recording a merge |
| --abort | undo a merge that stopped on conflicts |
| --continue | finish after you resolved the conflicts |
| -X ours|theirs | auto-resolve conflicting hunks one way |
| --no-commit | merge but leave the commit to you |
Exemplos
git merge --no-ff feature/loginkeeps the branch visible in history
git merge --abortgets you back to before the conflicted merge
git merge --squash feature/loginone 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