Ответ 1
git config user.email "[email protected]"
Выполнение этой операции внутри репо установит конфигурацию на репозитории THAT, а не глобально.
Похоже на то, что вам нужно, если я неправильно понимаю вас.
Я использую свой персональный ноутбук как для работы, так и для личных проектов, и я хотел бы использовать свой рабочий адрес электронной почты для своих обязательств на работе (gitolite) и моего личного адреса электронной почты для остальных (github).
Я читал о следующих решениях, которые являются либо глобальными, либо временными:
git config --global user.email "[email protected]"
git config user.email "[email protected]"
git commit --author "Bob <[email protected]>"
GIT_AUTHOR_EMAIL
, GIT_COMMITTER_EMAIL
или EMAIL
Одним из решений является запуск вручную функции оболочки, которая заставляет мою среду работать или личную, но я уверен, что я часто забуду переключиться на правильную личность, что приведет к совершению под неправильной идентификацией.
Есть ли способ привязки определенного репозитория, имени проекта и т.д. к идентификатору (имя, адрес электронной почты)? Что делают люди?
git config user.email "[email protected]"
Выполнение этой операции внутри репо установит конфигурацию на репозитории THAT, а не глобально.
Похоже на то, что вам нужно, если я неправильно понимаю вас.
Отредактируйте конфигурационный файл в папке ".git", чтобы поддерживать различное имя пользователя и адрес электронной почты, зависит от репозитория
[пользователь]
name = Bob
email = [email protected]
В приведенной ниже команде показано, какое имя пользователя и адрес электронной почты установлены для этого репозитория.
git config --get user.name
git config --get user.email
Пример: для моего файла конфигурации в D:\workspace\eclipse\ipchat \.git\config
Здесь ipchat - это мое имя репо
Вам нужно использовать команду локального набора ниже:
локальный набор
git config user.email [email protected]
git config user.name 'Mahmoud Zalt'
локальный get
git config --get user.email
git config --get user.name
Локальный файл конфигурации находится в каталоге проекта: .git/config
.
глобальный набор
git config --global user.email [email protected]
git config --global user.name 'Mahmoud Zalt'
глобальный get
git config --global --get user.email
git config --global --get user.name
Глобальный файл конфигурации в вашем домашнем каталоге: ~/.gitconfig
.
Не забудьте указать пробелы и т.д., например: "FirstName LastName"
Если вы используете git config user.email "[email protected]"
, он будет привязан к текущему проекту, в котором вы находитесь.
Это то, что я делаю для своих проектов. Я устанавливаю соответствующую идентификацию, когда я клонирую/запускаю репо. Это не безупречно (если вы забудете и нажмете, прежде чем вы выясните, что вы взволнованы), но он примерно так же хорош, как вы можете получить без возможности сказать git config --global user.email 'ILLEGAL_VALUE'
Собственно, вы можете сделать незаконную ценность. Установите git config --global user.name $(perl -e 'print "x"x968;')
Затем, если вы забудете указать свои неглобальные значения, вы получите сообщение об ошибке.
[EDIT] В другой системе мне приходилось увеличивать число x до 968, чтобы заставить его потерпеть неудачу с "фатальным: невозможным длинным личным идентификатором". Такая же версия git. Странно.
Если вы не используете параметр --global
, он будет устанавливать переменные только для текущего проекта.
Как и в случае с Git 2.13, вы можете использовать includeIf
в вашем gitconfig, чтобы включить файл с другой конфигурацией, основанный на пути репозитория, в котором вы выполняете команды Git.
Как только я его заработаю, я обновлю лучший пример.
https://motowilliams.com/conditional-includes-for-git-config#disqus_thread
Чтобы использовать Git 2.13, вам нужно будет добавить PPA (Ubuntu/Debian) или загрузить двоичные файлы и установить (Windows/другой Linux).