Зафиксировать без установки user.email и user.name
Я пытаюсь сделать это как
git commit --author='Paul Draper <[email protected]>' -m 'My commit message'
но я получаю
*** Please tell me who you are.
Run
git config --global user.email "[email protected]"
git config --global user.name "Your Name"
to set your account default identity.
Omit --global to set the identity only in this repository.
Я могу установить их, но я нахожусь в разделяемом ящике, и мне придется (захотеть) впоследствии их отключить.
git config user.name 'Paul Draper'
git config user.email '[email protected]'
git commit -m 'My commit message'
git config --unset user.name
git config --unset user.email
Это много строк для одной фиксации!
Есть ли более короткий путь?
Ответы
Ответ 1
(Это пришло мне в голову после предложения длинной версии с переменными среды - git commit хочет установить и автора, и --author
, а --author
переопределяет только первый.)
Все команды git принимают аргументы -c
перед глаголом действия, чтобы установить временные данные конфигурации, так что это идеальное место для этого:
git -c user.name='Paul Draper' -c user.email='[email protected]' commit -m '...'
Так что в этом случае -c
является частью команды git
, а не подкомандой commit
.
Ответ 2
Вы можете отредактировать файл .git/config
в своем репозитории, добавив следующий псевдоним:
[alias]
paulcommit = -c user.name='Paul Draper' -c user.email='[email protected]' commit
или вы можете сделать это с помощью командной строки:
git config alias.paulcommit "-c user.name='Paul Draper' -c user.email='[email protected]' commit"
И тогда вы можете сделать:
git paulcommit -m "..."
Примечания:
- Идея состоит в том, чтобы добавить также псевдонимы, такие как
jeancommit
, georgecommit
,... для других пользователей этого общего ящика. - Вы можете добавить этот псевдоним в свою глобальную конфигурацию, отредактировав свой личный
.gitconfig
или добавив параметр --global
в командную строку при добавлении псевдонима. - Псевдоним
paulcommit
не является коротким, но он многословен, и вы можете в общем случае набрать только git pau
+ tab.