Ми підтримуємо веб-програму, яка має спільну головну гілку та безліч паралельних гілок, по одній для кожної інсталяції, кожна з яких має кілька конкретних змін. Вихідним кодом управляється в git, і це приголомшливий інструмент, коли нам потрібні функції передачі та виправлення помилок з майстер-гілки в паралельні. Але мало файлів, які є чутливими, і автоматичне злиття зазвичай дає погані результати. Тож об’єднання було б набагато простіше, якщо їх можна якось позначити, і кожне об’єднання призведе до конфлікту, що вимагає ручного об’єднання.
Я шукав відповідь:
- Я використовую параметри злиття --no-commit і --no-ff , але це не однаково.
- Тут і тут хтось задає те саме питання, але без рішення.
- Схоже на те, як запобігти об’єднанню файлів за допомогою .gitattributes, що містять: somefile.php merge = ours . Я спробував знайти якийсь варіант злиття, який би породив конфлікт або змусив об'єднати вручну, але поки що не знайшов жодного.
- .gitattributes, що містять: somefile.php -merge , ніколи не об'єднується автоматично, а отже, змушує об'єднувати вручну. Це 90% рішення, але я прагну спробувати автоматичне об’єднання та позначити його як конфліктне, незалежно від того, вдало це чи ні. Але це поки що найближче до рішення. (... дякую Чарльзу Бейлі за роз'яснення ...)
- Хтось пропонує запропонувати написати власний драйвер злиття ( 1 , 2 ), але як це зробити мені далеко не зрозуміло.
редагувати: варіант 4. опис
git fetch
спочатку, а потім використовуюgit difftool <file> FETCH_HEAD
, щоб я міг вручну застосувати зміну у віддаленій гілці до локальної.