Я провел небольшое исследование и нашел возможность, которая могла бы это сделать: 2 репозитория git, указывающих на один и тот же каталог. Переменная среды GIT_DIR хранит имя каталога локального хранилища. Если не установлено, git по умолчанию имеет значение .git, но это может быть что угодно.
Тогда я мог бы иметь один репозиторий в .git, который отображается на мой репозиторий Subversion. Это частый случай. Тогда я мог бы иметь другой репозиторий в .localgit. Каждый репозиторий должен быть настроен так, чтобы игнорировать файлы, управляемые другим. Это легко с! для отрицания шаблонов.
Когда я изменяю локальные файлы, которые я хочу зарегистрировать, я либо изменяю переменную среды GIT_DIR, либо использую аргумент командной строки --git-dir. Если я правильно настрою исключения / игнорирование, мне не придется беспокоиться о столкновениях. Очевидно, есть некоторые накладные расходы, чтобы поддерживать это в актуальном состоянии, но я могу написать скрипт-обертку, который добавляет файл к исключению одного репо, когда файл добавляется к другому. Кроме того, эти издержки происходят только один раз для каждого файла, а не для каждого коммита, как с предложением с несколькими ветвями.
Если бы я хотел сделать это проще, я мог бы использовать соглашение об именах, но я мог бы также сделать это для каждого отдельного файла, поскольку число локальных файлов почти наверняка будет в одной цифре (в противном случае я что-то не так).
Единственный недостаток, который я вижу в этом подходе, заключается в том, что я не смогу разветвлять, хранить и сбрасывать локальные файлы так же, как файлы в репозитории SVN. Мои изменения в них, вероятно, будут асинхронными по отношению к моим основным изменениям, поэтому я не думаю, что это будет серьезной проблемой на практике. Я также мог бы написать обертки для тех функций, которые были осведомлены о множественном хранилище. Кроме того, мне нужно быть более ясным при управлении локальными файлами, но практически в любой ситуации с этим придется столкнуться, если не считать нескольких репозиториев, встроенных в сам git.