Протестировано и работает:
Одношаговый «рабочий процесс изменения учетной записи»:
Вы делаете это один раз после клонирования - для любого репозитория, который был настройка для поддержки разработчиков, которые фиксируют использование нескольких git учетных записей .
git config --local --add include.path ../.git-config
Теперь, когда вы фиксируете / pu sh из этого репозитория, вы будете использовать учетную запись для этого репозитория.
Вам не нужно вносить какие-либо дополнительные изменения при перемещении в / из этого репозитория.
Установка в один шаг.
Это способ настройки "для поддержки разработчиков. которые фиксируют, используя несколько git учетных записей ":
- Клонируют репозиторий и Git фиксируют это:
pushd /src/path/to/git/repo
tee --append .git-config > /dev/null <<'EOF'
[core]
sshCommand = ssh -o StrictHostKeyChecking=no -o GlobalKnownHostsFile=/dev/null -o UserKnownHostsFile=/dev/null -o IdentitiesOnly=yes -i ~/.config/git/$(git config --get --local --includes user.email) -F /dev/null
EOF
popd
Допущения :
- S SH файлы ключей имеют имена
<name@email.com>
(private) и <name@email.com>.pub
(publi c). - S SH файлы ключей могут быть находится в любом месте, доступном для команды S SH.
Примечание: Это не влияет на пользователей, которые не используют несколько учетных записей. Они просто не включают Git фрагмент .git-config
после клонирования. Кроме того: расположение файла ключей S SH соответствует спецификации Базового каталога XDG , но вы можете разместить ключи S SH там, где это наиболее безопасно, и вам не нужно менять S SH конфигурационный файл.
В вопросе указывалось, что Git настроен на фиксацию с использованием адреса электронной почты, используемого для именования файла ключа S SH, так что это уже будет сделано, но для полноты:
git config --local user.email name1@email1.com