Слияние ветки объекта после перемещения большого файла - PullRequest
1 голос
/ 11 апреля 2019

Вначале мой репо выглядел так:

master:
    foo/
    bar/
    new-bar/

В ветке функций было добавлено много коммитов в new-bar:

feature:
    foo/
    bar/
    ???-???/

И в ветке master, bar был удален, а new-bar был перемещен на свое место с помощью git mv:

master:
    foo/
    b̶a̶r̶/
    bar/

Я хотел бы объединить ветвь функций без создания множества конфликтов:

master:
    foo/
    b̶a̶r̶/
    ???/

Как мне это сделать?

Ответы [ 2 ]

1 голос
/ 11 апреля 2019

Из Примечания к выпуску для git 2.18 :

  • Переименовать логику обнаружения, которая используется в «слиянии» и «вишня-пик» имеет научился угадывать, когда все x / a, x / b и x / c перешли в z / a, z / b и z / c, вероятно, что добавление x / d в это время также хочу перейти на z / d, намекнув, что весь каталог «х» перешел на «г».

AFAICT это касается вашего использования - просто используйте современную версию Git.

0 голосов
/ 11 апреля 2019

Если вы сделаете выбор, чтобы перебазировать свою функциональную ветку поверх master, переименование должно пройти довольно хорошо.Быть судимымКак только перебазирование будет выполнено, ваша ветвь должна быть такой же, как прежде, за исключением того, что все изменения будут сделаны в bar/ вместо new-bar/.

Если вы решите не перебазировать его, вверхуиз вашей ветки функций я бы добавил коммит, который перемещается new-bar/ как bar/, чтобы он был совместим с master, а затем объединил его.

В любом случае вам придется попробовать и посмотреть, чтолучше соответствует вашим потребностям.

...