Я знаю, что можно установить конфигурации per-repo, которые переопределяют конфигурацию пользовательского уровня (т.е. /path/to/my/repo/.gitconfig
переопределяет ~/.gitconfig
). Можно ли установить git configs, которые переопределяют настройки уровня пользователя для всех дочерних папок данной папки? I.e., я
|--topLevelFolder1
|--\
| ---.gitconfig_override
|--\
| ---childFolder1
| \---[...]
|--\
| ---childFolder2
| \---[...]
И я хочу, чтобы настройки, определенные в .gitconfig_override
, применялись в childFolder1
и childFolder2
.
Моя мотивация для этого заключается в следующем: у меня есть рабочий ноутбук, который я также использую в свое свободное время для личных проектов. Весь мой рабочий код вложен в одну папку. Когда я нажимаю на работу с репозиториями git, мне нужно сделать это с моей личной работой, вместо имени, и работать с электронной почтой. Когда я нажимаю на свои личные (github) репозитории, я хочу сделать это с моим настоящим именем и личной электронной почтой.
Другие возможные решения, о которых я думал (и проблемы):
- Создайте отдельных пользователей для "работы" и "воспроизведения", соответствующим образом настройте их параметры на уровне пользователя и войдите в систему как подходящий пользователь, когда я переключаю контекст (хлопот, плюс я мог бы легко забыть переключиться).
- Создайте script, который ищет git repos внутри "workFolder" и добавляет/обновляет свои файлы .gitconfig, чтобы удержать соответствующие данные (если я создаю репо и забудьте запустить script перед нажатием, Я буду толкать как не того человека)
- "hack" git, так что каждый раз, когда он создает репо, он проверяет путь к файлу и, при необходимости, обновляет файл .gitconfig(сложный, грязный и почти наверняка The Wrong Way To Do It - plus, я не будет первой подсказки, как это сделать!)
Я проверил этот вопрос, который, по-видимому, содержит решения для отдельных репозиториев, а не несколько. Надеюсь, кто-то увидит этот вопрос, который пропустил этот!