Слить ветки git, где файлы были удалены на одной ветке, и я не хочу, чтобы они были - PullRequest
0 голосов
/ 24 сентября 2019

Я унаследовал ужасное РЕПО, и я хочу знать, смогу ли я вообще его спасти.

Итак, origin / master выглядит так:

  • project /
    • подпроект-0 /
      • a
      • b
    • подпроект-1 /
      • c
      • d

Также на источнике есть две «ветви функций», которые выглядят так:

origin / feature / work-on-0:

  • проект /
    • подпроект-0
      • a
      • b
      • + e
    • подпроект-1
      • c
      • -d

По сути, они НЕ ПРОСТО вносили изменения в подпроект-0, они также просто удаляли файлы из подпроекта-1.Это также было сделано систематически, и ветка для добавления функций в sub-project-1 также имеет эту проблему.

Я хотел бы объединить все в master, есть ли способ сказать git при объединении, чтобы взятьверсия d здесь от master, хотя она не изменена и технически ни с чем не конфликтует?

Ответы [ 2 ]

1 голос
/ 24 сентября 2019

К счастью, в этом случае казалось, что Серж был прав, и на самом деле было проще просто проверить правильные версии файлов перед совершением слияния.

В этом случае это было просто

git merge --no-ff --no-commit feature/work-on-0
git checkout HEAD -- sub-project-1/

, который сохранил d и позволил ему не конфликтовать с feature / work-on-1..

Я посмотрел на решение .gitattributes, но, похоже, оно не дало желаемого эффекта.

Одна проблема заключалась в том, что при объединении компонента / работы над 0 не было никакого объединения, это просто быстрая перемотка вперед, и мастер не изменился, но после объединения функции / работы над 1на это, тогда я хочу сохранить некоторые из них и некоторые из наших в зависимости от папки.

1 голос
/ 24 сентября 2019

Вы можете создать .gitatributes файл для этой цели.Внутри него вы должны определить, какие файлы вы хотите оставить нетронутыми во время слияния, указав правильную стратегию слияния.

Подробнее здесь: Атрибуты Git - стратегии слияния

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...