Как сделать git игнорировать каталог при слиянии
Как интересно и полезно в качестве ответа на Как настроить драйвер git для игнорирования папки при слиянии, он не ответил на исходный вопрос, который все еще меня насторожило.
В отличие от связанного с этим вопроса, у меня есть две ветки с одним и тем же набором каталогов и для слияния одного с другим мне нужно git, чтобы полностью игнорировать один каталог.
Я попробовал его со своим собственным драйвером слияния, как описано в Как сообщить git, чтобы всегда выбирать локальную версию для конфликтующих слияний в определенном файле? проблема с этим подходом заключается в том, что этот драйвер вызывается только тогда, когда в этих двух ветвях имеется фактический конфликтный файл. Всякий раз, когда изменения файла находятся только в одной ветки, git объединяет их, не вызывая мой драйвер слияния.
Это приводит к изменениям файлов в каталоге, который я не хочу. Любая идея, как я мог сделать git игнорировать каждый файл в этом каталоге все время - был ли он затронут или нет?
Ответы
Ответ 1
Я действительно не использую Git, но я думаю, что это сработает для вашего случая:
Используйте что-то вроде того, что указано здесь: https://gist.github.com/564416
git checkout master
git merge --no-commit --no-ff development
git reset -- /path/to/folder # revert updates from path
git commit
Опять же, я не использую Git, я просто откладываю на то, как я думаю, что все работает на основе моего опыта работы с TryGit.
- мастер проверки
- объединить, но не совершать, не ускорять работу вперед.
- слияния теперь устраиваются, поэтому reset все дерево каталогов
- совершить