git: junção automática vs junção normal (não-conflitante)?

estou em master.

realização:

git merge feature_branch

eis alguns resultados indicativos:

   Auto-merging src/myproject/web/api/submodule/__init__.py
   Merge made by the 'recursive' strategy.
    src/myproject/application/cli.py                            |    4 +
    src/myproject/foo/__init__.py                             | 1167 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    src/myproject/foo/auditors.py                             |  256 +++++++++++++++++++++++++++++++
    src/myproject/foo/handlers.py                             |  247 ++++++++++++++++++++++++++++++
    src/myproject/web/api/submodule/__init__.py              |   16 +-

por que apenas para o primeiro ficheiro a acção é "auto-fusão" é mencionada?

(o que não é o caso dos outros ficheiros)

O que tem de tão especial?

Author: pkaramol, 2018-05-22

1 answers

Se um ficheiro Só for modificado num dos dois ramos envolvidos na junção, então não será mencionado. Não é necessária nenhuma junção, automática ou manual para este ficheiro.

Se o ficheiro foi modificado em ambos os ramos, então primeiro será tentada uma junção automática. Isto geralmente acontece nos dois casos seguintes:

  • as alterações são para linhas completamente separadas, com linhas inalteradas entre uma linha alterada num ramo e uma linha alterada no outro. ramo.
  • as mudanças dão exatamente o mesmo resultado final, por exemplo, o mesmo commit aparece em ambos os ramos.

Se não for este o caso, então a junção automática irá falhar, e o Git irá recorrer a pedir uma junção manual.

 2
Author: jwg, 2018-05-22 13:47:04