Ответ 1
С параметрами конфигурации флага git -c
можно передать в командной строке:
git -c user.name=test -c [email protected] stash create
В КОРОТКЕ
Есть ли возможность создать stash (используя git stash create
) без необходимость настройки user.email
и user.name
? Что-то похожее на параметр git commit --author
?
НЕКОТОРЫЙ КОНТЕКСТ:
У меня есть несколько машин для сборки, на которых у меня есть пользователь сборки. Каждый из них имеет доступ к центральным репозиториям git. Однако я не настроил user.email
и user.name
для каждого из этих пользователей; так как им никогда не нужно совершать коммиты.
В одном из моих сценариев я использую
git stash create
(что позволяет мне использовать архив git --format-gtz... Я пощажу вам подробности, см. мой вопрос )
Однако эта команда не работает:
*** 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.
fatal: empty ident name (for <[email protected]>) not allowed
Cannot save the current index state
PS: У меня git 1.8.4
С параметрами конфигурации флага git -c
можно передать в командной строке:
git -c user.name=test -c [email protected] stash create
С Git 2.21 (Q1 2019, 2+ лет спустя) вам не придется настраивать user.email
и user.name
(git stash --author ?
).
Правильно настроенное имя пользователя/адрес электронной почты требуется в user.useConfigOnly
для создания коммитов; теперь команда "git stash
" (даже несмотря на то, что она создает объекты фиксации для представления записей stash) освобождается от требования.
См. коммит 3bc2111 (18 ноября 2018 г.) от Славицы Джукич ('').
Помощник: Джунио С. Хамано (gitster
).
(Merged by Junio C Hamano -- [TG46] -- in commit 1328d29, 04 Jan 2019)
stash
: допустить отсутствие идентификатора пользователяКоманда "
git stash
" настаивает на том, чтобы иметь доступную для использования личность пользователя в той же степени, что и команды "git commit-tree
" и "git commit
", поскольку она использует тот же код, который создает объекты фиксации, что и эти команды.Это не обязательно необходимо.
Перед тем, как создавать объекты коммитов, мы проверим, не станем ли мы выдавать поддельные удостоверения, чтобы удовлетворить механизм, который создает коммиты.
Добавьте тест в документ, чтобы stash выполнялся правильно как с действительным идентификатором, так и без него.Это не так уж много для улучшения юзабилити, поскольку пользователи, которые запускают "
git stash
", в конечном итоге захотят записать свои изменения, которые временно хранятся в stashах в более постоянной истории, путем фиксации, и они должны сделать "git config user.{name,email}
" в любом случае, поэтому, возможно, это изменение только задерживает шаг, необходимый для работы в хранилище.
Если вы просто хотите удалить какие-либо локальные изменения из рабочей копии и вы уверены, что нет ничего, что нужно было бы сохранить на потом, вы можете выполнить тревожно опасную команду:
git checkout .
Этот вопрос может быть полезен шире, чем просто git stash create
(проблема касается любого использования git stash
). Вопрос, на который я ответил, вероятно, дублирует этот вопрос.