Как насчет игнорируемой подпапки с пользовательскими настройками?Подобно тому, как предлагает schoetbi, но только одна папка, а не одна для каждого пользователя.
/Project
/Foo
/Bar
/Preferences
в /Project/.gitignore, строка /Preferences
игнорировать / Project / Preferences.И инициализировать «секретный» репо в / Project / Preferences.(Я называю это секретом, потому что внешнее хранилище не знает об этом.) Если другое программное обеспечение ожидает свои файлы предпочтений в определенной части основного хранилища, вы можете создать символическую ссылку на что-то в / Project / Preferencesпапка.Симлинк может быть отслежен или нет;он должен быть в основном стабильным с течением времени, так что вы не будете заботиться о его истории, и его история в любом случае будет независима от основного проекта, поэтому я, вероятно, проигнорирую его.
Вам не нужно / Предпочтенияниже / Project, но он должен находиться в одном месте относительно / Project, чтобы идея символической ссылки работала, поэтому я бы оставил ее под.Вполне нормально инициализировать репозиторий под другим репозиторием, если внешний репозиторий игнорирует внутренний.Я делаю это с моей ~ папкой и проектами под моей ~ папкой.
Даже если вы логически хотите, чтобы ваши пользовательские настройки были связаны с определенными коммитами, которые вы сделали в основном репо, это принципиально невозможно сgit, так что вам определенно придется выполнять ручную синхронизацию между коммитами в вашем основном репо и настройками, которые соответствуют этим коммитам в вашем секретном репо.Git в основном заботится о состоянии всего репо (что означает все, что он отслеживает) и никогда не может отправить частичный коммит.(Поскольку хэш-идентификатор SHA-1 для фиксации будет совершенно другим, если вы удалите хотя бы один файл).